GrowNextAI

Developer API

Send WhatsApp templates from your own backend, and get signed events back when something happens. Server-to-server, key-authenticated.

Outbound

Send a campaign

One approved template to one number, from your order system, your CRM, or a cron job.

curl -X POST https://www.grownextai.com/api/v1/campaigns/send \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "campaignName": "order-confirmed",
    "destination": "919876543210",
    "userName": "Priya",
    "templateParams": ["ORD-1042", "Tuesday"]
  }'

The key may also be sent as x-api-key, or as apiKey in the body — though the header is preferable, because request bodies get logged.

Inbound

Receive events

A signed POST to your endpoint the moment a customer writes, or a message changes state.

POST https://your-server.example/hooks/grownext
X-GrowNext-Signature: t=1790000000,v1=9f86d0818...

{
  "id": "evt_msg_01J...",
  "event": "message.received",
  "createdAt": "2026-09-30T08:14:02.000Z",
  "data": { "from": "919876543210", "text": "Is this in stock?" }
}
message.received — Someone sent a message to your WhatsApp number.
message.status — A message you sent was accepted, delivered, read or failed.
lead.created — A new lead was added to your CRM — from WhatsApp, Instagram, ads, your website chatbot, a form or by hand.
lead.stage_changed — A lead moved to a different pipeline stage, e.g. Contacted → Won.
order.received — A customer sent a cart from your WhatsApp catalogue — items, quantities and total.

What you can rely on

The parts that decide whether an integration survives a bad afternoon.

Signed payloads

Every webhook carries an HMAC-SHA256 signature over a timestamp and the raw body, so you can verify it came from us and is not a replay. Compare it in constant time.

Retries that give up sensibly

Anything that does not return a 2xx is retried up to 6 times over about 103 minutes, backing off at 30s, 2m, 10m, 30m, 60m. A deploy that takes your server down for a minute loses nothing.

Stable event ids

A retry carries the same id as the first attempt, so you can make your handler idempotent rather than guessing whether you have seen an event before.

Rate limits you can plan around

20 requests per 1s on a sliding window, with a body cap of 64 KB. Exceeding it returns a 429, not a silent drop.

Keys you can revoke

Keys are stored hashed and shown once. Each is named, shows when it was last used, and can be revoked on its own without disturbing the others.

A log of every call

Successful and rejected, with the reason. When an integration stops working, the answer is on a screen rather than in a support thread.

Moving from another provider

The send endpoint accepts AiSensy's field names — campaignName, destination, userName, templateParams — so an existing integration usually switches by changing the URL and the key, and nothing else.

There are deliberately no CORS headers on the API: it is server-to-server. Calling it from a browser would mean shipping your key to every visitor.

Getting a key

API keys are created in the app under Settings, and event webhooks are configured on the Webhooks screen — available on the Agency plan. Both are per business, so an agency managing several keeps them separate.

See which plan includes what →

Build on it

Start free, then add a key when you are ready to integrate.

Start Free