Messages
A message displays content to the contact. Its appearance determines what it renders, and availability varies by channel:| Channel | Available message appearances |
|---|---|
| Web | simple, compound, image, hyperlink |
text, simple, compound, image, hyperlink, quick-reply, list, location, asset, media | |
| Web chat | Same as WhatsApp |
| SMS | simple, compound, hyperlink |
{{mustache}} variables, so you can personalize content
with values collected earlier in the session (for example, Hi {{given_name}}).
Inputs
An input (an “entry”) collects data from the contact. Inputs capture values partially into the session until the funnel completes. All inputs share a common set of options:| Option | Description |
|---|---|
appearance | The input’s visual form (varies by type — see below). |
mandatory | Whether a value is required. |
allow_overwrite | Whether an autofilled value can be overwritten. |
is_hidden | A hidden input (collected, not shown). |
is_array | Accept multiple values, each validated individually. |
autofill_source | Where to pre-fill from — see Autofill. |
validations | The validation rules applied to the value. |
Input types
| Type | Channels | Appearances & notes |
|---|---|---|
| Text | All | Web: short, long, full_formated, markdown, list, dropdown, phone, email, otp_code; a subset on conversational/SMS. Operators: maxLength, minLength, regEx, allowedValues. |
| Numeric | All | Web: number, spinner, slider, integer; conversational: number, integer; SMS: number. Min/max/equal operators. |
| Boolean | Web, WhatsApp, web chat | checkbox, like_dislike. Accepts true/false, 1/0, yes/no, sí/no. |
| Datetime | Web only | date, time, datetime. min / max operators. |
| Location | All (reduced on conversational/SMS) | Web: default, city, postal_code, full; an optional search radius; validates coordinates, city/postal text, or a full address. |
| File / media upload | Web, WhatsApp, web chat (limited on SMS) | file, dropzone, camera, media. Restrict by content type (image/video/audio/document); maxFileSize and allowedFormats operators. Files are stored in the DAM. |
| Multimodal | Conversational only | A single selector input that accepts several value types (text, number, boolean, file, media, location) and validates whatever the contact sends. |
| API call | Web, conversational | Triggers a server interaction rather than capturing a typed value. |
Validation rules
Each entry in an input’svalidations has an operator, a value, and an
error message (resolved per language). For is_array inputs, each element is
validated individually. A special API-call validation can check a value against an
external service, optionally stopping the flow on failure.
Buttons
A button drives navigation or an action:| Type | Purpose |
|---|---|
| Navigation | Move to the previous layer or jump to a layer (optionally with jump conditions). It can also open an external URL — redirecting the contact out of the funnel, optionally with session resumption so they can continue later. |
| Action | (Web) Triggers an action, such as an API call, whose response can drive what happens next. |
selected_car_model =
“Tesla Model 3”, jump to the financing layer, or if utm_source = “whatsapp”, show
a WhatsApp-optimized layer. See Funnel rules.
Endpoint
An endpoint component calls an internal or external endpoint as part of the flow and can map the response back into the session. Allowed methods areGET, POST,
PUT, DELETE, PATCH on web, and GET, POST on conversational/SMS. A common use
is a credit-eligibility check whose response routes the contact to an “approved” or
“denied” layer.
Auth
An auth component renders a sign-in or sign-up form inside the funnel:- Login — by credentials (email + password) or magic link (email only).
- Register — email, name, and password.
Related
Engagement Funnels
Back to the funnel overview.
Funnel rules
How navigation, skip, autofill, and actions work.