Klaviyo Integration

Jahnavi Prasad Updated by Jahnavi Prasad

Klaviyo Integration

This integration requires active WATI and Klaviyo subscriptions.

WATI can be integrated with the Klaviyo Marketing Automation platform to:

  • Send WhatsApp messages from Klaviyo
  • Send WATI Chatbot data to Klaviyo
Use Case 1: Send WhatsApp messages from Klaviyo

Automated marketing flows in Klaviyo are used to send WhatsApp messages with the help of WATI APIs.

  1. Go to https://www.klaviyo.com/flows
  2. Click on the 'Create Flow' button
  3. Click on the 'Start from Scratch' button and give the flow a name.
  4. The Trigger would be the event for which you automatically want to trigger this flow
    For example: if you want to send a confirmation message when someone signs up for your newsletter,
    'When someone is added to Newsletter' would be your Trigger.
  5. Click the 'Webhook' option on the left sidebar, drag and drop it into the flow
  6. Name the Webhook. All the remaining fields in the webhook require you to log in to WATI.
  7. Go to the API Docs Page in your WATI Dashboard
    Scroll down till you find /api/v1/sendTemplateMessages endpoint
    Click on the Try it Out button on the right side
    1. [Most important step of the process] In the Request Body,
      Replace the string beside template_name with the name of the template message we are trying to send
      Replace the string beside broadcast_name with any name you want to use, to identify messages triggered from Klaviyo. This can be anything, for example: 'Klaviyo registration confirmation'
      Replace the string beside whatsappNumber with {{ person.phone_number|default:'' }}
      If you are NOT using any variables in the template message, you can leave the custom params empty: "customParams": []
      If you are using variables in your template, then the values for the variables must be provided in JSON format.
      For example, for the template message below, we have two variables, {{name}} and {{number}}
      then the request body would look similar to
      More variable values like {{ person.first_name|default:'' }} can be found in Klaviyo by clicking the 'View profile & event properties' button in the Webhook JSON body.
  8. Once the request body is complete and looks similar to the one below, click 'Execute'.
    {
    "template_name": "registration_confirmation",
    "broadcast_name": "This can be anything",
    "receivers": [
    {
    "whatsappNumber": "{{ person.phone_number|default:'' }}",
    "customParams": [
    {
    "name": "name",
    "value": "{{ person.first_name|default:'' }}"
    },{
    "name": "number",
    "value": "{{ person.phone_number|default:'' }}"
    }

    ]
    }
    ]
    }
  9. This execution will return a failure, this is expected because the value we provided for whatsappNumber is invalid.
    Copy the Request URL and paste it into the Destination URL field in Klaviyo.
  10. Copy the whole request body we created above and past it into the Klaviyo flow JSON body
  11. In Klaviyo, under Headers, enter the word Authorization
    Come back to WATI, Scroll to the top, and copy the Access Token
    Go back to Klaviyo, and paste the token in the field beside Authorization
    Your webhook section should end up looking like this:
    Click Save and Change the Webhook Status from Draft to Live.
  12. Click the Update action statuses button on the top right corner of the application to make the flow is live.

Use Case 2: Send WATI Chatbot data to Klaviyo
This use case requires a Pro or Business plan with WATI

You can ask users a series of questions and then store those answers using WATI Chatbots.

The questions could include basic details like 'What is your Email?' and 'What is your Address?' to CSAT feedback.

Pro and Business plan customers will have the option to push these responses to Klaviyo using the Webhook node in WATI Chatbot Builder. Make API calls to Klaviyo’s Update Profile or Create Event APIs to send this data from WATI and store it in Klaviyo.

Additional use cases can be implemented with the help of 3rd paty automation tools like:

How did we do?

Create a Contact in WATI when a new contact is created in Klaviyo

Contact