Best practices guide for requesting data in a ChatFunnel

Nowadays, forms are evolving into conversational flows that go beyond answers: they seek empathy, clarity, and results.

In this context, ChatFunnels become powerful tools: they collect data, guide the user, and naturally turn interactions into useful information.

But how can you design them without overwhelming the user or compromising their privacy? In this article, you’ll discover:

  • How to structure your ChatFunnels with one question per step, friendly language, and clear goals.
  • Why using >>> as contextual help outperforms traditional placeholders in usability.

In the end, you’ll understand how to capture relevant data and prepare the user for a smooth transition to an assistant (human or AI) that’s effective and respectful.

email

Key UX principles

  • Clear goal and one use per flow: define what you want to achieve and design the funnel for that use case, in simple linear steps. Chatbots work best with linear flows with few branches; when users deviate, the experience gets worse.
  • One question per step: helps with comprehension and reduces errors. This pattern (“one thing per page”) is a well-established recommendation in government design systems.
  • Minimize data: collect only what’s necessary for the declared purpose (principle of minimization and Data Protection by Default under GDPR). By default, design for the minimum volume, scope, retention time, and accessibility of data.
  • Transparency and expectations: explain up front what you’re going to ask and why, and how long it will take. Order questions from general to specific.

Hints with >>> instead of placeholders

In our ChatFunnel we don’t use placeholders; we use >>> to show a short, clear, visible hint before the field. Good “hint text” practices:

  • Use it only if it adds clarity, keep it short, and without links.
  • The hint doesn’t disappear when typing, unlike placeholders, which increase memory load and errors. It’s better to keep the hint outside the field.
phone

Choosing the right input type

  • Select/Options when the list of answers is known (reduces typing and errors). Users like to tap options for common inputs.
  • Text/Number/Email/Phone when the data is open, provide examples using >>>. If you use masks (phone), adapt them to the country so you don’t block the user.

Ready-to-copy pattern

You can see this pattern in action by clicking the Joinchat button

- step: 0
 name: menu
 content: Let’s check out a series of *Hints* instead of placeholders when collecting user data in Chat Funnels.
 options:
 - option: 0
 type: goto
 text: ✉️ Email
 value: 3
 - option: 1
 type: goto
 text: 📅 Date and time
 value: 1
 - option: 2
 type: goto
 text: 📱 Phone/WhatsApp
 value: 4
 - option: 3
 type: goto
 text: 👤 First and Last Name
 value: 5
 - option: 4
 type: goto
 text: 📍 Address
 value: 7
- step: 1
 name: date
 content: |-
 What date do you prefer?
>>>
 YYYY-MM-DD _(e.g. 2025-09-30)_
 options:
 - option: 0
 type: goto
 text: ''
 value: 2
 input: text
- step: 2
 name: time
 content: |-
 At what time?
>>>
 HH:MM in 24h _(e.g. 15:30)_
 options:
 - option: 0
 type: goto
 text: ''
 value: 0
 input: text
- step: 3
 name: email
 content: |-
 What’s your email?
>>>
 e.g. name@company.com
 options:
 - option: 0
 type: goto
 text: ''
 value: 0
 input: email
- step: 4
 name: phone
 content: |-
 Your WhatsApp number with country code
>>>
 e.g. 134612345678
 options:
 - option: 0
 type: goto
 text: ''
 value: 0
 input: phone
- step: 5
 name: name
 content: |-
 Can you tell me your name?
>>>
 Enter your first name
 options:
 - option: 0
 type: goto
 text: ''
 value: 6
 input: text
- step: 6
 name: lastname
 content: |-
 Please enter your last name
>>>
 Enter your last name
 options:
 - option: 0
 type: goto
 text: ''
 value: 0
 input: text
- step: 7
 name: street
 content: |-
 Please provide your address
>>>
 e.g. Kansas City Ave. 123
 options:
 - option: 0
 type: goto
 text: ''
 value: 8
 input: text
- step: 8
 name: city
 content: |-
 What city do you live in?
>>>
 e.g. New York
 options:
 - option: 0
 type: goto
 text: ''
 value: 9
 input: text
- step: 9
 name: state
 content: |-
 Tell me your state
>>>
 e.g. California
 options:
 - option: 0
 type: goto
 text: ''
 value: 10
 input: text
- step: 10
 name: postalcode
 content: |-
 Please enter your ZIP code
>>>
 e.g. 90210
 options:
 - option: 0
 type: goto
 text: ''
 value: 0
 input: number

🍪 We use cookies to personalize and enhance your experience on our site. Visit our Privacy Policy to learn more.

BY USING OUR SITE, YOU AGREE TO OUR USE OF COOKIES.