Ask Question Cards

The Ask Question group (ask_text, ask_number, ask_phone, ask_email, ask_date, ask_location) sends a prompt to the customer and pauses bot execution until a valid input is received.


Supported Question Types

Card Type Validation Rule Auto-Retry Prompt
ask_text Captures any non-empty text string -
ask_number Validates numeric value within min/max bounds "Please provide a valid number."
ask_phone Validates E.164 phone number format "Please enter a valid 10-digit mobile number."
ask_email Validates RFC-5322 email syntax "Please enter a valid email address."
ask_date Normalizes text to ISO YYYY-MM-DD "Please specify a valid date (e.g., DD/MM/YYYY)."
ask_location Expects WhatsApp location pin payload "Please share your location using the WhatsApp attach menu."

Configuration Parameters

  • prompt_text: The question sent to the customer.
  • variable_name: Target variable key where the validated answer will be stored in workflow memory (e.g. patient_age, preferred_date).
  • max_retries: Number of invalid attempts before triggering the fallback branch (default: 3).
  • timing.delay: Optional pre-execution delay with typing indicator (e.g., { enabled: true, duration: 1, unit: "seconds", typingIndicator: true }).
  • timing.timeout: Automated inactivity timeout and fallback routing (e.g., { enabled: true, duration: 15, unit: "minutes", action: "goto_node" | "handoff" | "end", fallbackNodeId: "node_handoff" }).

Response Timeout & Lead Drop-off Recovery

If a user goes idle without responding to a question, the response timeout automatically rescues the session:

  1. Branch to Node (goto_node): Routes to a polite reminder or alternate questionnaire.
  2. Handoff to Human (handoff): Immediately transfers the chat to the live team queue so agents can follow up.
  3. End Flow (end): Concludes the conversation cleanly.

Note: If the user replies before the timer expires, the pending timeout is atomically invalidated.
📖 See the complete Node Delay & Timeout System Guide.


Output Data Schema (Codex)

{
  "variable_key": "patient_age",
  "raw_input": "34",
  "normalized_value": 34,
  "validation_passed": true,
  "attempts": 1
}