Custom fields hold the details your team works with — an order number, a phone number, a company. You define them once for the project; the AI can then ask the customer for them with a form, pick them out of the customer’s messages, or read them from the page the customer is writing from. Your team sees them next to every conversation, without scrolling back through the chat to find them.
Contact fields and conversation fields
Every field belongs to one of two places, and you choose which when you create it:
- Contact — the person. A phone number, a company, a messenger handle. Once known, it is there in every later conversation with that person, on every channel.
- Conversation — this chat only. An order number is the typical example: next week the same person writes about a different order.
Name and Email are built in. Every project has them, and they cannot be deleted. The name is the contact’s name you already see in the inbox; a name an operator set is never overwritten by what the customer types later.
Creating a field
Open the project’s settings, go to Workspace → Fields and click New field. Give it:
- a Label — what your team and your customers see, such as “Order number”;
- a Key — a short internal name in lower-case letters, digits and underscores, such as
order_number. It is filled in from the label; your website and the API use it; - a Type — Text, Long text, Email, Phone, Choice list (with your own options) or Yes / no;
- optionally a Placeholder shown inside the empty input, and a Hint shown under it — the hint is also what the customer sees when a value has the wrong format.
The key and where the field belongs cannot be changed later, because values are already stored against them. Everything else can.
The list shows at a glance what each field does — whether the AI asks for it, whether it is read from a page, where it shows. Use the arrows to set the order the sidebar shows them in.
Format
Under Format → Allowed values, pick Any text, Digits only, Letters and digits, or Custom pattern and write a regular expression. It is matched against the whole value: \d{5} means exactly five digits, [A-Z]{2}\d{6} two capital letters and six digits. Type a few examples into Test values to see which ones match before you save.
The format is checked wherever a value comes from — a form, the AI, your website, a page — and a value that does not match is not saved.
Where values come from
The Where values come from section decides who may fill the field. Switch on any combination.
- AI may ask for it — when the AI needs the value, it sends the customer a form. Under When should the AI ask? describe the moment in plain words, for example “Ask when the customer reports a problem with an existing order.” The AI can ask for several fields in one form. Values it already knows appear filled in, so the customer only checks them; if everything is known, no form is sent at all.
- AI may pick it out of messages — when the customer writes “my order is 48213”, the AI saves 48213 into the field. It only saves values that actually appear in a customer’s message.
- Your website may set it — your page can fill the field when it knows the value, such as a logged-in customer’s account number:
chatonio('set', { order_number: '48213' }). Keys of fields without this switch are ignored, with a note in the browser console. - Read it from the visitor’s page — a rule takes the value from the Page title or the URL of the page the customer writes from. Write the title or address as it looks and put
{value}where the value sits:Order {value} – Acme Store, or/order/{value}/. Try on recent pages shows which of your recent conversations the rule would have filled. On many shops and exchangers most customers write from their order page, so the order number fills itself.
With neither AI switch on, the AI never sees the field — useful for internal notes such as a customer’s tier.
A value an operator entered, or that came from the customer or the AI, is never replaced by your website or a page rule. Those two only fill an empty field or update a value they set themselves — so an operator’s correction survives the customer’s next message from the same page.
Forms in the chat
In the web chat and on your help center, a form appears as a small card with an input for each field, the format check and the hints. When the customer sends it, their answers appear in the conversation as their message, and the values go into the fields.
In Telegram, WhatsApp, Viber and email the form arrives as a short message listing what to send. When the customer answers in their own words, the AI saves the values.
Operators can send a form too: in the conversation’s info panel, click Request details under the values in the Details section, tick the fields and click Send form. Values already known are sent prefilled, so the customer only corrects what is wrong — and the form goes out even when every value is known, which is how you ask a customer to fix a mistyped order number. Like a reply, sending a form assigns an unassigned conversation to you, and the AI leaves the customer’s answer to you rather than replying to it.
The web chat’s pre-chat form uses the same fields — pick them in the web chat channel’s settings, see Collecting names, emails and other details in web chat. When you invite a visitor from Insights → Live and they never saw the pre-chat form, the chat asks for the missing details after their first reply.
Where your team sees the values
- The conversation’s info panel — the Details section lists every field ticked Show in conversation sidebar, both the conversation’s and the contact’s. Copy a value with one click, or click the pencil to correct or fill it in.
- The contact’s page — the contact fields, editable the same way.
- The conversation list — fields ticked Show in conversation list appear as a small label on each conversation that has a value. There is no limit, but more than three makes every row taller.
- Search — searching the inbox for an order number finds the conversation that carries it; searching Contacts finds people by their contact fields, such as a phone number or a company.
Fields are also part of the Chatonio API: conversations and contacts include their fields, and you can update them.
Translations
Under Translations in a field, add the label, placeholder and hint in other languages. Customers see forms in the language of their conversation; anything you leave empty falls back to the main version.
Good practice
- Ask only for what your team will use. Every extra field in a form is a reason not to fill it in.
- Never ask for passwords or full card numbers.
- A value typed by a customer, set by your page or read from a page title says nothing about who the person is — anyone can type someone else’s order number. Before your team or an integration reveals private order details, check something only the real customer has, such as a PIN or the link to their order.