WhatsApp inside your Customer.io journeys.

Add a webhook action to a Customer.io journey and it sends a Meta-approved WhatsApp template through the Flowella API, filled in with each person’s details. Replies come back to your Flowella inbox.

  • Works todayThrough the Flowella API and webhooks
  • Coming soonThe native Customer.io integration
Flo, the Flowella mascot, launching a green paper plane from one raised hand, with a phone in the other

Send WhatsApp from a journey step.

Here’s a Customer.io journey, drawn in Flowella’s style. Pick a template or change Ada’s first name to see exactly what the webhook step sends to the Flowella API, then run it and watch the template land on her phone.

Works today via API
Membership renewalCustomer.io journey
Sample data

Ada reaches the webhook step+447700900123

  1. TriggerJoins the segment Renewal due in 7 days
  2. WaitUntil 10:00 in their time zone
  3. WebhookSends a WhatsApp template through the Flowella API

    Sent as templateId, the template’s ID in Flowella.

    Hi {{1}}, your Acme Club membership renews on {{2}}. Renew in a minute, right here in WhatsApp.Renew now

    Hi {{1}}, see you at {{2}} on Saturday. Tap below to see your ticket or change your booking.View my booking

    Thank you, {{1}}. Your gift of {{2}} is already at work. Tap below for your receipt.Get my receipt

    From Ada’s profile in Customer.io. Try another name.

    Add a first name. A template variable can’t be empty.

    Renewal dateEventGift amount{{2}}

    31 Octoberthe Autumn Fair£25From her profile

  4. ThenThe journey carries on in Customer.io
Webhook requestWhat the step sends to Flowella
Sample data

POSThttps://api.flowella.io/v1/templates/send

Headers

Authorization
Bearer flo_(masked)Your API key, masked
Content-Type
application/json

Body

{
  "templateId": "clsamplerenewal0000000001",
  "whatsappChannelId": "clsamplechannel0000000001",
  "recipients": [
    {
      "phone": "+447700900123",
      "bodyParameters": [
        "Ada",
        "31 October"
      ]
    }
  ]
}

Flowella’s answer

Not sent yetSending202 Accepted

Run the step to see Flowella’s answer.

Sending to the Flowella API

{
  "id": "v1ts-0123456789abcdef",
  "status": "accepted"
}

Accepted and queued for your organisation. Flowella sends it in the background.

Same request, same job: nothing new was sent.

Acme ClubBusiness account
Sample data

Today

Set it up in three steps.

You need a Flowella account with WhatsApp connected, a template Meta has approved, and a journey in Customer.io. Then:

  1. Step 1: Create an API key

    In Flowella, go to Settings → API keys and create a key for Customer.io. Only Owners and Admins can, and Flowella shows the key once.

    API keysSample data
    Label
    Customer.io production
    Key
    flo_••••••••
    Last used
    Not yet
    Active
    How API keys work
  2. Step 2: Add a webhook action

    In your journey, add a webhook action that sends a POST to api.flowella.io/v1/templates/send, with the key in the Authorization header.

    Webhook actionSample data
    Method
    POST
    URL
    https://api.flowella.io/v1/templates/send
    Header
    Authorization: Bearer flo_••••
    Ready
    The endpoint in full
  3. Step 3: Fill in the body

    The JSON body names the template and your WhatsApp channel, then the person’s phone number and variables from their profile. Flowella answers 202 Accepted and sends it.

    Flowella’s answerSample data
    Status
    202 Accepted
    Body
    "status": "accepted"
    Delivery
    In the background
    Queued
    API reference

What works today, and what’s on the way.

Everything above runs on the Flowella API and webhooks, available now. The native Customer.io integration is coming soon.

Coming soon

The native Customer.io integration

We’ll publish how it works here when it’s ready. Until then, a webhook action and the Flowella API do the job.

Good to know

  • One request per personEach person who reaches the step gets their own request, with their own phone number and variables.
  • 202 means queuedFlowella accepts the send, queues it for your organisation and delivers it in the background.
  • Whole lists in one goOne request can carry up to 50,000 recipients, and throttlePerHour paces delivery for you.
  • Replies stay in FlowellaReplies land in your Flowella inbox. They aren’t sent back to Customer.io.

Available today Works today

Open to any tool that can send an HTTP request, Customer.io included.

Webhook events you can subscribe to today

  • message.received
  • message.sent
  • message.delivered
  • message.read
  • message.failed
  • conversation.opened
  • conversation.closed
  • optout.created
  • template.status_updated
  • contact.created
  • contact.updated
  • contact.deleted

Plus webhook.test, which Send test fires on demand.

Countryside Alliance already sends this way.

Game-changing donation campaign tool that delivers personal WhatsApp engagement with seamless automation and dramatically better completion rates.

Lawrence Tribe-Endt Lawrence Tribe-EndtCommercial Director, Countryside AllianceCustomer.io through the Flowella API Countryside Alliance
Flo jumping for joy with her fist in the air and a phone in her hand

Start sending from your Customer.io journeys.

Everything on this page works today through the Flowella API and webhooks. Book a 30-minute demo on Teams and we’ll look at your journeys together.

See all integrations