Skip to main content
Sends interactive messages (buttons, lists, CTAs) to users via WhatsApp.

Configuration

  • whatsapp_config_id: WhatsApp connection to use (optional; falls back to the conversation)
  • interactive_type: button, list, cta_url, flow, product, product_list, catalog_message, location_request_message
  • body_text: Message content (string or AIField)
  • header_type: none, text, image, video, document (optional)
  • header_text: Header text for text headers (optional)
  • header_media_url: Media URL for image/video/document headers (optional)
  • footer_text: Footer text (optional)
  • provider_model_name: Required when using AIField
  • to_phone_number: Override destination phone number (optional; required for observer mode flows)
Type-specific options:
  • buttons: For button type
  • list_button_text, list_sections: For list type
  • cta_display_text, cta_url: For cta_url type
  • flow_id, flow_cta, flow_token, flow_action, flow_action_payload: For flow type

Flow type options

  • flow_id: The WhatsApp Flow ID to send
  • flow_cta: Button text to open the flow
  • flow_token: Correlation ID for tracking responses (supports variable interpolation; defaults to flow_id if not provided)
  • flow_action: Action to perform when opening the flow - navigate (default) or data_exchange
  • flow_action_payload: Initial screen and data to pass to the flow (supports variable interpolation)
Example with dynamic data:
{
  "node_type": "send_interactive",
  "config": {
    "interactive_type": "flow",
    "body_text": "Complete your checkout",
    "flow_id": "123456789012345",
    "flow_cta": "Continue",
    "flow_token": "order_{{vars.order_id}}",
    "flow_action": "navigate",
    "flow_action_payload": {
      "screen": "CHECKOUT",
      "data": {
        "phone_number": "{{context.phone_number}}",
        "order_total": "{{vars.cart_total}}"
      }
    }
  }
}
Variables like {{context.phone_number}}, {{vars.cart_total}}, and {{vars.order_id}} are automatically substituted with values from the workflow execution context. Use dynamic flow_token values to correlate flow responses with specific workflow instances or business entities.

Interactive types

  • button: Up to 3 reply buttons
  • list: Dropdown menu with sections
  • cta_url: Single button that opens URL
  • flow: WhatsApp Flow for data collection
  • product: Single product from catalog
  • product_list: Multiple products from catalog
  • catalog_message: Full catalog browser
  • location_request_message: Request user’s current location

Usage patterns

Decision collection Menu system