> This page is part of the [Customer.io documentation](https://docs.customer.io). For the complete index, see [llms.txt](https://docs.customer.io/llms.txt).
> Last updated: August 24, 2026

# Set up a transactional WhatsApp message

Transactional WhatsApp messages are messages that your audience implicitly opts-into, like order confirmations, password reset codes, or account verification messages. You can send transactional WhatsApp messages programmatically through Customer.io.

Like transactional SMS, you must send a transactional WhatsApp message with a template. WhatsApp also requires you use a [WhatsApp-approved content template](/messaging/channels/whatsapp/content-templates/).

New to transactional messaging?

Check out our [getting started](/messaging/send/transactional/api/) section to learn more about transactional concepts and how our transactional API works.

## Before you begin

Before you can send transactional WhatsApp messages, you need to:

*   [Enable WhatsApp](/messaging/channels/whatsapp/get-started/#set-up-meta) in your workspace and set up a WhatsApp-approved sender.
*   Create one or more [WhatsApp-approved content templates](/messaging/channels/whatsapp/content-templates/). WhatsApp requires that messages use content that Meta has reviewed and approved before you can send them.
*   Get your [App API key](https://fly.customer.io/settings/api_credentials?keyType=app). This is the bearer token that you’ll use when you call the [transactional API](/integrations/api/app/#tag/send-messages/POST/v1/send/whatsapp) to trigger a message.

Do you send WhatsApp through Twilio?

If you do, follow the steps for [transactional SMS](/messaging/send/transactional/sms/) to successfully set up and send WhatsApp messages.

## Create a transactional WhatsApp message

You have to create a message template before you can send a transactional whatsapp message. Make sure it’s a [WhatsApp-approved content template](/messaging/channels/whatsapp/content-templates/) before you start sending messages. Then when you send a transactional WhatsApp message, you include the `transactional_message_id` of the template you created.

1.  Go to **Transactional**, and click **Send your first message** or **Create message**—depending on whether you’ve already started creating transactional messages.

2.  Give your message a **Name** and a **Description** and then click **Next: Add Content**. The name and description help your team members understand what kind of message this is (like “Two-Factor Authentication” or “Password Reset Code”).

3.  Select **WhatsApp** and click **Add Content**.

4.  Choose the WhatsApp content template you want to send. Templates labeled “Approved” have been approved by Meta and are ready to send.

5.  Preview with sample data to see how your variables render.

6.  Check that you’re sending to your desired WhatsApp-approved sender.

7.  Click **Save Changes** and then click **Done** to finish set up.

8.  Click **Next: Configure Settings** to review or change your message settings. In general, we recommend you use our defaults and set a trigger name so that it’s easier to send your message later.

    *   **Send to unsubscribed profiles?** Unsubscribed profiles probably still want to receive your important transactional messages like order confirmations and password resets.

    *   **Enable link tracking?** By default, we’ll track clicks on links in your transactional WhatsApp messages. Disable this setting if you don’t use our [link shortening feature](/messaging/channels/whatsapp/get-started/#link-shortening) or want to keep the original links intact.

    *   **Protect sensitive data by disabling message retention?** This setting prevents Customer.io from retaining your message content. You might want to do this to conceal sensitive messages, like password reset codes or verification tokens.

    *   **Queue messages as drafts?** This setting generates a draft for every message you trigger rather than sending them automatically. You can review these messages under the *Drafts* tab and decide whether to send or delete them.

    *   **Assign [message frequency limit](/messaging/send/message-limits/set-up-message-limits/)?**: If you want to count this transactional message as part of a message limit, turn this on and select your pre-made limit. Otherwise, click **Manage message frequency limits** to set one up in workspace settings.

    *   **Set a Trigger Name**: This is a friendly name for your message that you can use instead of the `transactional_message_id` when you send your message. It may help make your integration more human-readable if you use triggers that represent the kinds of messages you send—like `password_reset` or `order_confirmation`.

9.  Now you’re ready to send your message. You can adapt the code sample on the **Send Message** screen to your code—wherever you intend to trigger transactional messages—or [use our API directly](/integrations/api/app/tag/send-messages/sendWhatsApp/). Send a test message to make sure your integration works as expected.

©2026 Peaberry Software, Inc. [Status](https://status.customerio.com/) [Terms of Service](https://customer.io/legal/terms-of-service/) [Privacy Policy](https://customer.io/legal/privacy-policy/)

[](https://www.linkedin.com/company/customer-io)[](https://twitter.com/customerio)[](https://www.youtube.com/channel/UCkCaWdezRoa8ZyR9pEVaipA)[](https://www.instagram.com/customer.io/)
