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

# Properties

> Store custom attributes and metadata on contacts for personalization and segmentation.

# Properties

Custom properties let you store arbitrary metadata on contacts to enable rich personalization in templates and powerful filtering in segments.

***

## Supported Property Types

* **String**: `plan: "enterprise"`, `job_title: "CTO"`
* **Number**: `logins_count: 42`, `mrr: 1500`
* **Boolean**: `is_beta_tester: true`, `onboarding_completed: false`
* **Date (ISO-8601 string)**: `trial_expires_at: "2026-10-01T00:00:00Z"`

***

## Updating Properties via API

You can update a contact's properties using `PATCH /contacts/:id`:

```typescript theme={null}
await mailofly.contacts.update("cnt_01J8G52XYZ", {
  properties: {
    plan: "enterprise",
    upgraded_at: new Date().toISOString(),
  },
});
```

***

## Using Properties in Templates

Any custom property attached to a contact can be referenced directly in templates using standard merge tag syntax:

```html theme={null}
<p>Your current plan: <strong>{{plan | Free}}</strong></p>
<p>Company: {{company}}</p>
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.