Guides

Interactive Messages & Location

Cloud session capabilities beyond plain text: CTA URL buttons, interactive lists, location pins, and catalog/order cards.

Cloud API + open session These message types require a Cloud (or Coexistence) channel and an open customer care window. Outside 24h, start with an approved template first.

1. Dashboard prerequisites

CTA URL buttons and interactive lists are authored in the Washeej dashboard, then referenced by ID from the API:

  • cta_url_id — saved CTA URL message
  • interactive_list_id — saved interactive list

There is no public CRUD for these assets on API v1 yet — create them in the dashboard, then automate sending.

2. CTA URL by ID

cURL
curl -X POST "https://app.washeej.com/v1/messages" \
  -H "client-id: YOUR_CLIENT_ID" \
  -H "client-secret: YOUR_CLIENT_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
    "mobile_code": "966",
    "mobile": "500000000",
    "whatsapp_account_id": YOUR_CLOUD_ACCOUNT_ID,
    "cta_url_id": YOUR_CTA_ID
  }'

3. Interactive list by ID

cURL
curl -X POST "https://app.washeej.com/v1/messages" \
  -H "client-id: YOUR_CLIENT_ID" \
  -H "client-secret: YOUR_CLIENT_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
    "mobile_code": "966",
    "mobile": "500000000",
    "whatsapp_account_id": YOUR_CLOUD_ACCOUNT_ID,
    "interactive_list_id": YOUR_LIST_ID
  }'

4. Location

cURL
curl -X POST "https://app.washeej.com/v1/messages" \
  -H "client-id: YOUR_CLIENT_ID" \
  -H "client-secret: YOUR_CLIENT_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
    "mobile_code": "966",
    "mobile": "500000000",
    "whatsapp_account_id": YOUR_ACCOUNT_ID,
    "latitude": 24.7136,
    "longitude": 46.6753,
    "name": "Riyadh Branch",
    "address": "Olaya St"
  }'

Send both latitude and longitude. Optional name / address improve the pin label.

5. Product / order cards

Cloud channels also accept structured product and created_order_data payloads (JSON) for commerce-style CTA cards. Shape these objects like the dashboard commerce integrations; invalid JSON returns a validation / not-found style error.

6. Feature limits

  • Interactive sends may require the account plan flag for interactive messages.
  • Device/QR channels return capability_error for Cloud-only interactive types.
  • Customer replies arrive on message.received webhooks — parse button/list reply payloads in your consumer.