---
title: Conversation fields ("What we write down")
summary: A conversation field is a thing the business wants to keep from a chat, such as the service a client asked about. A field has a kind, a label in every service language and, for choice kinds, options that reach the client as buttons.
tools: [talemo_list_conversation_fields, talemo_create_conversation_field, talemo_update_conversation_field]
related: [remove-and-restore-fields, field-values, conversation-script, script-languages]
search: [lead form, qualification questions, collect client data from chat]
---

# Conversation fields ("What we write down")

A conversation field is something the business wants to keep from a chat with a
client: the service they asked about, whether they have visited before, who
recommended the salon. The fields are listed on the **Online admin** page of the settings, on the
**What we write down** tab. The online admin fills them in while it talks to the client,
and a person can correct them afterwards (see
[Value of a field in a conversation](field-values.md)).

## One set of fields for the whole business

Fields belong to the business. A branch that has its own chat
steps writes into the same fields (see [Script of a branch](branch-script.md)).

## What a field has

- **Label.** It is written in every language the business serves. The team sees
  it, and the client sees it in the question when the field is asked with
  buttons. A language without a label shows "No translation — the online admin
  translates it itself".
- **Kind** (**What it holds**):
  - **choice** — one option of several, for example "Manicure";
  - **list** — several options can be chosen, for example "In the evening" and
    "At weekends";
  - **number** — the client says it in words and it is written down as a number,
    for example a budget or how many people;
  - **yes or no** — two options whose labels can be your own, for example "No,
    first time";
  - **short text** — a few words, up to 200 characters, for example who
    recommended the salon.
- **Options** for choice and list, two or more. Number and short text have none.
- **Hint** — a short note for the team and the online admin: "in euros", "who
  recommended us".

The table shows each field with its kind, its options and the number of chats in
which it is filled in.

## Options reach the client as buttons

An option label is sent to the client as a button, so it must fit a button in
every channel: up to 20 characters in every language. Two options that read the
same in one language are refused, because the buttons have to differ. How a step
turns options into buttons is described in [Conversation script](conversation-script.md).

## What cannot be changed

- The **key** of a field and of an option stays as it was created. When no key is
  given, Talemo makes one from the label. Programs, the online admin and the
  export columns refer to a field by its key.
- The **kind** of a field that is already filled in some chat stays. For another
  kind, add a new field.
- An **option** chosen in at least one chat stays. Add a new option instead.

Labels and hints can be changed at any time. A label
changed after its translation was made marks the translation as outdated (see
[Languages and translations of script texts](script-languages.md)).

## Who can do what

Adding and changing fields is the business's setup, so only a role that covers
the whole business can do it. Everyone else sees the fields read-only.

## Tools and refusals

- A business writes down what a conversation leaves — the service asked for, whether the client came before, the best time — in conversation fields. `talemo_list_conversation_fields` lists them with the key, the kind (`choice`, `list`, `number`, `yes_no`, `text`), the label in the first service language and its translations (stale when the label changed after), the options, the note and in how many conversations each is filled. `retired` lists the removed ones.
- `talemo_create_conversation_field` takes `key`, `kind`, `label` and, for a choice or a list, `options`; `label_tr` is for a language the business serves other than the first, and `position` names a place. An option label goes on a button in every channel, so one longer than 20 characters in some language is refused with `request.body_invalid` and `params.max`. A key another field holds, a removed one too, is refused with `record.duplicate`.
- `talemo_update_conversation_field` changes the labels, kind, options, hint or place; the key never changes. Translations and options are sent whole. A field that already holds values keeps its kind, and an option chosen in some conversation stays: status 409, code `conversation_field.has_values` with `params.count` and `params.option`. A removed field is refused with `conversation_field.retired`: return it first.
- While the quick questions of a channel are on, the options of the field the first step of the script asks are what every client sees in the salon's own Instagram or Messenger, so the change reaches Meta within a minute. Show the `dry_run` first and ask the person.
