# Custom Fields for Advocate Explained

You can use *custom fields* to send impact.com extra pieces of data about participants in your referral program. This information can be used in your [program rules](https://help.impact.com/brand/what-would-you-like-to-learn-about/advocate-program/getting-started-with-advocate/advocate-program-rules-explained) to determine when goals and actions are triggered. You can also segment your participants based on custom field values.

The types of custom fields you send are flexible. For example, you may want to include information about a participant's:

* Birthday
* Language
* Location
* Type of subscription
* Membership status

Custom fields can be sent to impact.com when you upload a user import file or via UTT, API, SDK, or another integration method.

#### Field characteristics

Any custom fields you send need to meet a few requirements for field names and values.

{% tabs %}
{% tab title="Names" %}

* Up to 64 characters.
* Only alphanumeric characters, dashes, and underscores are accepted (letters must be unaccented).
* Case sensitive, e.g., `customFieldName` is treated as distinct from `customfieldname`.
  {% endtab %}

{% tab title="Values" %}

* Supports `string`, `number`, `Boolean`, and `null types`.
* Max string value of 1024 characters.
* Dates must be formatted as a UNIX timestamp in milliseconds.
* Maximum of 100 fields can be added/updated per request.
* Setting a custom field for a user to `null` will remove the field for that user.
  {% endtab %}
  {% endtabs %}

#### Send custom field information to impact.com

You can include custom fields whenever you create, update, or upsert users, regardless of the method by which you send the data.

{% tabs %}
{% tab title="File imports" %}
You can include custom fields when importing new users or updating existing users in bulk. Refer to [Import Advocate Participants in Bulk](https://help.impact.com/brand/what-would-you-like-to-learn-about/advocate-program/manage-advocate-participants/import-advocate-participants-in-bulk) for instructions.

Below are two sample files that you can use to guide your import.

* User data imports: [CSV](https://assets.ctfassets.net/s68ib1kj8k5n/7LOYwhDlsI22uuaIMaWImE/71cefe860edc71c0968c8065e1d6e953/sample-user-upload.csv) ![](https://4048883401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwMLlMoFBtKJa8ptd3zaw%2Fuploads%2Fgit-blob-06e12321258e7eb7ac63ef7e73640b29fcf2baad%2Fcff634f1183ca82d3b56ab55dd636140372687d8dbc6520872cdbe5010347326.svg?alt=media) or [JSONL](https://assets.ctfassets.net/s68ib1kj8k5n/5rD1ZiKEjqStp54qjDB90N/48918dfa8b53a935c7c83ea5fbf3af77/userImportSample.jsonl) ![](https://4048883401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwMLlMoFBtKJa8ptd3zaw%2Fuploads%2Fgit-blob-06e12321258e7eb7ac63ef7e73640b29fcf2baad%2Fcff634f1183ca82d3b56ab55dd636140372687d8dbc6520872cdbe5010347326.svg?alt=media)
* Event data imports: [CSV](https://assets.ctfassets.net/s68ib1kj8k5n/20lD8Gua3EtW8qIahBvciz/152fd3cfaa3f0ee4076a6729bc8d4164/userEventSample.csv) ![](https://4048883401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwMLlMoFBtKJa8ptd3zaw%2Fuploads%2Fgit-blob-06e12321258e7eb7ac63ef7e73640b29fcf2baad%2Fcff634f1183ca82d3b56ab55dd636140372687d8dbc6520872cdbe5010347326.svg?alt=media) or [JSONL](https://assets.ctfassets.net/s68ib1kj8k5n/2IPDDkVhCgDBPyQrRANfb9/d38643fba660ca1412b7d85f1b7c0f41/userEventSample.jsonl) ![](https://4048883401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwMLlMoFBtKJa8ptd3zaw%2Fuploads%2Fgit-blob-06e12321258e7eb7ac63ef7e73640b29fcf2baad%2Fcff634f1183ca82d3b56ab55dd636140372687d8dbc6520872cdbe5010347326.svg?alt=media)
  {% endtab %}

{% tab title="APIs and SDKs" %}
Custom fields can be included when using impact.com's [GraphQL methods](https://integrations.impact.com/impact-brand/docs/graphql-reference) or [Rest API endpoints](https://integrations.impact.com/impact-brand/docs/saasquatch-rest-api-1) that create, update, or upsert users. They can also be included when using [UTT](https://integrations.impact.com/impact-brand/docs/install-the-utt) or our [mobile options](https://integrations.impact.com/impact-brand/docs/saasquatch-mobile-overview-1) to create, update, or upsert users from within your application.
{% endtab %}
{% endtabs %}


---

# Agent Instructions: 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://help.impact.com/brand/what-would-you-like-to-learn-about/advocate-program/manage-advocate-participants/custom-and-calculated-fields/custom-fields-for-advocate-explained.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.
