> For the complete documentation index, see [llms.txt](https://current-rms.gitbook.io/liquid-syntax/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://current-rms.gitbook.io/liquid-syntax/information/custom-fields.md).

# Custom fields

[Custom fields](http://help.current-rms.com/set-up-your-system/your-settings/store-additional-data-by-creating-custom-fields) let you add things like text boxes, tick boxes, drop-down lists, date pickers, and other fields to any screen in your Current RMS system so you can store additional information.

If you like, you can pull through custom fields to document layouts and discussion templates. They behave like Liquid objects.

![An example of custom fields against an opportunity on a document layout.](/files/-LqkEFd7jHPxRhgqomX6)

## Example use cases

#### **Product translations**

Do you operate in multiple languages? Create custom fields against your products to store an alternative name or description and pull those through to opportunity documents.

#### **Additional product information**

Create fields for product website, dimensions, or other data and display this on your opportunity documents.

**Risk assessments**

Make tickbox custom fields against an opportunity and pull through the values of those for a handy risk assessment checklist that can be shown on opportunity documents.

#### **Hiding information**

Liquid can be used to manipulate data that’s displayed on your documents, great for selectively hiding information. For example, you might have a boolean against an opportunity item or product that determines whether it's visible on a printed document.&#x20;

## Create custom fields

If you’ve not already, [create your custom fields](http://help.current-rms.com/set-up-your-system/your-settings/store-additional-data-by-creating-custom-fields) in System Setup > Custom Fields.&#x20;

## Document layout field name

To add custom fields to documents layouts, use the Document Layout Field Name in System Setup > Custom Fields.

This is generally the name of the custom field with underscores replacing spaces. For example, “Test Date” becomes `test_date` .&#x20;

![Document layout field name in Custom Fields](/files/-LqkFdeYdC2xIFUR63Mo)

The field name is your Liquid object. The way that you access the custom field depends on both the module where you created the field, as well as the document you wish to access it in. Check the guide that relates to the module that you created the custom field against for information on how to access it.

### **Examples**

* To access a product custom field in the opportunity items loop\
  `{{ item.product.custom_field_name }}`&#x20;
* To access an organization custom field on an opportunity or invoice document\
  `{{ customer.custom_field_name }}`&#x20;
* To access opportunity custom fields on an opportunity document\
  `{{ order.custom_field_name }}`&#x20;

## Data types

Most types of custom field return data in a way that you'd expect. For example, a text custom field returns a string. There are a couple of exceptions.

### Boolean

You might expect booleans to return `true` or `false`. However, they return a string with the values:

* `Yes`
* `No`
* blank

When you create a boolean against a module, existing records in that module have their type set as blank because they haven't explicitly been set as `true` or `false`. When you update records, they're set as `true` or `false`.

To use a boolean in your documents in liquid tags, check to see if a string is “Yes” or “No”. For example:

```markup
{% if customer.rented_before == "No" %}
  <p>Welcome to the family!</p>
{% elsif customer.rented_before == "Yes" %}
  <p>It’s good to see you again!</p>
{% endif %}
```

Remember to cater for blank values where necessary.

### Multi list of values

Custom fields with the type multi list of values (i.e. a list of tick boxes) store data as a string containing all of the list items.

To check whether a value is present, use the `contains` operator. For example:

```markup
{% if order.opportunity_notes contains "Fire Safety Kit Needed" %}
  <p>You’ve asked us not to supply a fire safety kit, so remember to bring your own.</p>
{% endif %}
```

There's no operator for “does not contain”, but you may use an unless statement to check to see if a condition isn't met.

```markup
{% unless order.opportunity_notes contains "Fire Safety Kit Needed" %}
  <p>You don't need a fire safety kit for this job.</p>
{% endunless %}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://current-rms.gitbook.io/liquid-syntax/information/custom-fields.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
