Customers & inbox

Custom contact fields

Keep facts Zanfia has no column for (a plan, a wedding date, a quiz answer) on every client, collect them with a signup form, and print them in e-mails.

4 min readLast updated Oct 25, 2026

A custom field holds one fact about a client that Zanfia has no column for: a plan, a cohort, a wedding date, a quiz answer. When you finish, the field exists, your signup form saves it for every new signup, and your e-mails can print it.

Create a field

1

Open the field list

Open Customers and click the Fields pill next to the page title (/customers/fields).

2

Add the field

Click New field, give it a Name (for example "Wedding date") and pick a Type: Text, Number, Date, Single choice (with its options) or Yes / no. The Key is made from the name when you leave it empty, for example wedding_date. The key and the type cannot be changed later.

You fill a field in on the client card (Profile tab, Custom fields), with a CSV import or over the API. Only your team sees the values.

Collect a field with a signup form

A form saves custom fields only for the fields on its list. An answer to a field that is not on the list is dropped, even when the field exists, so add every field the form should save.

1

Open the form settings

Open Marketing → Forms, open the form and go to the Settings tab. Scroll to Custom fields.

2

Pick the fields

Choose a field in Add a custom field…. For each row you can set the label the form shows (empty = the field's name), switch Optional / Required, change the order with the arrows, or remove it. Click Save.

3

Use the field name and the token

Each row shows two values with a copy button:

  • Field name in HTML, for example custom.wedding_date: on a Zanfia page or your own site, the input with this name carries the answer. A hidden input works too, for example a quiz result: <input type="hidden" name="custom.quiz_result" value="boho">.
  • In e-mails, for example {{custom.wedding_date}}: put it in a campaign or an automation e-mail to print the stored value.

The hosted form (its link and the iframe widget) and the editor preview show the picked fields by themselves. A required field must be filled in before the form sends.

A row is marked when something is off:

What you seeWhat it means
"This field is archived"The form no longer shows or saves it. Remove it, or restore the field in Fields.
"This field no longer exists"Same: remove it from the list.
"This label reads like the form's own … field"A label like "E-mail", "First name" or "Phone" would duplicate a built-in input. Use the built-in field (Fields tab of the form) or give the row a different label. The form is not saved until you do.

An answer only fills an empty field of a client who was already on your list: a signup never overwrites a value you set.

Let the agent do it

Ask the agent, for example "add the Plan field to my quiz form". It reads the form's current list and shows an approval card with the full list the form will save; nothing changes until you click Approve. Over MCP the same tool is set-signup-form-custom-fields; over the Workspace API it is config.customFields on PATCH /forms/{formId}.

Was this article helpful?

Related articles

Spotted something off? Tell us at support@zanfia.com.