Customer Support via WhatsApp
Overview
WhatsApp is the preferred support channel in most of the world. Customers expect to message businesses the same way they message friends — and they expect fast replies.
DIDfarm lets you receive and reply to WhatsApp messages without a separate Business Solution Provider. Connect your WhatsApp Business Account once, and manage support conversations from the portal or your own helpdesk system.
Two Approaches
| Approach | Best for | Setup time |
|---|---|---|
| Portal inbox | Small teams (1-5 agents), low volume (<50 conversations/day) | 5 minutes |
| Webhook to helpdesk | Larger teams, existing helpdesk (Zendesk, Freshdesk, Intercom), high volume | 30 minutes |
Approach 1 — Portal Inbox
Go to My Numbers → WhatsApp tab. The Inbox view shows all incoming conversations grouped by contact. Click a conversation to see the full message history and reply.
- Real-time updates — new messages appear instantly via WebSocket
- Conversation threading — messages are grouped by phone number
- Quick reply — type a response and hit Enter or click Send
- No coding required — works out of the box
Approach 2 — Webhook to Helpdesk
Configure a webhook URL on your WhatsApp-enabled number. DIDfarm will POST every inbound message to your endpoint in real-time.
{
"event": "whatsapp.message.received",
"message_id": "wamid.abc123",
"from": "+31611398058",
"to": "+16315950406",
"body": "Hi, I need help with my order #12345",
"type": "text",
"timestamp": "2026-04-06T14:22:00Z",
"account_id": 1,
"media": null
}app.post('/webhooks/whatsapp-inbound', async (req, res) => {
const { from, body, message_id } = req.body;
// Create or update ticket in Zendesk
await zendesk.tickets.createOrUpdate({
requester: { phone: from },
subject: `WhatsApp: ${body.substring(0, 60)}`,
comment: { body: `[WhatsApp] ${body}` },
tags: ['whatsapp', 'inbound'],
external_id: `wa:${from}`,
});
// Send auto-acknowledgment within 24h window
await fetch('https://didfarm.com/api/v1/whatsapp/messages', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
account_id: 1,
to: from,
type: 'text',
text: { body: 'Thanks for reaching out! A support agent will reply shortly.' },
}),
});
res.sendStatus(200);
});Step 3 — Reply via API
When an agent replies in your helpdesk, forward the reply to the customer via the DIDfarm API.
// Within the 24-hour session window: send free-form text
await fetch('https://didfarm.com/api/v1/whatsapp/messages', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
account_id: 1,
to: '+31611398058',
type: 'text',
text: {
body: 'Hi! I checked your order #12345 — it shipped yesterday. ' +
'Tracking: https://track.example.com/abc123'
},
}),
});Auto-Reply Setup
Set up automatic acknowledgment messages so customers know their message was received, even outside business hours.
app.post('/webhooks/whatsapp-inbound', async (req, res) => {
const { from, body } = req.body;
const hour = new Date().getHours();
const isBusinessHours = hour >= 9 && hour < 18;
const replyText = isBusinessHours
? 'Thanks for your message! A support agent will respond within 5 minutes.'
: 'Thanks for your message! Our team is currently offline. ' +
'We\'ll reply first thing tomorrow morning (9 AM CET).';
await sendWhatsAppReply(from, replyText);
// Forward to helpdesk queue
await createSupportTicket(from, body);
res.sendStatus(200);
});24-Hour Session Window
Understanding the session window is critical for WhatsApp support:
- Customer messages you → 24-hour window opens
- During the window → you can send unlimited free-form replies (text, images, documents)
- Window closes → you can only send approved templates to re-engage
- Customer replies again → window resets to a new 24 hours
Re-opening a closed conversation
If you need to follow up after the 24-hour window closes (e.g., resolved issue, survey), send an approved template:
Hi 1, Your support request #2 has been resolved. Is there anything else we can help with? Reply to this message and we'll get right back to you.
Best Practices
- Reply within 5 minutes during business hours — WhatsApp customers expect near-instant responses
- Set up auto-reply for after-hours with expected response time
- Use the portal inbox for simple setups, webhooks for scaling
- Keep the 24-hour window in mind — reply promptly to avoid needing templates
- Forward to email as backup so messages don't get lost if your webhook is down
- Send a follow-up template after resolution to collect feedback
- Use one WhatsApp number for all support — keeps conversation history unified per customer
- Add your WhatsApp number to your website, email signatures, and invoices for easy access
FAQ
Can I assign conversations to specific agents?
The DIDfarm portal shows all conversations in a shared inbox. For agent assignment, use the webhook approach and route to your helpdesk system (Zendesk, Freshdesk, etc.) which handles agent assignment natively.
Can I use a chatbot?
Yes. Set up a webhook endpoint that runs your chatbot logic. Process the inbound message through your bot, and reply via the DIDfarm API. If the bot can't handle the query, escalate to a human agent.
What happens if my webhook is down?
Messages are still received and stored in the DIDfarm portal inbox. Set up email forwarding as a backup. DIDfarm also retries webhook delivery with exponential backoff (3 attempts).
Can I send images and documents in replies?
Yes. Within the 24-hour session window, you can send text, images, documents (PDF), audio, and video. Use the type field in the API to specify the media type.
Set up WhatsApp support
Connect your WhatsApp Business Account and start receiving customer messages.