Location, contacts & reactions
Location, contacts & reactions
Beyond text and media, the POST /send endpoint carries three more rich content types: a pin on a map, a shareable contact card, and an emoji reaction on an existing message. Each is a distinct content field on the same endpoint, and each maps to a Meta Cloud API object that Telenow passes through verbatim — anything Meta accepts under location, contacts, or reaction works here unchanged.
All three are free-form content, so they send inside the 24-hour customer service window; outside it, open the conversation with a template first. When the customer sends you one of these back, it arrives in content.* on the received webhook.
Location
Set the location field to drop a pin. latitude and longitude are required decimals; name and address are optional labels that render under the map preview — include them so the customer sees a titled place instead of bare coordinates.
curl -X POST https://api.telenow.ai/api/app-whatsapp/send \
-H "Authorization: Bearer vai_app_…" \
-H "Content-Type: application/json" \
-d '{
"channelId": "b1e2c3d4-…",
"to": "+919876543210",
"location": {
"latitude": 19.076,
"longitude": 72.877,
"name": "Telenow HQ",
"address": "Bandra Kurla Complex, Mumbai 400051"
}
}'
{ "success": true, "data": { "wamid": "wamid.HBgLMTQxNTU1MDEwMBUCABIYFj…" } }
| Field | Notes |
|---|---|
location.latitude | Required decimal degrees |
location.longitude | Required decimal degrees |
location.name | Optional place name shown above the address |
location.address | Optional street address shown under the pin |
When a customer shares their location with you, the received webhook carries it as content.location — see Webhooks & events.
Contacts
The contacts field is an array of contact cards (send one or several at once). Each card needs a name object and a phones array; WhatsApp renders it as a tappable vCard the customer can save or message.
curl -X POST https://api.telenow.ai/api/app-whatsapp/send \
-H "Authorization: Bearer vai_app_…" \
-H "Content-Type: application/json" \
-d '{
"channelId": "b1e2c3d4-…",
"to": "+919876543210",
"contacts": [
{
"name": { "formatted_name": "Asha Rao", "first_name": "Asha" },
"phones": [ { "phone": "+919812345678", "type": "CELL" } ]
}
]
}'
{ "success": true, "data": { "wamid": "wamid.HBgLMTQxNTU1MDEwMBUCABIYFj…" } }
| Field | Notes |
|---|---|
contacts | Array of one or more contact cards |
contacts[].name | Required; formatted_name is the display line, first_name optional |
contacts[].phones | Array of { "phone", "type" } (type e.g. CELL, WORK, HOME) |
A contact card the customer sends you arrives as content.contacts on the received webhook.
Reactions
Set the reaction field to attach an emoji to a message the customer sent you. message_id is the wamid of the message you're reacting to — the same wamid you received on the webhook — and emoji is a single emoji. Sending an empty emoji removes a reaction you previously placed.
curl -X POST https://api.telenow.ai/api/app-whatsapp/send \
-H "Authorization: Bearer vai_app_…" \
-H "Content-Type: application/json" \
-d '{
"channelId": "b1e2c3d4-…",
"to": "+919876543210",
"reaction": {
"message_id": "wamid.HBgLMTQxNTU1MDEwMBUCABIYFj…",
"emoji": "👍"
}
}'
{ "success": true, "data": { "wamid": "wamid.HBgLMTQxNTU1MDEwMBUCABIYFj…" } }
To clear a reaction, resend with an empty emoji:
curl -X POST https://api.telenow.ai/api/app-whatsapp/send \
-H "Authorization: Bearer vai_app_…" \
-H "Content-Type: application/json" \
-d '{
"channelId": "b1e2c3d4-…",
"to": "+919876543210",
"reaction": {
"message_id": "wamid.HBgLMTQxNTU1MDEwMBUCABIYFj…",
"emoji": ""
}
}'
{ "success": true, "data": { "wamid": "wamid.HBgLMTQxNTU1MDEwMBUCABIYFj…" } }
| Field | Notes |
|---|---|
reaction.message_id | The wamid of the message you're reacting to (camelCase messageId also works) |
reaction.emoji | A single emoji; empty string removes the reaction |
When the customer reacts to one of your messages, it arrives as content.reaction on the received webhook.
Related
- Webhooks & events — inbound location, contacts and reactions arrive in
content.*. - Interactive messages — reply buttons, lists and CTA-URL buttons.
- Media messages — images, documents, audio and video.
- Sending template messages — start conversations outside the 24-hour window.
- WhatsApp overview — connect a number and find your
channelId.