Send Message
send_messageSend one message to a business's customer on the channel you choose: a text (sms) from one of the business's agent lines, or a WhatsApp message from its connected WhatsApp number. The same consent, Do-Not-Call, quiet-hours and rate gates as the dashboard apply, and a refusal says which one. sms needs from_agent_id; whatsapp needs a number the owner connected to WhatsApp (pass from when there is more than one) and a customer who messaged that number in the last 24 hours. Email is not sent here: use email_campaign, which drafts a campaign the owner reviews and approves. Pass business_id when the account has more than one business. Never claim a message was delivered from this result: it reports that the provider accepted it.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient: an E.164 phone number. | |
| body | Yes | Message text. | |
| from | No | whatsapp only: the business's connected WhatsApp number, when it has more than one. | |
| channel | Yes | ||
| lead_id | No | Optional lead ID to link and honor the lead's automation-pause state. | |
| business_id | No | The business sending. Required when the account has more than one. | |
| from_agent_id | No | sms only (required): the agent whose phone line sends the text. | |
| idempotency_key | No | Optional caller-supplied key. Completed replays return the original send. New keyed WhatsApp requests reserve a durable intent before dispatch. Uncertain or concurrent replays are refused; do not retry with a new key. Legacy lost receipts remain unverified. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | ||
| to | No | ||
| code | No | ||
| from | No | ||
| error | No | Present when success is false | |
| status | No | ||
| channel | No | ||
| success | Yes | Whether the tool completed successfully | |
| provider | No | ||
| replayed | No |