Integrations · Interakt
Interakt + AI voice calls: a WhatsApp nudge for every missed call
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.
Set it up
- 01
Get the template approved in Interakt
Create the template in Interakt and wait for Meta approval. Note its code name and language code. - 02
Copy your Interakt API key
In Interakt open Settings → Developer Settings and copy the API key. - 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. - 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. - 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)".
The request Vyora sends to Interakt
MethodAddressHeaderAdd 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.
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:
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.
Test it and read the run log
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.