Klaviyo CRM

This guide explains what you, as the customer, need to prepare and do in Klaviyo to send SMS and WhatsApp messages through http://CM.com from your Klaviyo flows. The first flow takes about 15–20 minutes. Each additional flow takes about 5 minutes.

What this integration does

  • Send SMS and WhatsApp template messages through your own http://CM.com account from any Klaviyo flow, using a Webhook action.

  • Every status change of a message is added to the Klaviyo profile as an event:

Channel

Events

SMS

CM SMS Sent, CM SMS Delivered, CM SMS Failed

WhatsApp

CM WhatsApp Sent, CM WhatsApp Delivered, CM WhatsApp Read, CM WhatsApp Failed

  • Each event has these properties: reference, channel, status, flowId, errorCode and errorDescription.

  • The integration only asks Klaviyo for Accounts: Read and Events: Write. It does not read or change profiles, lists or campaigns.

  • The integration does not check marketing consent. You decide who receives a message with flow filters and segments in Klaviyo.

1. Prerequisites

Before you start, make sure you have the following:

  • A http://CM.com account with Business Messaging enabled for SMS, WhatsApp, or both.

  • For SMS, a sender name (at most 11 letters and digits, for example YourBrand) or a sender phone number.

  • For WhatsApp:

    • A WhatsApp Business number connected to your http://CM.com account.

    • One or more approved WhatsApp templates. WhatsApp only allows business-initiated messages that use an approved template.

  • A Klaviyo user with the Owner, Admin or Manager role. This user connects the app.

  • Two-step authentication (MFA) turned on for the Klaviyo user who builds the flows. Klaviyo only allows webhook actions in flows for users with MFA.

  • Phone numbers stored on your Klaviyo profiles in international format, for example +31612345678.


2. Provide Your Details

What to Share with Us

  • Your http://CM.com product token.

  • Your SMS sender name, if you use SMS.

  • Your WhatsApp Business number and the WhatsApp template namespace, if you use WhatsApp.

  • The default language of your WhatsApp templates, for example en or nl. If you leave this out, en is used.

⚠️ Important: Do not share your product token publicly or by plain email or chat. Only share it through the secure channel agreed with our team.


3. Connect Your Klaviyo Account

After our team has configured the integration, you connect Klaviyo once.

  1. Log in to Klaviyo with a user that has the Owner, Admin or Manager role.

  2. Click Connect on the Klaviyo integration in the Marketplace, or open the link our team gives you.

  3. You are redirected to Klaviyo. Check that the account shown is the correct one, review the requested access and click Allow.

  4. You are returned to the Marketplace and a success notification is shown.

After this step, http://CM.com Marketplace is listed as an installed app in your Klaviyo account.


4. Receive Your Webhook Details

Our team sends you, through the secure channel:

  • The Webhook URL, in this format: https://api.cm.com/marketplace/crm/v1/tenants/{tenantId}/adapters/{integrationId}/events?eventType=send

  • The API key of the integration.

⚠️ Important: Anyone who has the API key can send messages that are charged to your http://CM.com account. Only enter it in the Klaviyo webhook header, and never share it in tickets, chat or screenshots.


5. Add a Webhook Step to a Flow

Repeat these steps for every flow that should send an SMS or WhatsApp message.

  1. In Klaviyo, open Flows and create a new flow or open an existing one.

  2. Make sure the flow only reaches profiles that may receive the message. Use a flow filter or a trigger segment based on consent, for example Can receive SMS marketing for SMS.

  3. Drag a Webhook action into the flow at the point where the message should be sent.

  4. Fill in the webhook:

    • Destination URL: the Webhook URL from step 4.

    • Headers: add one header.

      • Key: Authorization

      • Value: Bearer <your API key>

    • JSON Body: use one of the examples below.

  5. Click Preview and select a test profile whose phone number is your own. The preview search finds profiles by email or name, not by phone number. Check that "to" in the preview shows the phone number; if it is empty, that profile has no phone number.

  6. Click Send test request. This sends a real message to that test profile.

  7. Save the action and set its status to Live. An action that stays in Draft or Manual status does not send anything automatically.

JSON body for SMS

JSON
{
  "channel": "sms",
  "to": "{{ person.phone_number }}",
  "text": "Hi {{ person.first_name }}, your order is on its way!",
  "flowId": "order-shipped"
}

JSON body for WhatsApp

JSON
{
  "channel": "whatsapp",
  "to": "{{ person.phone_number }}",
  "flowId": "order-shipped",
  "template": {
    "name": "order_shipped",
    "language": "en",
    "params": ["{{ person.first_name }}", "{{ event.OrderId }}"]
  }
}

Fields

Field

Required

Description

channel

Yes

sms or whatsapp.

to

Yes

Phone number of the recipient in international format. Usually {{ person.phone_number }}.

text

SMS only

The SMS text. You can use any Klaviyo variable.

template.name

WhatsApp only

Name of the approved WhatsApp template, exactly as it was approved.

template.language

No

Language of the template, for example en or nl. If it is left out, the default language from the integration is used.

template.params

No

Values for the template variables in order: the first value fills {{1}}, the second fills {{2}}, and so on.

template.namespace

No

Only needed if this template uses a namespace other than the one configured on the integration.

from

No

Overrides the sender configured on the integration for this flow.

flowId

No (recommended)

A short label of your choice, for example order-shipped. It is shown on every CM event so you can tell which flow sent a message.

💡 Tip: The number and order of the params must match the variables in the approved template. If they do not match, WhatsApp rejects the message and a CM WhatsApp Failed event is created.


6. Check the Result

  1. Open the test profile in Klaviyo (Audience > Profiles).

  2. Within a minute, the profile's activity shows CM SMS Sent or CM WhatsApp Sent. The delivery events (Delivered, Read or Failed) follow as soon as the operator or WhatsApp reports them.

  3. Open the event to see the reference of the message. You can use it to find the message in the http://CM.com portal.

You can now use the CM events like any other Klaviyo metric:

  • Segments, for example "received a CM WhatsApp message in the last 30 days".

  • Flow triggers, for example send an email when CM WhatsApp Failed occurs.

  • Reports on delivery and read rates.

The CM metrics only appear in Klaviyo after the first message has been sent.


7. Operational Guidelines

  • Do not uninstall the http://CM.com Marketplace app in Klaviyo while flows are using it. Messages are still sent, but the status events stop. To reconnect, click Connect in the Marketplace again.

  • Keep the API key secret. If you think it has leaked, contact us so we can rotate it, and then update the header in every flow.

  • Use only approved WhatsApp templates. If a template is changed or paused in WhatsApp, the flows that use it fail until it is approved again.

  • Respect local rules for SMS. Some countries require registered sender names or message templates, for example India (DLT) and the United States (10DLC). Contact us before sending to those countries.

  • Inform us in advance if you change or cancel your http://CM.com account or product token.