> ## Documentation Index
> Fetch the complete documentation index at: https://docs.threetone.in/llms.txt
> Use this file to discover all available pages before exploring further.

# Outbound messages and calls

> Prepare recipient, template, and call-permission data while distinguishing the public request contract from unavailable delivery.

Prepare one reviewed outbound request before designing bulk outreach. Keep the business phone, recipient, message purpose, and agent version together in the review.

<Note>
  Both outbound WhatsApp routes currently return HTTP `501`. Account registration and saved preferences can be reviewed, but they do not enable sending or calling. Do not retry `501` as a transient provider failure.
</Note>

## Review the request contract

You need an authorized [connected account](/agents-platform/deploy/whatsapp/connect-account), a controlled test recipient, and an approved reason to contact that person.

| Request | Fields to prepare |
| - | - |
| Message | `whatsapp_phone_number_id`, `whatsapp_user_id`, `agent_id`, `template_name`, `template_language_code`, `template_params` |
| Call | The same phone, recipient, and agent identifiers, plus `whatsapp_call_permission_request_template_name` and `whatsapp_call_permission_request_template_language_code` |
| Optional context | `conversation_initiation_client_data`; schema presence does not prove runtime substitution |

<Steps>
  <Step title="Verify the account and recipient" id="whatsapp-outbound-account">
    Read registration, authorization expiry, and agent assignment back. Confirm the exact recipient and the applicable provider permission requirements. A phone number copied from a record is not permission to contact its owner.
  </Step>

  <Step title="Review the template and language" id="whatsapp-outbound-template">
    Compare the intended text and parameter order with the provider's template. Meta's [template reference](https://www.postman.com/meta/whatsapp-business-platform/request/lwtlz1k/send-message-template-interactive) explains template components and button behavior. Review current template eligibility in the provider account. A message template does not establish permission to initiate a call.
  </Step>

  <Step title="Define submission and reconciliation" id="whatsapp-outbound-outcome">
    For a future released sender, record one application request identifier and retain the provider result. Separate queued, submitted, delivered, and failed outcomes. After an uncertain submission, reconcile before repeating it. Do not claim a Threetone idempotency header or delivery webhook that is not in the released contract.
  </Step>
</Steps>

Compare your review with the [message](/api-reference/agents-platform/send-outbound-message-via-whatsapp) and [call](/api-reference/agents-platform/start-outbound-call-via-whatsapp) reference pages. The current result is prepared request data, not a sent message or connected call.

## Frequently asked questions

<AccordionGroup>
  <Accordion title="Does a valid request body bypass the 501 response?" id="faq-whatsapp-outbound-501">No. Validation and execution are separate. The provider execution path remains unimplemented.</Accordion>
  <Accordion title="Can I use this contract for bulk outreach?" id="faq-whatsapp-outbound-bulk">Do not infer bulk execution from a single-request schema. Batch execution, recipient policy, per-recipient outcomes, and duplicate prevention require their own released workflow.</Accordion>
</AccordionGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.