Skip to content

WhatsApp Integration ​

CatyAI provides deep WhatsApp integration, allowing your widget to work seamlessly across web and WhatsApp channels with unified AI behavior.

Unified Experience ​

One widget powers both channels:

Web Widget + WhatsApp = SAME AI behavior

Your knowledge base, personality, and responses work identically on both platforms.

Channel Types ​

ChannelUse Case
webTraditional website widget
qr_firstQR code → WhatsApp businesses
notificationsOutbound-only notifications

Setting Up WhatsApp ​

1. Connect Your Number ​

  1. Go to Dashboard → Integrations → WhatsApp
  2. Click Connect WhatsApp
  3. Scan the QR code with WhatsApp on your phone
  4. Wait for "Connected" status

Associate the WhatsApp channel with your widget:

json
{
  "widget_id": "your-widget-id",
  "whatsapp_channel": "notifications",
  "phone": "+40721234567"
}

Message Handling ​

Inbound Messages ​

Customer sends WhatsApp message
         ↓
Message Router (message-router.js)
         ↓
Channel Type Detection
         ↓
├── web → web-handler.js
├── qr_first → qr-first-handler.js
└── notifications → SKIP (outbound only)

Outbound Messages ​

Send messages via API:

bash
POST /api/whatsapp/send
{
  "to": "+40721234567",
  "message": "Your order has shipped!",
  "widget_id": "your-widget-id"
}

Lead Notifications ​

Get notified when leads are captured:

Via WhatsApp ​

New Lead Captured!
━━━━━━━━━━━━━━━━━
Name: Ion Popescu
Phone: +40721234567
Email: ion@example.com
Interest: Product demo
Score: 4/5
━━━━━━━━━━━━━━━━━
Reply CALL to schedule

Configuration ​

Enable in widget settings:

json
{
  "notifications": {
    "lead_alerts": true,
    "alert_channel": "whatsapp",
    "alert_phone": "+40721234567"
  }
}

Conversation Handoff ​

Transfer conversations from AI to human:

Customer Request ​

Customer: "Vreau sa vorbesc cu un om"
Caty: "Desigur, transfer conversatia catre un coleg.
       Veti fi contactat in cateva minute."

Admin Takeover ​

Send PREIA in the chat to take over:

Admin: "PREIA"
System: "Ai preluat conversatia. Caty nu va mai raspunde."

Resume AI with:

Admin: "/caty on"
System: "Caty este din nou activa."

Multi-Language Support ​

WhatsApp messages support automatic language detection:

  • Romanian (default)
  • English
  • 50+ languages via AWS Comprehend

Rich Messages ​

Send interactive WhatsApp messages:

Buttons ​

javascript
{
  text: "Cum doriti sa continuam?",
  buttons: [
    { id: "buy", title: "Cumpara" },
    { id: "info", title: "Mai multe info" },
    { id: "later", title: "Mai tarziu" }
  ]
}

Lists ​

javascript
{
  text: "Alege un produs:",
  list: {
    title: "Produse",
    items: [
      { id: "prod1", title: "Produs A", description: "100 RON" },
      { id: "prod2", title: "Produs B", description: "150 RON" }
    ]
  }
}

API Endpoints ​

Send Message ​

bash
POST /api/whatsapp/send

Get Conversations ​

bash
GET /api/widgets/:widgetId/whatsapp/conversations

Get Channel Status ​

bash
GET /api/whatsapp/channels/:channelId/status

Webhook Events ​

Receive events for WhatsApp activity:

json
{
  "event": "whatsapp.message.received",
  "data": {
    "from": "+40721234567",
    "text": "Hello",
    "timestamp": "2026-04-20T10:30:00Z"
  }
}

Best Practices ​

  1. Respond quickly - WhatsApp users expect fast responses
  2. Use buttons - Interactive messages increase engagement
  3. Keep messages short - Mobile-friendly formatting
  4. Enable read receipts - Users know you received their message
  5. Set away messages - Inform users during off-hours

Feed Automation · Google CSS Partner · AI Visibility