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…" } }
FieldNotes
location.latitudeRequired decimal degrees
location.longitudeRequired decimal degrees
location.nameOptional place name shown above the address
location.addressOptional 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…" } }
FieldNotes
contactsArray of one or more contact cards
contacts[].nameRequired; formatted_name is the display line, first_name optional
contacts[].phonesArray 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…" } }
FieldNotes
reaction.message_idThe wamid of the message you're reacting to (camelCase messageId also works)
reaction.emojiA 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.