Integration guide · Updated October 2026

Send a WhatsApp follow-up after an AI call (AiSensy, Interakt, Wati)

This guide connects a Vyora Workflow to your own WhatsApp Business API account, so a contact who misses the AI call gets a WhatsApp template within minutes. It takes about 15 minutes once your template is approved. No code, no Zapier.

What you need

  • — A Vyora Business plan (Workflows are on Business).
  • — An account with a WhatsApp Business API provider: AiSensy, Interakt or Wati. Others work too if they have an HTTPS API.
  • — One Meta-approved template in that account, and its API key or token.
01

How it works

Vyora does not send WhatsApp messages itself. A Workflow places the call, checks the result, and then a Send to CRM step calls your WhatsApp provider's API with the contact's name, number and call details filled in. Your provider sends the template from your number and bills you for the conversation as usual.

1

Call step

2

If: they didn't answer

3

Send to CRM → provider API

4

WhatsApp template delivered

02

Set it up step by step

  1. 01

    Get an approved template from your provider

    A business can only start a WhatsApp conversation with a template Meta has approved. Create one in AiSensy, Interakt or Wati, for example: "Hi {{1}}, we just tried calling you about your enquiry. Reply YES and we will call back at a time that suits you." Approval usually takes minutes to a few hours.

  2. 02

    Open Workflows and add a Call step

    In app.vyora.ai go to Workflows → New workflow (or start from the "Follow up if no answer" recipe). The first step is a Call step: pick the agent that should call.

  3. 03

    Add an If / else step for missed calls

    Click "Add step" below the Call and choose If / else. Set the condition to "They didn't answer". Add "They hung up quickly" with "any" if very short calls should also get the message. Skip this step if every contact should get WhatsApp after the call.

  4. 04

    Add a "Send to CRM" step on the Yes branch

    Despite the name, this step can call any HTTPS API, including your WhatsApp provider's. Choose POST, paste your provider's address, add the header it needs, and paste the JSON body from section 4. Use the field chips under the body to insert {{callee_name}}, {{callee_number}} and the rest where your cursor is.

  5. 05

    Send a test run to your own number

    Click Test, enter your own name and number, and let the call ring out without answering. Open Runs: the Send to CRM line should read "Sent to your CRM (200)" and the WhatsApp message should arrive within a few minutes.

  6. 06

    Publish and send real contacts through it

    Publish the workflow. Contacts enter it from Campaigns (choose the workflow instead of an agent and upload your list), from the Lead link (Zapier, Pabbly, website forms), or from a test run.

03

Fields you can put in the message

The Send to CRM step replaces these with the contact's values when it sends. Call fields come from the nearest Call step above it. Any column you add to your contact list is available as {{column_name}} too.

{{callee_name}}

Contact name from your list or lead form

{{callee_number}}

Number with country code, e.g. +919876543210

{{callee_number_local}}

Number without country code, e.g. 9876543210

{{call_status}}

completed when they answered, otherwise not

{{summary}}

Short summary of the call

{{call_duration}}

Call length in seconds

{{answer.<field>}}

A Post-Call Analysis answer, e.g. {{answer.visit_date}}

04

Provider settings: AiSensy, Interakt, Wati

AiSensy

  1. In AiSensy, create a template and wait for Meta approval.
  2. Go to Campaigns → Launch → API Campaign, pick the approved template and set the campaign Live. Note the campaign name.
  3. Copy your API key (in AiSensy's developer / API settings).
  4. In the Send to CRM step, fill in:
MethodPOST
Addresshttps://backend.aisensy.com/campaign/t1/api/v2
HeaderNone (the key goes in the body)

What to send (JSON)

{
  "apiKey": "YOUR_AISENSY_API_KEY",
  "campaignName": "missed_call_followup",
  "destination": "{{callee_number}}",
  "userName": "{{callee_name}}",
  "templateParams": ["{{callee_name}}"]
}
  • —destination takes the number with +91, so {{callee_number}} works as it is.
  • —templateParams must have exactly as many values as the template has variables, or AiSensy rejects the request.

Interakt

  1. In Interakt, create a template and wait for Meta approval. Note its code name (in the template URL, between "template/" and "/view") and its language code.
  2. Copy the API key from Settings → Developer Settings. Public APIs are not available on Interakt's Starter plan.
  3. In the Send to CRM step, fill in:
MethodPOST
Addresshttps://api.interakt.ai/v1/public/message/
HeaderAuthorization: Basic YOUR_INTERAKT_API_KEY

What to send (JSON)

{
  "countryCode": "+91",
  "phoneNumber": "{{callee_number_local}}",
  "type": "Template",
  "template": {
    "name": "missed_call_followup",
    "languageCode": "en",
    "bodyValues": ["{{callee_name}}"]
  }
}
  • —Interakt wants the number without the country code, so use {{callee_number_local}}, not {{callee_number}}.
  • —languageCode must match the language the template was approved in (e.g. "hi" for a Hindi template).

Wati

  1. In Wati, create a template and wait for Meta approval. Note the template name and its variable names.
  2. Create an API token: Connector → API → Create API Token, with permission to send template messages.
  3. In the Send to CRM step, fill in:
MethodPOST
Addresshttps://live-mt-server.wati.io/api/ext/v3/messageTemplates/send
HeaderAuthorization: Bearer YOUR_WATI_API_TOKEN

What to send (JSON)

{
  "template_name": "missed_call_followup",
  "broadcast_name": "vyora_followup",
  "recipients": [
    {
      "phone_number": "91{{callee_number_local}}",
      "custom_params": [
        { "name": "name", "value": "{{callee_name}}" }
      ]
    }
  ]
}
  • —Wati's examples use the number as digits with the country code, no "+", so "91{{callee_number_local}}" builds exactly that.
  • —Each custom_params name must match a variable name in your Wati template.

Replace the template and campaign names with your own. Provider APIs change; if a request is refused, compare it with your provider's current API documentation. The examples assume Indian (+91) numbers.

05

Check it worked, and fix common errors

Run log says
What to do
Sent to your CRM (200)
Accepted by your provider. If nothing arrives, check the message status in the provider's dashboard (template paused, number not on WhatsApp, wallet balance).
Your CRM refused it (401 / 403)
Wrong or expired API key or token, or a missing "Basic " / "Bearer " prefix in the header.
Your CRM refused it (400)
Body does not match the template: wrong template or campaign name, wrong language code, or a different number of variables.
Didn't send: the address isn't allowed
The address must start with https:// and be a public host.
Your CRM didn't answer within 15 seconds
Provider was slow or down. The workflow carries on; the message for that contact is not retried.
06

Not on the Business plan? Use the call webhook

On any plan, Vyora can POST each finished call to a URL you set in Settings → Integrations → Webhook (details in the API docs). Point it at a Zapier "Catch Hook" or Pabbly webhook trigger, add a filter on status, and then an action that sends the template through your WhatsApp provider using phone_number and contact_name from the payload.

The Workflow route above is the better fit for missed calls: it decides with the "They didn't answer" condition, needs no third tool, and keeps the API key inside Vyora.

07

Frequently asked questions

Does Vyora send WhatsApp messages itself?

No. Vyora places the AI voice call. The WhatsApp message goes out from your own WhatsApp Business API provider (AiSensy, Interakt, Wati or similar), using your account, your number and a template Meta has approved. Vyora calls that provider's API for you from a Workflow.

Which Vyora plan do I need?

Workflows, and the "Send to CRM" step this guide uses, are on the Business plan. On any plan you can instead use the call webhook in Settings → Integrations with Zapier or Pabbly in between (section 6).

Can I send WhatsApp only to people who did not pick up?

Yes. Put an If / else step after the Call step with the condition "They didn't answer", and put the Send to CRM step on its Yes branch. People who answered go down the other branch.

Can the message include what was said on the call?

Yes. Template variables can use {{summary}} (the call summary) or {{answer.<field>}} for any Post-Call Analysis field on the agent, for example a preferred visit date. Keep in mind Meta caps template variable length and rejects some characters such as new lines in body variables.

What happens if my WhatsApp provider rejects the request?

The workflow keeps going. The contact's run log shows the result, for example "Sent to your CRM (200)" or "Your CRM refused it (400)". A 200 means the provider accepted the request; check delivery in your provider's dashboard.

Where is my provider API key stored?

In the Send to CRM step on Vyora. Vyora fills in the contact details and sends the request itself, so the key and the message body are not shared with the voice platform that places the call.

Related

We use cookies to improve your experience. By continuing to use this site, you agree to our Privacy Policy.