logo_smallAxellero.io

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

  1. Sign up at 360dialog Partner Hub
  2. Create or select a WhatsApp channel
  3. Navigate to channel settings → API Configuration
  4. Copy the API key (D360-API-KEY)

Sandbox Testing (Optional)

For development and testing:

  1. Send "START" to +55 11 4673 3492 from WhatsApp
  2. Use sandbox URL: https://waba-sandbox.360dialog.io
  3. You can only message your verified number in sandbox mode

Adding Credential to Axellero

  1. Navigate to Application > Integrations > Credentials
  2. Click "Add Credential"
  3. Select API Key
  4. Enter:
    • Name: "WhatsApp 360dialog"
    • API Key: Your D360-API-KEY
  5. Click Save

Step 2: Create Connector

  1. Navigate to Application > Integrations > Connectors
  2. Click "Add Connector"
  3. Select WhatsApp from the list
  4. Configure:
    • Name: "WhatsApp - Production"
    • Credential: Select the credential created in Step 1
    • Base URL: Leave default or use sandbox URL for testing
  5. Click Save
  6. 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

  1. Navigate to Integrations > Triggers
  2. Click "Add Trigger" (+) button
  3. Select your WhatsApp connector
  4. Configure trigger options (see table below)
  5. Click Save

How it works: Axellero generates a webhook URL and registers it with 360dialog automatically.

Trigger Options

OptionTypeRequiredDescription
eventsTEXTNoEvent types to trigger on (default: all)

Supported Events

Event CodeDescription
messageNew incoming message (text, image, document, interactive reply)
statusMessage delivery status update (sent, delivered, read, failed)

3.3 Add Trigger to Workflow

  1. Open Workflow Builder
  2. Find your trigger in the Triggers section
  3. Drag to canvas as the starting node
  4. Build workflow logic after the trigger

3.4 Test the Trigger

  1. Send a WhatsApp message to your business number
  2. Check workflow execution logs in Axellero
  3. Access data via {{ctx.nodes.whatsapp_trigger.outputs.data}}

Workflow Examples

Example 1: Auto-Reply Bot

Send automatic replies to incoming messages.

Workflow Steps:

  1. WhatsApp Trigger: Events = message
  2. 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:

  1. WhatsApp Trigger: message
  2. WhatsApp - sendInteractiveButtons: Present options
  3. WhatsApp Trigger: button_reply
  4. 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:

  1. WhatsApp Trigger: message
  2. Linear - createIssue: Create support ticket
  3. 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:

  1. Gmail Trigger: Watch for new messages (label: Important)
  2. Gmail - getMessage: Fetch full email content
  3. WhatsApp - sendTextMessage: Send summary to WhatsApp

Troubleshooting

ErrorCauseSolution
401 UnauthorizedInvalid API keyVerify D360-API-KEY in credential settings
400 Invalid recipientWrong phone formatUse E.164 format without + or spaces (e.g., 14155238886)
131047 Template not foundInvalid template nameCheck template exists in 360dialog Hub
131051 Not in 24h windowSession expiredUse template message for business-initiated contact
131031 Channel not opted inUser hasn't messaged firstWait 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

Resources