Sms campaigns · send
sms_campaigns_sendSend a draft SMS campaign. body.scheduled_at is required: a time schedules it, null sends now (the draft's saved time, sent back, keeps it). Same checks as the dashboard; a blocked send returns 409 with reasons in error.details[] (field = what to fix, code = why). Consent and quiet hours apply per recipient. A large audience still being counted returns 409 preflight_pending until sms_campaigns_validate has its report.
Scope: campaigns:send.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"id": "<id>",
"body": "<body>"
},
"name": "sms_campaigns_send"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | SMS campaign id (`cmp_…`). | |
| body | Yes | Required `{ scheduled_at }`: an ISO 8601 time with `Z` or an offset (e.g. `-07:00`) to schedule, `null` to send now. A misnamed time key (`scheduledAt`, `send_at`, …) is a 422 and nothing is sent; other keys are ignored. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | ||
| hint | No | ||
| status | No | ||
| warning | No | ||
| request_id | No | ||
| retry_after_seconds | No |