> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.textit.com/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Adding and Updating a Contact Field

When a [contact field is created](https://help.textit.com/en/article/creating-custom-contact-fields-1c3nq5o/), the default value is null unless the field is imported with a pre-existing value. To change the value of a recently created contact field, use this action or edit a contact field value via the **Contact's profile**. 

For example, when a new phone number sends a message to a channel connected to your account, a new contact will be created with a null **Name** value and null values for every contact field you've added. The new contact will only be identifiable by their phone number until their other field values are updated.  
  
Use the **Update the contact** action to update the value of an existing contact field for each contact that reaches this node.

## Using Variables & Expressions

Contact fields can be updated with a fixed value, [expressions](/en/article/function-reference-mlu14v/), or variables:  

* **@results** - the variable assigned to the result of each Split Action node. May also include **.value** (e.g. **@results.[variable\_name].value**, the value of the incoming message sent by the contact), **.category** (e.g. **@results.[variable\_name].category**, the category through which the incoming message sent by the contact passed) or **.created\_on** (e.g. **@results.[variable\_name].created\_on**, the time at which the incoming message was received from the contact).

* **@urns**- the addresses for the contact ( **@urns.tel**, **@urns.facebook**, **@urns.mailto**).

* **@input** - the last message handled by the workflow. ( **@input.text** the text of the last message, **@input.channel** the channel the last message was handled on, etc.)

* **@webhook** - the parsed JSON payload of the last [webhook call](/en/article/calling-a-webhook-adicxq/).

* An [expression](https://textit.com/mr/docs/expressions.html), e.g. **@(now()), @(datetime\_add), @(remove\_first\_word\_)** and many more.

* **@parent** - references variables collected by a parent flow.

* **@child** - references variables collected by a child flow.

## Creating a New Contact Field

You can create a new contact field by simply typing the new variable name into the *'Field'* box. Type the new field name and hit 'return'. The new field will now appear under 'fields' in your contact folder.

![](https://storage.crisp.chat/users/helpdesk/website/-/7/a/9/f/7a9fc4558a9de000/screenshot-2026-04-28-at-11524_18q4mjn.png)
The new field will be referenced by \*\*@fields.[variable\_name]\*\*. It will also be created with "Text" as field/data type, expecting to save a text. In case this field will store a number or a date & time, make sure to adjust it by navigating your [Manage fields page](https://help.textit.com/en/article/how-do-i-manage-contact-fields-1t91ubk/#2-create-a-new-field) and finding the field name and click on it for editing. 

You can also manually create and edit a custom contact field not included in the default fields following the directions [here](/en/article/creating-custom-contact-fields-1c3nq5o/).  

## Updating a Contact Field

In the example below, we're updating a custom contact field **Due Date** that we've created for contacts who have joined our Expecting Mothers group using the **@results.due\_date** variable.

![](https://storage.crisp.chat/users/helpdesk/website/-/7/a/9/f/7a9fc4558a9de000/screenshot-2026-04-28-at-11590_7pkios.png)


After sending an initial message asking for the due date, we need to collect their response with a **Wait for Response** action and name the result **Due Date**:

![](https://storage.crisp.chat/users/helpdesk/website/-/7/a/9/f/7a9fc4558a9de000/screenshot-2026-04-28-at-11594_1o5b34y.png)


After creating this Wait for Response, we save the response using the 'Update the Contact' action in a new node.

In the node's *Select what to update* dialogue, you can either choose an already created custom contact field or simply type the new field's name create a new field. For this example, we'll create a field called **Due Date** and it will use the expression **@results.due\_date**, which is the name we gave to the result in the previous 'Wait for Response' node.

![](https://storage.crisp.chat/users/helpdesk/website/-/7/a/9/f/7a9fc4558a9de000/screenshot-2026-04-28-at-12002_1ddeuep.png)

That's it! The contact's due date has now been saved to their contact information page.  

Once the contact is updated, you can go to your contact's page and see under **Fields**:  

![](https://storage.crisp.chat/users/helpdesk/website/-/7/a/9/f/7a9fc4558a9de000/screenshot-2026-08-03-at-13453_m9urhp.png)

**Note:** A single contact field will store only up to 640 character.

## Incrementing Numeric Values

Contact fields must contain a number in order to be incremented. You can use our expressions language to test a field for a value before incrementing it, e.g:  
  
`@(default(fields.age, 0) + 1)`