Choose your deployment path
| Path | Use when | Time to live |
|---|---|---|
| Zendesk Sunshine Conversations | You already run Zendesk and have (or can provision) a WhatsApp channel inside it | Hours |
| Salesforce Service Cloud Messaging | You already run Salesforce Service Cloud with Digital Engagement | Hours to days |
| Direct WhatsApp Cloud API | You are not on Zendesk or Salesforce, or you need custom flows that the CRM does not expose | 2 to 4 weeks |
Path A: WhatsApp via Zendesk Sunshine Conversations
Prerequisites
Before you start:- A Zendesk Suite Professional plan or above with Messaging enabled
- Admin access to the Zendesk Admin Center
- A WhatsApp Business Account (WABA), or willingness to provision one through Zendesk
Step 1: Provision the WhatsApp channel in Zendesk
If WhatsApp is not yet a channel in your Zendesk account, follow the official Zendesk guide: Welcome to WhatsApp in Zendesk Support. Key actions:- In the Zendesk Admin Center, navigate to Channels > Messaging and social > Messaging
- Click Add channel and select WhatsApp
- Connect a Meta Business Account and verify the phone number Zendesk should send and receive WhatsApp messages on
- Wait for Meta verification to complete (typically 1 to 3 business days)
- Confirm the WhatsApp channel shows as Active in your Zendesk Messaging admin
Step 2: Create a Conversations integration
This step is identical to the Zendesk Messaging setup. If you already have an IrisAgent Conversations integration configured for web messaging, you can reuse it; the same integration carries WhatsApp, Instagram, Facebook Messenger, and SMS once those channels are added in Zendesk. If you do not yet have an IrisAgent Conversations integration:- In the Zendesk Admin Center, navigate to Apps and integrations > Integrations > Conversations integrations
- Click Create integration and give it a descriptive name (e.g., “IrisAgent Integration”)
- Configure the webhook:
- Target URL:
https://api1.irisagent.com/v1/webhooks/zendesk - Event Subscriptions:
- ✅
conversation:create(Conversation created) - ✅
conversation:message(Conversation message)
- ✅
- Target URL:
- Click Save
| Credential | Description |
|---|---|
| App ID | Identifies your Zendesk account |
| Integration ID | Unique identifier for this integration |
| Webhook ID | Identifier for the webhook configuration |
| Shared secret | Authentication password for webhook requests |
| Credential | Description |
|---|---|
| Key ID | Used with the secret key for authentication |
| Secret key | Authentication password for API requests |
Step 3: Configure IrisAgent
- Navigate to the IrisAgent account management page
- Select Zendesk Sunshine configs from the integration options
- Enter the credentials from Step 2:
- App ID
- Integration ID
- Webhook ID
- Shared secret
- Key ID
- Secret key
- Under Channels, ensure WhatsApp is enabled
- Click Save
Path B: WhatsApp via Salesforce Service Cloud Messaging
Prerequisites
- Service Cloud with Digital Engagement licenses
- A WhatsApp Business Account (WABA) connected to Salesforce, or willingness to provision one
- A Salesforce admin who can create Connected Apps and assign API permissions
Step 1: Provision the WhatsApp channel in Salesforce
Follow the official Salesforce guide: Set Up WhatsApp Messaging. Key actions:- In Salesforce Setup, navigate to Service > Messaging Settings
- Click New Channel and choose WhatsApp
- Authenticate with Meta and select the WABA and phone number
- Configure routing rules under Omni-Channel to assign Messaging Sessions to a queue
- Confirm the channel shows as Active under Messaging Settings
Step 2: Create a Connected App for IrisAgent
- In Salesforce Setup, search for App Manager and click New Connected App
- Name it
IrisAgent WhatsApp Integration - Enable OAuth Settings and configure:
- Callback URL:
https://api1.irisagent.com/v1/webhooks/salesforce/oauth - Selected OAuth Scopes:
Manage user data via APIs (api)Access the Salesforce API Platform (sfap_api)Access Messaging APIs (chatbot_api)Perform requests at any time (refresh_token, offline_access)
- Callback URL:
- Save and wait approximately 10 minutes for the app to propagate
- Record the Consumer Key (Client ID) and Consumer Secret (Client Secret)
Step 3: Subscribe IrisAgent to MessagingSession events
- In Setup, navigate to Platform Events and confirm
MessagingSessionandConversationEntryevents are accessible (these are standard in Service Cloud Digital Engagement) - Assign the IrisAgent integration user a permission set with:
- Read on
MessagingSession,MessagingEndUser,ConversationEntry - Create on
ConversationEntry - API Enabled
- Read on
Step 4: Configure IrisAgent
- Navigate to the IrisAgent account management page
- Select Salesforce Service Cloud configs
- Enter:
- Salesforce Org ID (find under Setup > Company Information)
- Connected App Client ID (Consumer Key from Step 2)
- Connected App Client Secret (Consumer Secret from Step 2)
- WhatsApp Channel Address Identifier (from Step 1)
- Authorize IrisAgent through the OAuth handshake when prompted
- Click Save
ConversationEntry API back to the customer on WhatsApp.
Path C: Direct WhatsApp Cloud API
If you are not on Zendesk or Salesforce, IrisAgent supports the Meta WhatsApp Cloud API directly. This path requires:- A verified Meta Business Account
- A WhatsApp Business Account (WABA) and a registered phone number
- A System User access token with
whatsapp_business_messagingandwhatsapp_business_managementscopes
- Navigate to the IrisAgent account management page
- Select WhatsApp Cloud API configs
- Enter:
- WABA ID
- Phone Number ID
- System User Access Token
- App Secret (from your Meta App settings)
- Webhook Verify Token (any string; use the same value when configuring the Meta webhook)
- In your Meta App, configure the webhook callback to
https://api1.irisagent.com/v1/webhooks/whatsappand subscribe to themessagesfield - Save
Configure escalation and handoff
IrisAgent supports two escalation triggers on WhatsApp:- Confidence-based: when grounded confidence falls below the configured threshold (default 0.80), the conversation transfers to a human queue
- Intent-based: when the customer types
agent,human,representative, or an equivalent phrase in any supported language
- In the IrisAgent dashboard, navigate to Workflows > Escalation Rules
- Set the Confidence Threshold for the WhatsApp channel
- Add intent-based triggers under Customer Intent Patterns
- Map escalation targets:
- Zendesk path: a Zendesk messaging queue or group
- Salesforce path: an Omni-Channel queue with appropriate skills
Multilingual setup
WhatsApp customer support volume is heavily non-English in many regions. IrisAgent auto-detects the customer’s language from each inbound message and replies in the same language, against your existing knowledge base. To enable:- In the IrisAgent dashboard, navigate to Settings > Languages
- Enable Auto-detect inbound language
- Add your supported reply languages (default behavior responds in any of the 100+ supported languages once auto-detect is on)
- Optionally upload language-specific KB articles under Knowledge Sources if you have native-language documentation; otherwise IrisAgent generates grounded translations from the source-language KB
Templates and the 24-hour customer service window
Meta enforces a 24-hour customer service window. Inside it, IrisAgent can send free-form text, media, buttons, and lists. Outside it, IrisAgent can only send pre-approved templates. To prepare templates:- Author and submit your Utility templates through Meta Business Manager (or through Zendesk / Salesforce template management UIs, which proxy to Meta)
- Common templates to submit on day one:
- Order confirmation
- Shipping update
- Appointment reminder
- Password / verification code
- Post-resolution CSAT
- Once Meta approves, the templates appear in the IrisAgent dashboard under Channels > WhatsApp > Templates
- Map each template to the workflow that should trigger it (e.g., “Send Shipping Update template when shipment status changes to In Transit”)
Verification
After completing setup, run an end-to-end test:- From a personal WhatsApp account, send a message to your business WhatsApp number with one of your documented top inbound questions (e.g., “What is your refund policy?”)
- Confirm IrisAgent replies within ~5 seconds with a grounded answer
- In the IrisAgent dashboard, verify the conversation appears under Conversations with the WhatsApp channel tag
- Trigger an escalation by replying with
talk to a humanand confirm the conversation routes to your configured queue in Zendesk or Salesforce - Confirm the human agent sees the full thread and the AI’s reasoning trail
Troubleshooting
WhatsApp messages are not reaching IrisAgent- Confirm the WhatsApp channel is Active in Zendesk or Salesforce
- For Zendesk, verify the Conversations integration webhook subscriptions include
conversation:createandconversation:message - For Salesforce, verify the IrisAgent integration user has read access to
MessagingSessionandConversationEntry
- For Zendesk, confirm the Sunshine Conversations API key (Key ID + Secret) is valid and has not been revoked
- For Salesforce, confirm the Connected App OAuth tokens are valid and the integration user has create permission on
ConversationEntry - Check the WhatsApp number’s Quality Rating in Meta Business Manager; a Red rating throttles or blocks outbound
- Confirm the template is Approved in Meta Business Manager
- Confirm the recipient’s last inbound message was more than 24 hours ago (free-form replies inside the 24-hour window do not need a template; templates are only for outside the window or for opt-in initiations)
- Confirm the template’s variable placeholders are populated; Meta rejects templates with empty variables
- Confirm Auto-detect inbound language is enabled in IrisAgent settings
- Verify the source-language KB has coverage for the requested topic; if not, IrisAgent may fall back to escalation