# `PolarExpress.Schemas.EventCreateCustomer`
[🔗](https://github.com/jeffhuen/polar_express/blob/main/lib/polar_express/schemas/event_create_customer.ex#L2)

EventCreateCustomer

# `t`

```elixir
@type t() :: %PolarExpress.Schemas.EventCreateCustomer{
  customer_id: String.t() | nil,
  external_id: String.t() | nil,
  member_id: String.t() | nil,
  metadata: PolarExpress.Schemas.EventMetadataInput.t() | nil,
  name: String.t() | nil,
  organization_id: String.t() | nil,
  parent_id: String.t() | nil,
  timestamp: DateTime.t() | nil
}
```

* `customer_id` - ID of the customer in your Polar organization associated with the event. Format: uuid4.
* `external_id` - Your unique identifier for this event. Useful for deduplication and parent-child relationships. Nullable.
* `member_id` - ID of the member within the customer's organization who performed the action. Used for member-level attribution in B2B. Nullable.
* `metadata` - Key-value object allowing you to store additional information about the event. Some keys like `_llm` are structured data that are handled specially by Polar.

The key must be a string with a maximum length of **40 characters**.
The value must be either:

* A string with a maximum length of **500 characters**
* An integer
* A floating-point number
* A boolean

You can store up to **50 key-value pairs**.
* `name` - The name of the event.
* `organization_id` - The ID of the organization owning the event. **Required unless you use an organization token.** Nullable.
* `parent_id` - The ID of the parent event. Can be either a Polar event ID (UUID) or an external event ID. Nullable.
* `timestamp` - The timestamp of the event. Format: date-time.

# `schema_name`

---

*Consult [api-reference.md](api-reference.md) for complete listing*
