Developers
API & integrations
Create contacts and send messages from your own systems, and get notified the moment something happens in Instant.
API keys
Generate a key under Settings → API Access (requires the integrations feature on your plan). Send it on every request as a header:
x-api-key: wak_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
A new key can read templates and send messages by default. Keep it secret — anyone holding it can send messages as your account.
REST API
Create or find a contact
{
"phone": "+91XXXXXXXXXX",
"name": "Optional name"
}Safe to call repeatedly with the same phone number — it finds and returns the existing contact instead of creating a duplicate.
Send a template message
{
"to": "+91XXXXXXXXXX",
"template": { "name": "order_update", "language": "en_US" },
"params": ["12345", "Tomorrow"]
}params fill the template’s {{1}}, {{2}}… placeholders in order — see Message templates. A message sent this way also appears in your shared inbox, exactly as if it had been sent from inside the app.
Outbound webhooks
Register a public HTTPS URL under Settings → Integrations and choose which events to receive:
| Event | Fires when |
|---|---|
| message.received | A customer sends an inbound WhatsApp message. |
| contact.created | A new contact is created. |
| conversation.assigned | A conversation is assigned to a teammate. |
| deal.stage_changed | A deal moves to a different pipeline stage. |
Each delivery is a signed POSTwith the event payload as JSON. A signing secret is shown once, at creation time — use it to verify the request really came from Instant rather than trusting the payload blindly. If your endpoint doesn’t respond successfully, delivery is retried several times with a growing delay before it’s given up on.
Zoho CRM
Let Zoho events — a new lead, a deal stage change, an overdue invoice — send WhatsApp messages through Instant. It works in two halves: connect the account once, then point a Zoho Workflow Rule at Instant so it delivers the event.
1. Connect Zoho in Instant
Go to Settings → Integrations → Zoho CRM → Connect and approve read access. After connecting, open Manage on the same card — it shows a webhook URL ending in /api/integrations/zoho/webhook/…. Copy it; you’ll paste it into Zoho in the next step.
2. Create the Workflow Rule in Zoho
In Zoho CRM, go to Setup → Automation → Workflow Rules → Create Rule. Pick the module (Leads, Contacts, Deals…) and when it should fire (record created, edited, a field changes). Then, under Instant Actions → Webhooks, create a new webhook and fill it in:
| Field | What to enter |
|---|---|
| Method | POST |
| URL to Notify | The webhook URL copied from Instant (the Manage view). |
| Authorization Type | General |
| Body → Type | Raw → JSON. This is where the record fields must go — see below. |
Set Body → Type to Raw, choose JSON, and build this — the field values must be inserted with Zoho’s merge-field picker (the insert-field button in the body editor), not typed by hand:
{
"name": "${Leads.First_Name}",
"phone": "${Leads.Phone}",
"email": "${Leads.Email}"
}phone is the only required field — Instant matches the contact on it. name and email are optional. Use whichever module you chose (e.g. ${Deals.…} for a Deals rule) and add any other fields you want to reference in the message. Save the webhook, associate it with the Workflow Rule, and save the rule.
Full_Name on Leads, which only has First/Last name) is rejected as “unsupported” and the webhook won’t save. The phone needs its country code — a bare 10-digit Indian number is auto-prefixed with 91.3. Build the automation in Instant
Create an Automation with the trigger Zoho CRM Event. Every field you put in the JSON body is available as {{vars.field_name}} (lowercased, spaces → underscores) — so the body above gives you {{vars.name}}, {{vars.phone}} and {{vars.email}}. Three are always present whatever the rule sent: {{vars.zoho_module}}, {{vars.zoho_record_id}} and {{vars.zoho_event}}. Because a new lead has never messaged you, use a Send Templateaction (an approved template) — free-form text can’t open a fresh conversation.
Zapier, Make, n8n
There’s no dedicated app in any of these marketplaces yet — connect them the same way any custom system would: outbound webhooks as the trigger into your automation tool, and the REST API (with an API key) as the action it calls back into Instant.
