> ## Documentation Index
> Fetch the complete documentation index at: https://docs.masivo.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Custom event types

> Define a Fields schema for custom event types in the Masivo dashboard.

Custom event types let you declare the payload fields you expect when customers perform actions that are not covered by default events (for example product views or survey submissions). You define those fields in the dashboard as a **Fields schema**.

## Define a Fields schema

<Steps>
  <Step title="Open Custom event types">
    In the dashboard go to **Events → Custom event types**, then click **New** or open an existing type to edit.
  </Step>

  <Step title="Add fields">
    In the **Fields schema** section, add one row per field. Each row has:

    * **Field Name** — the property path you will send on the event (letters, numbers, hyphens, underscores; use dots for nesting, for example `order.value`)
    * **Type** — one of `string`, `number`, `boolean`, or `unknown`
  </Step>

  <Step title="Save">
    Save the custom event type. The schema is stored with the type and shown in the Custom event types list.
  </Step>
</Steps>

## Schema example

A Fields schema is an array of `{ name, type }` objects. For example:

```json theme={null}
[
  { "name": "product_id", "type": "string" },
  { "name": "order.value", "type": "number" },
  { "name": "is_premium", "type": "boolean" }
]
```

| Type      | Meaning                 |
| --------- | ----------------------- |
| `string`  | Text values             |
| `number`  | Numeric values          |
| `boolean` | `true` / `false`        |
| `unknown` | No fixed primitive type |

<Tip>
  The schema is optional. If you do not add fields, the custom event type still
  works as a trigger; it simply has no declared payload shape.
</Tip>

## Related

* [Events (CDP)](/guides/CDP/events) — how events fit into the Customer Data Platform
* [Launch a campaign](/guides/launch-a-campaign) — use a custom event type as a campaign trigger
* [Emit event](/api-reference/behavior/events/post) — send events with your custom `type`
