# User Custom Fields

Graspil allows you to add custom fields for your users.

For example, if your system has different subscription plans, you can create a “Plan” field and assign it to each user.

Custom fields let you:

* filter users based on field values,
* build reports that use these fields.

{% hint style="info" %}
Do not confuse custom fields with events.

A custom field is a property of the user (e.g., plan, status, city).

An event is an action performed by the user (e.g., registration, page view, purchase).
{% endhint %}

### How to Create a Field

1. Select the resource you want to work with.
2. Go to the custom fields settings page:

   <https://app.graspil.com/custom-fields>
3. Add the fields you need.

### Field Settings

* Name — a human-readable title of the field. You can change it anytime.
* Key — a unique identifier used internally, including when sending data through the API.
* Type — the type of data the field will store:

  *string*, *number*, *boolean*, *date*, or *array*.

  Data must match the selected type. For example, you cannot send a string to a field with the “number” type.

### How to Populate a Field

You can fill custom fields in several ways:

* Send data through the [API](https://docs.graspil.com/en/api/custom-fields).
* Send data from your mini App using the appropriate command.
* Populate fields using Graspil Automations.
* Send data from your website/landing page using the data transfer script.
