WhatsApp - Setup Guide
Setup and configuration guide for WhatsApp integration
WhatsApp Business messaging via 360dialog for Axellero workflows.
For detailed instructions on managing credentials, connectors, and triggers in Axellero Studio, see the Integration Guide.
Step 1: Create Credential
Getting Your 360dialog API Key
- Sign up at 360dialog Partner Hub
- Create or select a WhatsApp channel
- Navigate to channel settings → API Configuration
- Copy the API key (D360-API-KEY)
Sandbox Testing (Optional)
For development and testing:
- Send "START" to +55 11 4673 3492 from WhatsApp
- Use sandbox URL:
https://waba-sandbox.360dialog.io - You can only message your verified number in sandbox mode
Adding Credential to Axellero
- Navigate to Application > Integrations > Credentials
- Click "Add Credential"
- Select API Key
- Enter:
- Name: "WhatsApp 360dialog"
- API Key: Your D360-API-KEY
- Click Save
Step 2: Create Connector
- Navigate to Application > Integrations > Connectors
- Click "Add Connector"
- Select WhatsApp from the list
- Configure:
- Name: "WhatsApp - Production"
- Credential: Select the credential created in Step 1
- Base URL: Leave default or use sandbox URL for testing
- Click Save
- Test the connection with "Test" button
The connector is now available in any workflow or agentflow.
Step 3: Create Trigger
For supported events and payload examples, see main documentation.
3.1 Webhook Configuration
WhatsApp triggers use 360dialog webhooks for real-time notifications.
Configure webhook URL in 360dialog Hub or via API:
curl -X POST "https://waba-v2.360dialog.io/v1/configs/webhook" \
-H "D360-API-KEY: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://your-axellero-webhook-url"}'3.2 Create Trigger
- Navigate to Integrations > Triggers
- Click "Add Trigger" (+) button
- Select your WhatsApp connector
- Configure trigger options (see table below)
- Click Save
How it works: Axellero generates a webhook URL and registers it with 360dialog automatically.
Trigger Options
| Option | Type | Required | Description |
|---|---|---|---|
| events | TEXT | No | Event types to trigger on (default: all) |
Supported Events
| Event Code | Description |
|---|---|
message | New incoming message (text, image, document, interactive reply) |
status | Message delivery status update (sent, delivered, read, failed) |
3.3 Add Trigger to Workflow
- Open Workflow Builder
- Find your trigger in the Triggers section
- Drag to canvas as the starting node
- Build workflow logic after the trigger
3.4 Test the Trigger
- Send a WhatsApp message to your business number
- Check workflow execution logs in Axellero
- Access data via
{{ctx.nodes.whatsapp_trigger.outputs.data}}
Workflow Examples
Example 1: Auto-Reply Bot
Send automatic replies to incoming messages.
Workflow Steps:
- WhatsApp Trigger: Events =
message - WhatsApp - sendTextMessage: Send reply
Configuration:
{
"to": "{{ctx.nodes.whatsapp_trigger.outputs.data.from}}",
"body": "Thanks for your message! We'll get back to you shortly."
}Example 2: Interactive Menu Bot
Present options to customers and route based on their selection.
Workflow Steps:
- WhatsApp Trigger:
message - WhatsApp - sendInteractiveButtons: Present options
- WhatsApp Trigger:
button_reply - Condition: Route based on
buttonReplyId
Configuration (sendInteractiveButtons):
{
"to": "{{ctx.nodes.whatsapp_trigger.outputs.data.from}}",
"bodyText": "How can we help you today?",
"buttons": [
{ "id": "support", "title": "Get Support" },
{ "id": "order", "title": "Check Order" },
{ "id": "info", "title": "More Info" }
]
}Example 3: Support Ticket + Linear Integration
Create Linear issues from incoming WhatsApp support messages.
Workflow Steps:
- WhatsApp Trigger:
message - Linear - createIssue: Create support ticket
- WhatsApp - sendTextMessage: Confirm ticket created
Configuration (Linear - createIssue):
{
"title": "WhatsApp Support: {{ctx.nodes.whatsapp_trigger.outputs.data.contactName}}",
"description": "Message: {{ctx.nodes.whatsapp_trigger.outputs.data.text}}\n\nFrom: {{ctx.nodes.whatsapp_trigger.outputs.data.from}}",
"team": "Support"
}Configuration (sendTextMessage):
{
"to": "{{ctx.nodes.whatsapp_trigger.outputs.data.from}}",
"body": "Your support ticket has been created. Our team will contact you soon."
}Example 4: Multi-Channel Notification
Forward important Gmail messages to WhatsApp for immediate attention.
Workflow Steps:
- Gmail Trigger: Watch for new messages (label: Important)
- Gmail - getMessage: Fetch full email content
- WhatsApp - sendTextMessage: Send summary to WhatsApp
Troubleshooting
| Error | Cause | Solution |
|---|---|---|
| 401 Unauthorized | Invalid API key | Verify D360-API-KEY in credential settings |
| 400 Invalid recipient | Wrong phone format | Use E.164 format without + or spaces (e.g., 14155238886) |
| 131047 Template not found | Invalid template name | Check template exists in 360dialog Hub |
| 131051 Not in 24h window | Session expired | Use template message for business-initiated contact |
| 131031 Channel not opted in | User hasn't messaged first | Wait for user to initiate conversation |
Common Issues
Messages not delivering
- Verify phone number format:
14155238886(not+1 415 523 8886) - Check 24-hour window; use template messages for business-initiated conversations
- Verify user has opted in by messaging your number first
Trigger not firing
- Verify webhook is registered in 360dialog Hub
- Check events match what you're testing (message vs status)
- Ensure connector is properly configured and tested
Template message failing
- Verify template is approved in 360dialog Hub
- Check language code matches template language
- Verify component parameters match template placeholders
Security Best Practices
- Store API key in Axellero Credential Manager (encrypted at rest)
- Use separate API keys for sandbox and production environments
- Monitor API usage in 360dialog Hub
- Review webhook logs regularly for unusual activity