send_imessage
Sends an iMessage from the user's Mac via Messages.app, returning a draft ID for delivery confirmation; queues messages when the new-outreach limit is reached.
Instructions
Send an iMessage from the user's Mac. Creates a draft that the user's Mac agent picks up and dispatches via Messages.app. Returns the draft id; use get_draft_status to confirm delivery. The recipient must be a valid phone number in E.164 format (+14155551234) or an email address that the recipient uses for iMessage. If the user's new-outreach limit is reached (N unreplied conversations messaged in a rolling 24-hour window), the message is STILL ACCEPTED and queued: the response carries meta.queued (reason, limit, used, resumesAt = earliest moment a slot frees) and the draft's status is "held" until earlier sends age out of the window or the user raises the limit in Settings — tell the user it is queued, not failed. A 403 recipient_opted_out means the recipient texted STOP: do not retry.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient phone (E.164, e.g. "+14155551234") or email address. | |
| body | Yes | Message body. Max 4096 characters. | |
| response_webhook_url | No | Optional. HTTPS URL that will receive POST notifications when the recipient replies in this conversation. Persists across the conversation thread, not just the single send. | |
| response_webhook_events | No | Optional. Subset of events the webhook subscribes to. Defaults to all events. Common values: "message_received". |