Message Operations
resource: message — 15 operations for sending and managing messages
send-text
Sends a plain text message.
| Field | Required | Description |
|---|---|---|
to | ✓ Yes | Recipient phone number, E.164 format (e.g. +14155551234). |
text | ✓ Yes | Message body. |
previewUrl | No | Set to "true" to render a link preview for the first URL in text. |
send-image
Sends an image by media ID (previously uploaded) or a public URL.
| Field | Required | Description |
|---|---|---|
to | ✓ Yes | Recipient phone number. |
mediaId | No | ID from a prior media/upload call. Use this OR mediaUrl. |
mediaUrl | No | Publicly reachable image URL. Use this OR mediaId. |
caption | No | Optional caption shown under the image. |
send-video
Sends a video by media ID or URL.
| Field | Required | Description |
|---|---|---|
to | ✓ Yes | Recipient phone number. |
mediaId | No | Uploaded media ID. Use this OR mediaUrl. |
mediaUrl | No | Publicly reachable video URL. Use this OR mediaId. |
caption | No | Optional caption. |
send-audio
Sends an audio clip by media ID or URL.
| Field | Required | Description |
|---|---|---|
to | ✓ Yes | Recipient phone number. |
mediaId | No | Uploaded media ID. Use this OR mediaUrl. |
mediaUrl | No | Publicly reachable audio URL. Use this OR mediaId. |
send-document
Sends a document (PDF, etc.) by media ID or URL.
| Field | Required | Description |
|---|---|---|
to | ✓ Yes | Recipient phone number. |
mediaId | No | Uploaded media ID. Use this OR mediaUrl. |
mediaUrl | No | Publicly reachable document URL. Use this OR mediaId. |
filename | No | Filename shown to the recipient. |
caption | No | Optional caption. |
send-sticker
Sends a WEBP sticker by media ID.
| Field | Required | Description |
|---|---|---|
to | ✓ Yes | Recipient phone number. |
mediaId | ✓ Yes | ID of a previously uploaded sticker (must be WEBP). |
send-location
Sends a pinned location.
| Field | Required | Description |
|---|---|---|
to | ✓ Yes | Recipient phone number. |
latitude | ✓ Yes | Decimal latitude. |
longitude | ✓ Yes | Decimal longitude. |
name | No | Location label. |
address | No | Location address. |
send-contacts
Sends one or more vCard-style contact cards.
| Field | Required | Description |
|---|---|---|
to | ✓ Yes | Recipient phone number. |
contactsJson | ✓ Yes | JSON array of contact objects in Cloud API contacts schema. |
send-interactive-buttons
Sends a message with up to 3 quick-reply buttons.
| Field | Required | Description |
|---|---|---|
to | ✓ Yes | Recipient phone number. |
bodyText | ✓ Yes | Main message body. |
buttonsJson | ✓ Yes | JSON array of button definitions (id + title). |
headerText | No | Optional header text. |
footerText | No | Optional footer text. |
send-interactive-list
Sends a message with a tappable option list.
| Field | Required | Description |
|---|---|---|
to | ✓ Yes | Recipient phone number. |
bodyText | ✓ Yes | Main message body. |
buttonText | ✓ Yes | Label on the button that opens the list. |
sectionsJson | ✓ Yes | JSON array of list sections/rows. |
headerText | No | Optional header text. |
footerText | No | Optional footer text. |
send-reaction
Reacts to an existing message with an emoji.
| Field | Required | Description |
|---|---|---|
to | ✓ Yes | Recipient phone number (conversation the message belongs to). |
messageId | ✓ Yes | WhatsApp message ID being reacted to. |
emoji | ✓ Yes | Single emoji character. Send an empty string to remove a reaction. |
send-template
Sends a pre-approved message template. Identical call to template/send.
| Field | Required | Description |
|---|---|---|
to | ✓ Yes | Recipient phone number. |
templateName | ✓ Yes | Approved template name. |
languageCode | ✓ Yes | Template language/locale code (e.g. en_US). |
componentsJson | No | JSON array of template component parameters (header/body/button variables). |
send-and-wait
Sends a message and waits for a reply (human-in-the-loop). Not yet implemented — see Roadmap.
| Field | Required | Description |
|---|---|---|
to | ✓ Yes | Recipient phone number. |
text | ✓ Yes | Message body. |
timeoutSeconds | No | How long to wait for a reply before timing out. Default 300. |
mark-as-read
Marks an inbound message as read (blue ticks).
| Field | Required | Description |
|---|---|---|
messageId | ✓ Yes | WhatsApp message ID to mark as read. |
send-typing-indicator
Shows the "typing..." indicator to the recipient.
| Field | Required | Description |
|---|---|---|
to | ✓ Yes | Recipient phone number. |
IWhatsAppMessageService.SendAndWaitAsync service method doesn't exist yet.
Calling it returns a not_implemented error. See Roadmap.
messageSent, messageId,
phoneNumberId, to, status, errorCode, errorMessage,
payload (the raw Graph API response). See Input & Output.