---
title: WhatsApp
description: Send WhatsApp messages
---

import { BlockInfoCard } from "@/components/ui/block-info-card"

<BlockInfoCard 
  type="whatsapp"
  color="#25D366"
/>

{/* MANUAL-CONTENT-START:intro */}
[WhatsApp](https://www.whatsapp.com/) is a globally popular messaging platform that enables secure, reliable communication between individuals and businesses.

WhatsApp Business API provides organizations with powerful capabilities to:

- **Engage customers**: Send personalized messages, notifications, and updates directly to customers' preferred messaging app
- **Automate conversations**: Create interactive chatbots and automated response systems for common inquiries
- **Enhance support**: Provide real-time customer service through a familiar interface with rich media support
- **Drive conversions**: Facilitate transactions and follow-ups with customers in a secure, compliant environment

In Sim, the WhatsApp integration enables your agents to leverage these messaging capabilities as part of their workflows. This creates opportunities for sophisticated customer engagement scenarios like appointment reminders, verification codes, alerts, and interactive conversations. The integration bridges the gap between your AI workflows and customer communication channels, allowing your agents to deliver timely, relevant information directly to users' mobile devices. By connecting Sim with WhatsApp, you can build intelligent agents that engage customers through their preferred messaging platform, enhancing user experience while automating routine messaging tasks.
{/* MANUAL-CONTENT-END */}


## Usage Instructions

Integrate WhatsApp into the workflow. Can send messages.



## Actions

### `whatsapp_send_message`

Send a text message through the WhatsApp Cloud API.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `phoneNumber` | string | Yes | Recipient phone number with country code \(e.g., +14155552671\) |
| `message` | string | Yes | Plain text message content to send |
| `phoneNumberId` | string | Yes | WhatsApp Business Phone Number ID \(from Meta Business Suite\) |
| `previewUrl` | boolean | No | Whether WhatsApp should try to render a link preview for the first URL in the message |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | WhatsApp message send success status |
| `messageId` | string | Unique WhatsApp message identifier |
| `messageStatus` | string | Initial delivery state returned by the API |
| `messagingProduct` | string | Messaging product returned by the API |
| `inputPhoneNumber` | string | Recipient phone number echoed back by WhatsApp |
| `whatsappUserId` | string | WhatsApp user ID resolved for the recipient |
| `contacts` | array | Recipient contact records returned by WhatsApp |
|   ↳ `input` | string | Input phone number sent to the API |
|   ↳ `wa_id` | string | WhatsApp user ID associated with the recipient |



## Triggers

A **Trigger** is a block that starts a workflow when an event happens in this service.

### WhatsApp Webhook

Trigger workflow from WhatsApp incoming messages and message status webhooks

#### Configuration

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `verificationToken` | string | Yes | Enter any secure token here. You |
| `appSecret` | string | Yes | Required for WhatsApp POST signature verification. Sim uses it to validate the X-Hub-Signature-256 header on every webhook delivery. |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `eventType` | string | Webhook classification such as incoming_message, message_status, or mixed |
| `messageId` | string | First WhatsApp message identifier \(wamid\) found in the webhook batch |
| `from` | string | Sender phone number from the first incoming message in the batch |
| `recipientId` | string | Recipient phone number from the first status update in the batch |
| `phoneNumberId` | string | Business phone number ID from the first message or status item in the batch |
| `displayPhoneNumber` | string | Business display phone number from the first message or status item in the batch |
| `text` | string | Text body from the first incoming text message in the batch |
| `timestamp` | string | Timestamp from the first message or status item in the batch |
| `messageType` | string | Type of the first incoming message in the batch \(text, image, system, etc.\) |
| `status` | string | First outgoing message status in the batch, such as sent, delivered, read, or failed |
| `contact` | json | First sender contact in the batch \(wa_id, profile.name\) |
| `webhookContacts` | json | All sender contact profiles from the webhook batch |
| `messages` | json | All incoming message objects from the webhook batch, flattened across entries/changes |
| `statuses` | json | All message status objects from the webhook batch, flattened across entries/changes |
| `conversation` | json | Conversation metadata from the first status update in the batch \(id, expiration_timestamp, origin.type\) |
| `pricing` | json | Pricing metadata from the first status update in the batch \(billable, pricing_model, category\) |
| `raw` | json | Complete structured webhook payload from WhatsApp |

