Skip to main content

Interactive WhatsApp messages

Interactive outbound messages let contacts vote in polls, confirm events, pick list rows, receive locations or contact cards, and get custom link previews.
In WhatGHL, these are driven by structured tokens in the GoHighLevel message body.

What you can build

PatternTypical use
PollsQuick choices (“support / sales / billing”).
EventsAppointment proposals with confirm / decline.
ListsMenus with sections and rows.
Contact cardsShare a name and phone as a vCard-style message.
LocationShare coordinates and title in one outbound.
Custom link previewSend a rich link preview using JSON.

Detection order (important)

If you combine formats, the parser tries to detect in this order:

  1. #POLL
  2. #EVENT
  3. #LOCATION
  4. #LIST / #LISTJSON
  5. #LINKPREVIEW / #LCP
  6. #CONTACT

Once one format matches, later ones are usually not evaluated for that same outbound.

Supported formats

Polls

  • Single choice: #POLL|Question|Option 1|Option 2
  • Multiple choice: #POLL:MULTIPLE|Question|A|B|C
  • Limit: up to 12 options.

Event

#EVENT|Name|UNIX_TIMESTAMP|Description|Location|true_or_false
  • UNIX_TIMESTAMP is in seconds.
  • Last field accepts true or false.

List

  • Simple format: #LIST|Body|Button label|Section 1|Row 1*Description*id|Row 2*Description*id||Section 2|...
  • JSON format: #LIST|{...} or #LISTJSON|{...}
  • Global limit: 10 rows across sections.

Location

  • Format: #LOCATION|latitude|longitude|optional_title
  • Example: #LOCATION|19.4326|-99.1332|Main office
  • JSON format: #LINKPREVIEW|{...} or #LCP|{...}
  • Requires valid JSON (text, preview.url, preview.title, etc.).

Contact card

  • Format: #CONTACT|Name|Phone
  • Can appear anywhere in text.
  • Only processed if no previous interactive format matched.

Copy-paste examples

  • #POLL|What do you need?|Support|Sales|Billing
  • #POLL:MULTIPLE|Which channels do you prefer?|WhatsApp|Email|Call
  • #LIST|Choose a service|See options|Services|Implementation*Initial setup*srv_impl|Support*Help desk*srv_sup
  • #EVENT|Onboarding call|1738789200|Initial setup session|Google Meet|true
  • #LOCATION|19.4326|-99.1332|Main office
  • Thanks for contacting us #CONTACT|Support Team|5215512345678

Where configuration matters

  • Sub-account must have a working WhatsApp session and permissions to send the payload type.
  • Routing (#WH, session priority) decides which line sends the interactive message — see Connection.
  • Translation can alter visible copy. If using #traslate, verify labels/titles still read correctly.

Good practices

  • Prototype new formats in a test sub-account or low-traffic number.
  • Keep copy short; long labels are truncated on some devices.
  • For lists, design for a 10-row max total.
  • For #CIRCLE video-note behavior, see Message codes from GoHighLevel.