#Im having an issue with the whatsapp outbound endpoint /v1/convai/whatsapp/outbound-message. I can
1 messages · Page 1 of 1 (latest)
Here’s what the ElevenLabs docs say about your two issues:
- Message not delivered to your personal WhatsApp
- Prereqs and parameters: The outbound endpoint requires an imported/authorized WhatsApp business account, a valid whatsapp_phone_number_id (copy it from the WhatsApp page), the recipient’s whatsapp_user_id, and an approved WhatsApp Manager template (template_name, template_language_code, template_params). (elevenlabs.io)
- A 200 from POST /v1/convai/whatsapp/outbound-message only indicates the request was accepted and a conversation_id was created. To see whether the send/delivery failed, fetch the conversation by ID and check status/metadata. (elevenlabs.io)
- If your workspace is in Zero-Retention Mode, “we ignore messages,” which will prevent WhatsApp messaging. Verify this setting is not enabled. (elevenlabs.io)
- “10-minute” timeout vs ongoing conversations
- On WhatsApp, a conversation ends either when the End conversation system tool triggers, or when the Max conversation duration timeout is reached. (elevenlabs.io)
- For outbound messages specifically, the max-duration timer starts only after the user replies. If the user hasn’t responded, the conversation can remain open much longer than 10 minutes. (elevenlabs.io)
- The docs do not define a universal “10-minute” default; the max duration is part of your agent’s configuration. Use Get conversation details to confirm whether a given thread is still in-progress or done. (elevenlabs.io)
If you want, paste the exact body you’re POSTing (redact secrets). I can cross-check the required fields against the API reference. (elevenlabs.io)
Sources:
WhatsApp | ElevenLabs Documentation
Outbound message via WhatsApp | ElevenLabs Documentation
WhatsApp | ElevenLabs Documentation
WhatsApp | ElevenLabs Documentation
WhatsApp | ElevenLabs Documentation
WhatsApp | ElevenLabs Documentation
Outbound message via WhatsApp | ElevenLabs Documentation
{
"whatsapp_phone_number_id": "102xxxxx",
"whatsapp_user_id": "1212xxxxxx",
"template_name": "approved_template_name",
"template_language_code": "en",
"template_params": [
{
"type": "body",
"parameters": [
{
"parameter_name": "customer_name",
"text": "John Doe"
},
{
"parameter_name": "company_name",
"text": "Acme"
}
]
}
],
"agent_id": "agent_8201xxxxxxxxx"
}
Here’s what the official ElevenLabs docs say about your payload, delivery, and timeouts:
- Your outbound-message payload
- Endpoint and required fields are correct, but template_params must follow the documented shape: type: "body" with parameters as a list of objects containing only text, in the same order as the template placeholders. Do not include parameter_name keys. (elevenlabs.io)
- Example (matches the docs exactly):
{
"whatsapp_phone_number_id": "102xxxxx",
"whatsapp_user_id": "1212xxxxxx",
"template_name": "approved_template_name",
"template_language_code": "en",
"template_params": [
{
"type": "body",
"parameters": [
{ "text": "John Doe" },
{ "text": "Acme" }
]
}
],
"agent_id": "agent_8201xxxxxxxxx"
}
This mirrors the POST /v1/convai/whatsapp/outbound-message reference. (elevenlabs.io) - The platform currently supports body parameters for WhatsApp template messaging; ensure your variables are in the template body and that the count/order matches your template. (elevenlabs.io)
If you still don’t receive the message:
- Confirm the WhatsApp Business Account is imported/authorized, and that you created the template in WhatsApp Manager with the exact template_name and template_language_code you’re sending. (elevenlabs.io)
- The API requires the recipient’s WhatsApp user ID (as whatsapp_user_id). The UI for outbound calls also asks for a “WhatsApp user ID,” which is the same concept you must pass to the API. Verify you’re using the correct user identifier for the recipient. (elevenlabs.io)
- Conversation “timeout” behavior
- On WhatsApp, a conversation ends either when your agent’s End conversation system tool triggers, or when the Max conversation duration setting is reached. This is configurable; the docs do not state a fixed “10 minutes.” (elevenlabs.io)
- For outbound messages, the Max conversation duration timer only starts after the user replies. If the user hasn’t responded, the conversation can appear “ongoing” longer than expected. (elevenlabs.io)
Useful cross-checks
- The outbound-message endpoint (POST /v1/convai/whatsapp/outbound-message) was added recently; if you’re integrating now, follow the current schema in the API reference. (elevenlabs.io)
- If you have access, you can monitor the conversation_id returned by the API using the real-time monitoring tools to see events as they occur. (elevenlabs.io)
@chrome mesa
- Please email me with the conversation id and I can take a look: szymonp@elevenlabs.io
- The timer starts after the user responds, this is explained in the docs: https://elevenlabs.io/docs/eleven-agents/whatsapp#outbound
- WhatsApp outbound conversations: For outbound messages, the max conversation duration timer starts only after the user responds. Source: ElevenLabs Docs – WhatsApp > Outbound. (elevenlabs.io)
- Support contact per official guidance: Use the Help Center and email team@elevenlabs.io for direct support. The Help Center article also asks you to include as much detail as possible (e.g., screenshots, history/request IDs, studio/project IDs, audio examples). Sources: Help Center; Status notice confirming support via team@elevenlabs.io. (help.elevenlabs.io)
Sources:
WhatsApp | ElevenLabs Documentation
How can I contact support? – ElevenLabs
@marble spear I appreciate it. The issue was actually on the Meta side, was confusing because everything seemed to work from ElevenLabs. Thanks
Glad to hear it’s resolved on Meta’s side. For future cross‑platform issues, here are quick ways to verify the ElevenLabs side is healthy:
- Check real‑time and historical service status/incident history on the ElevenLabs status page. (status.elevenlabs.io)
- Inspect the API response body for error details (e.g., 4xx/5xx). The help center notes unsuccessful responses include JSON detail; see guidance for 422 and related errors. (help.elevenlabs.io)
- If you’re using Agents/Conversational AI, review Call History; failed calls surface a red error with the reason. (help.elevenlabs.io)
- Review your Usage Analytics to confirm request volume and concurrency during the incident window. (help.elevenlabs.io)
- If you encountered 429s, compare against documented per‑plan concurrency limits. (help.elevenlabs.io)
Sources:
ElevenLabs Status
API - Error Code 422 – ElevenLabs
Where can I locate the reason for my call failing? – ElevenLabs
How can I see information about API requests for my account? – ElevenLabs
API - Error Code 429 – ElevenLabs
is there a way to end an ongoing conversation? If we message someone on whatsapp until they answer it's indefinitely open, can we end it somehow? It's important for our use case for managing follow-ups with customers
Yes. WhatsApp conversations on ElevenAgents can be closed in two supported ways:
- End conversation (system tool): Enable the End call/End conversation system tool on your agent so the LLM can explicitly terminate the thread when goals are met or on a “goodbye” condition. For agents created via API/SDK, add the end_call system tool in the config. (elevenlabs.io)
- Max conversation duration: Set a max conversation duration so the thread auto-ends on timeout. Note: for outbound messages, this timer starts only after the user replies; until they respond, the timeout doesn’t run. (elevenlabs.io)
Current UX caveat: there’s no user-visible indicator in WhatsApp when a chat is ended by timeout (a configurable “final message” before timeout is planned). As a workaround, you can have the agent send a closing message via the WhatsApp “Send Message” tool before invoking end_call. (elevenlabs.io)
If you want, I can point you to where to toggle the system tool and set the duration in your agent’s configuration. (elevenlabs.io)
Sources:
System tools | ElevenLabs Documentation
WhatsApp | ElevenLabs Documentation
WhatsApp | ElevenLabs Documentation
End call | ElevenLabs Documentation
Im looking for a more programmatic way to do this. For example, if ongoing 24 hrs then end conversation. We dont want to even send a message to the user, we just want to process the incoming transcript so we can update state on our app and schedule the next follow up accordingly
Short answer
- Yes: you can end WhatsApp conversations automatically and then process the transcript programmatically without sending a user-facing message.
- How: rely on the WhatsApp channel’s Max conversation duration timeout, or invoke the End conversation system tool; then fetch the transcript via the Conversations API.
Details
End the conversation automatically (no user message)
- WhatsApp channel behavior: “The conversation will be ended either by the End conversation system tool … or after the Max conversation duration timeout.” WhatsApp currently shows “no indication on the user side that the conversation ended,” so timeout-based endings won’t send a final message. For outbound-initiated threads, the max-duration timer starts only after the user replies. (elevenlabs.io)
- Programmatic end via a tool: add the End Call (End conversation) system tool to your agent; the LLM can call end_call with a reason to terminate the session. You can include rules in your system prompt (e.g., “when session exceeds X duration, end the conversation”). (elevenlabs.io)
- Enterprise live control (optional): Real‑time Monitoring lets you connect to an active conversation WebSocket and send a control command to end it. (elevenlabs.io)
Process the transcript programmatically (no reply to user required)
- Poll or fetch after completion using the Conversations API:
- List conversations: GET /v1/convai/conversations (filter by user_id, time range, etc.). (elevenlabs.io)
- Get transcript: GET /v1/convai/conversations/:conversation_id returns status and the full transcript array. (elevenlabs.io)
- For identifying WhatsApp users in your workflow, the platform sets dynamic variables such as system__caller_id to the WhatsApp user ID for personalization and correlation. (elevenlabs.io)
What’s not (currently) documented for chat
- Post-conversation webhooks are documented for calls (post_call_transcription / post_call_audio), not for chat/WhatsApp message threads. For WhatsApp transcripts today, use the Conversations API (or Enterprise Monitoring) instead of webhooks. (elevenlabs.io)
Practical setup outline
- Set your WhatsApp Max conversation duration (e.g., 24h) so threads auto-close without a message to the user. (elevenlabs.io)
- Optionally add End conversation tool rules in your agent to close earlier when your own conditions are met. (elevenlabs.io)
- On a schedule, call List conversations with filters (e.g., started_after, user_id) and then Get conversation to retrieve transcripts and update state/schedule follow‑ups in your app. (elevenlabs.io)
If you need real‑time intervention during an active chat (e.g., force-close exactly at 24h of activity), use the Enterprise Monitoring WebSocket to issue the end command. (elevenlabs.io)
is it possible for us to send a whatsapp template message to an ongoing conversation? Would be useful for links with in app browsing
Yes. ElevenLabs supports sending WhatsApp template messages programmatically to a user, including mid-conversation.
Two supported methods:
- Agent tool (recommended for “in-conversation” sends): Add the WhatsApp “Send Message” integration tool to your agent, create the template in WhatsApp Manager, then instruct the agent (via its system prompt) which template name/language to use and what parameters to pass. This tool can be invoked even during an ongoing conversation (including when the active channel is another one, like phone). Note: the tool currently supports parameters in the template body only. (elevenlabs.io)
- API endpoint (server-initiated send): POST /v1/convai/whatsapp/outbound-message with whatsapp_phone_number_id, whatsapp_user_id, template_name, template_language_code, template_params (body params), and agent_id. Create the template in WhatsApp Manager first. (elevenlabs.io)
Relevant docs:
- WhatsApp channel overview, outbound messaging and templates. (elevenlabs.io)
- WhatsApp tools (sending messages from an agent; body parameters only). (elevenlabs.io)
- Outbound message API reference (required fields, example). (elevenlabs.io)
- Changelog entry announcing the outbound-message endpoint. (elevenlabs.io)
This setup works well for sending links—include the link in the template’s body parameters per the tool/API guidance above. (elevenlabs.io)
Sources:
WhatsApp tools | ElevenLabs Documentation
Outbound message via WhatsApp | ElevenLabs Documentation
WhatsApp | ElevenLabs Documentation
WhatsApp tools | ElevenLabs Documentation
Outbound message via WhatsApp | ElevenLabs Documentation
Changelog | ElevenLabs Documentation
WhatsApp tools | ElevenLabs Documentation
So Whatsapp conversations that are outbound initiated and a user never replies are open indefinitely? And therefore never actually billed?