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.

New to transactional messaging?

Check out our getting started 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:

Do you send WhatsApp through Twilio?

If you do, follow the steps for 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 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 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?: 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. Send a test message to make sure your integration works as expected.

Updated August 24, 2026