Data collection
Data collection
Have the AI agent gather leads and customer details conversationally and save them to the customer record.
Data collection turns the agent into a lead-capture channel that doesn't feel like a form. You define the data points you want; the agent works them into conversations at the moment you choose, saves each answer to the customer record as it arrives, and exports everything as CSV. Configure it at app.asks.app/ai-agent/data-collection; settings save with the action bar at the bottom.
Turn it on and set the approach
The Enable data collection switch is the master control — the agent only asks when it's on and at least one field is enabled. (If you define fields while it's off, the page warns you that collection is off.) Four settings shape how it asks:
- Reason for collecting (up to 500 characters) — the agent shares this if the customer asks why. For example: "So our team can follow up and give you more personalized support."
- When to ask — Immediately, After helping first (the default: never lead with it), or On clear intent (only once the customer shows buying, demo, or follow-up intent).
- How to ask — Subtle weaves the request in naturally and keeps it optional; Direct asks plainly.
- Limit to specific channels — by default the agent collects on every channel; restrict it where identity is already known. The list covers Widget / Chat page, WhatsApp, Messenger, Instagram, Telegram, Slack, Discord, Email, and API — deselect everything and the page warns that the agent won't collect anywhere.

Define the fields
Each field describes one data point, up to 15 per workspace:
| Setting | Meaning |
|---|---|
| Key | Lowercase letters, numbers, and underscores (company_size), auto-generated from the label. The reserved keys email, phone, and name map onto the customer record itself; everything else is stored alongside it. |
| Label | Human-readable name shown in your dashboard. |
| Description | Tells the agent what to ask for and how to recognize the answer. |
| Type | Text, Email, Phone, Number, or Choices (a fixed option list, like 0-10 | 10-50 | 50+). |
| Required | The agent prioritizes getting this. |
| Enabled | Off keeps the field but stops the agent asking for it. |
Deleting a field stops future collection, but values already collected stay on customer records and in CSV exports.

How the agent behaves
The agent follows fixed rules you don't have to configure:
- It asks for at most one missing item per message, paced by your When to ask setting.
- It never re-asks for something the customer already provided in the conversation — or that's already on the customer record.
- It saves each value the moment the customer provides it, mid-conversation.
- It never asks for sensitive data — passwords, full card numbers, government IDs — and if the customer declines, it respects that and moves on.
Where the data goes
Collected values land on the customer record: reserved keys fill the customer's email, phone, and name; custom fields are stored with the profile. You'll see them on the customer's profile page and in the inbox right rail during conversations. Each capture also fires a lead.captured webhook for your own systems.
The Captured leads card on the page shows recent captures — a count for the last 30 days, what was collected, and a link to each conversation (customers without a name show as Anonymous). Export CSV downloads the full list for all time, the last 30 days, or the last 7 days — one column per field, plus name, email, and phone.
Ask for the minimum. One or two required fields with clear descriptions convert far better than a six-field wish list — the agent asks one at a time, so every extra field stretches the conversation.