Integrations · Interakt

Interakt + AI voice calls: a WhatsApp nudge for every missed call

Interakt is where many Indian D2C and service brands already run WhatsApp. Pair it with a Vyora AI agent and every lead the agent can't reach gets your Interakt template within minutes, in English or Hindi, and every reply lands in the Interakt inbox your team already works from.

What you need

  • — Interakt on Growth or Advanced (the public API is not on Starter).
  • — A Meta-approved template in Interakt, and your Interakt API key.
  • — A Vyora Business plan (Workflows). On another plan, see the webhook route on the WhatsApp integrations page.
01

Set it up

  1. 01

    Get the template approved in Interakt

    Create the template in Interakt and wait for Meta approval. Note its code name and language code.
  2. 02

    Copy your Interakt API key

    In Interakt open Settings → Developer Settings and copy the API key.
  3. 03

    Optional: create an API campaign for reporting

    Create an Interakt API campaign for the template and note the campaign id, so sends show in Interakt's reports.
  4. 04

    Add the step in a Vyora Workflow

    After the Call (and If / else "They didn't answer" for missed calls only), add "Send to another app" with Interakt's address, the Basic auth header and the JSON body.
  5. 05

    Test with your own number, then publish

    Run a test, let it ring out, and check the run log reads "Sent to api.interakt.ai (200)".
02

The request Vyora sends to Interakt

Method
POST
Address
https://api.interakt.ai/v1/public/message/
Header
Authorization: Basic YOUR_INTERAKT_API_KEY

Add the header in the step with name Authorization and value Basic followed by a space and your key, exactly as Interakt shows it in Developer Settings.

What to send (JSON)

{
  "countryCode": "+91",
  "phoneNumber": "{{callee_number_local}}",
  "callbackData": "vyora_call_{{call_id}}",
  "type": "Template",
  "template": {
    "name": "missed_call_followup",
    "languageCode": "en",
    "bodyValues": ["{{callee_name}}"]
  }
}

name is the template's code name: in Interakt it is the part of the template's URL between template/ and /view, not the display title. callbackData (up to 512 characters) comes back in Interakt's delivery webhooks, so putting the Vyora call id there lets you match a WhatsApp status to the call.

03

Phone number: the one Interakt gotcha

Interakt rejects a number that includes the country code or starts with 0. Vyora stores numbers as +919876543210, so use the field made for this:

Interakt field
Put
Becomes
countryCode
"+91"
+91
phoneNumber
"{{callee_number_local}}"
9876543210
phoneNumber
"{{callee_number}}" (wrong)
+919876543210, rejected
04

Mapping template variables

Interakt fills body variables in order from bodyValues: first value into {{1}}, second into {{2}}. Only include headerValues or buttonValues if the template actually has header or dynamic-button variables.

A Hindi template that confirms the callback time the lead gave the agent, with a campaign id so it shows in Interakt's reports:

{
  "countryCode": "+91",
  "phoneNumber": "{{callee_number_local}}",
  "campaignId": "YOUR_INTERAKT_CAMPAIGN_ID",
  "type": "Template",
  "template": {
    "name": "callback_slot_hi",
    "languageCode": "hi",
    "bodyValues": ["{{callee_name}}", "{{answer.callback_time}}"]
  }
}

{{answer.callback_time}} exists only when the agent collects a Post-Call Analysis field called callback_time, so use this on the "They answered" branch.

05

Test it and read the run log

Run log says
Fix
Sent to api.interakt.ai (200)
Interakt accepted it. Check the message status in Interakt if nothing arrives (number not on WhatsApp, template paused).
api.interakt.ai refused it (401)
Header missing or wrong. It must read "Basic " plus the key from Developer Settings.
api.interakt.ai refused it (400)
Usually the number (country code inside phoneNumber), a template code name that doesn't exist, a languageCode that doesn't match, or the wrong number of bodyValues.
api.interakt.ai refused it (429)
Rate limit hit. Spread the campaign over a longer calling window.
api.interakt.ai didn't answer within 15 seconds
Interakt was slow. The workflow continues; that message is not retried.
06

Frequently asked questions

Which Interakt plan do I need?

Interakt's public API, which this integration uses, is not available on its Starter plan; it is on Growth and Advanced. Check Interakt's pricing page for current limits.

Why does Interakt need {{callee_number_local}} instead of {{callee_number}}?

Interakt takes the country code and the number in two separate fields, and the number must not include the country code or a leading zero. {{callee_number_local}} gives the 10-digit number (9876543210); the country code goes in countryCode as "+91".

How do I see these messages in Interakt's campaign reports?

Create an API campaign in Interakt for the template and add its campaignId to the request. Without it the message still sends, but its delivery and read numbers don't appear under API Campaigns.

Can I send a Hindi template?

Yes. Set languageCode to the language the template was approved in, for example "hi" for Hindi. If it doesn't match the approved language, Interakt rejects the request.

How many messages per minute can go out?

Interakt allows 300 API requests a minute on Growth and 600 on Advanced. Vyora sends each follow-up as its call finishes, so they go out spread across the calling window rather than all at once.

Related

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