Skip to content

People & Intake

Every agent keeps a Person record for each human it talks to — the platform-native CRM described in the Agent Framework overview.

The most common way teams use this: you already collect leads with a form somewhere — a landing page, a webinar registration, a lead-gen campaign. That form asks exactly the questions your sales process cares about: what are you interested in? what kind of practice do you run? how many treatment rooms? when are you looking to buy? People & Intake lets you mirror those form fields on the agent, so you can drop leads from your lead-gen system straight into Anychat and the agent starts every conversation already knowing what the person said on the form — no re-asking, no "tell me about your business" cold open.

The flow is three steps:

  1. Describe what your forms collect as the agent's People fields — one field per form question.
  2. Bring the leads in — import the spreadsheet your lead-gen tool exports (columns map to fields by name), or add people one at a time.
  3. Let the agent use it. It greets people by name, tailors its opening to their stated interest, and fills in gaps it learns in conversation — keeping the record current for your team.

The rest of this guide walks each step in detail.

None of this is required

An agent with no custom fields and no imported contacts works fine — it tracks the built-in fields and discovers what it needs in conversation. Everything below is opt-in, for when you have structured data to bring.


People fields — the facts your agent tracks

A Person always carries the built-in fields: name, email, phone, company, title, funnel status, and the source they came from. On top of those you define People fields — the custom facts that matter to your business (a buying timeline, a target market, treatment rooms, a renewal date).

You edit them under Settings · People fields. Each field has:

  • Key — the stable identifier stored on the record (e.g. targetMarket). Letters, numbers, and underscores; can't be changed later without losing existing values.
  • Label — the human-readable name shown to you and on forms.
  • Typestring, number, date, boolean, or enum. This guides how the agent recognizes and normalizes a value; everything is stored as text.
  • Allowed values — for an enum, the exact set a value must be one of.
  • Description — what the field means, in the agent's words. The agent reads this so it knows when to record a value.
  • Examples — optional sample values that help the agent recognize the field.
  • Intake aliases — optional extra column headers an import or lead form may use for this field (see below).
  • Required on intake — an advisory hint that a lead/tester form should ask for this field. It never blocks the agent, which still discovers a missing value in conversation.

To let the agent fill these in as it learns them, turn on Allow the agent to update People with what it learns on the same page. With it off, the agent still reads the record for context but never writes to it.


Adding people one at a time

For a single new lead there's no spreadsheet needed: on the People page, click Add Person, fill in what you know (name, email, phone, company, product interest, source, notes), and Save. Phone numbers can be typed however you naturally write them — (555) 123-4567 works; international numbers should include their country code (e.g. +44 …).

The step-by-step walkthrough — adding a person, sending them the agent's opening message, and how your team hears about booked calls — is in Reaching Out to People.


Importing people

Bring existing contacts or a lead list in from a spreadsheet on the People page — Import CSV/XLSX, or drag a file onto the list. Each row becomes a Person.

The column format

A header row names the columns; each column maps onto a field:

  • Built-in fields are matched by common header names — First Name, last_name, Email, Phone, Company / Practice, Title, Product / Product interest, Source, Notes, Status.
  • Your People fields are matched by their key, their label, or any intake alias you've added — all case-insensitive. So if your field is labeled "Buying timeline" but the spreadsheet column says "When", add when as an intake alias and it lines up.

Not sure of the exact shape? Click Template on the People page to download a CSV header row with precisely the columns this agent expects.

What the import tells you

The import is honest about anything it couldn't place, rather than dropping it silently:

  • Unmatched columns — a header that matched no built-in field and no People field is reported back, so you can fix the header or add a field and re-import. It is not stored as a stray value.
  • Invalid values — a value that doesn't fit its field's type (a non-number in a number field, a value outside an enum's allowed set) is reported with the row and the reason; the rest of the row still imports.

Rows are de-duplicated by email within the agent, so re-importing a list won't create duplicates.


Product interest

"What are you interested in?" is a special field. Whatever a person enters — typed on a form, picked from a list, or mentioned in chat — is stored as they said it, and reconciled against your product catalog at the moment it's used, not at import time. That means:

  • A value that matches a product (exactly, by a near-match, or by a keyword you put in the product's details) surfaces as the canonical product name everywhere — never the customer's typo.
  • A vague or empty value — "not sure yet", "just looking", "n/a" — is treated as interest not yet known. The agent doesn't assert a product the person never chose; an outreach greeting that would have named the product simply drops that clause instead of saying "Thanks for your interest in Not sure yet."

Because reconciliation happens at use time, renaming or adding products takes effect immediately — there's nothing to re-import.


The tester form mirrors real intake

When you invite someone to try the agent, the short form they fill in is generated from this same configuration — the agent's People fields plus the core contact fields — so a tester submits exactly what a real lead form would carry, and the agent behaves the same way it would in production (including the graceful handling of a vague product interest).


In short

  1. Define the facts you care about under Settings · People fields (optional).
  2. Add a single lead with Add Person, or import contacts on the People page; use Template for the exact columns, and read the unmatched-column / invalid-value report.
  3. Let product interest map itself to your catalog — and degrade gracefully when it's vague.
  4. Optionally let the agent keep records up to date as it learns.
  5. When you're ready to message a new lead, follow Reaching Out to People.