> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://katalyz.crisp.help/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Creating custom properties

**Custom properties** let you extend Katalyz's data model with fields that match how your business actually operates — deal amounts, close dates, prospect scores, industries, or anything else you want to track per-room.

Once defined, custom properties can be:
- Displayed in rooms via the **Field widget**
- Referenced as **variables** (type `$` in a text widget) to personalize content per-room
- Mapped to **HubSpot** (or other CRM) fields for bidirectional sync

> ⚠️ Requires org role **Admin**. Go to **Data settings**.

## The four object types

Katalyz groups properties by the **object** they belong to:

| Object type | What it represents | Example properties |
|---|---|---|
| **Rooms** | Deal-level data on a room | Deal amount, Deal stage, Close date, Prospect score |
| **Contacts** | People in your CRM who interact with rooms | Email, Phone, Job title, Company domain |
| **Participants** | People you've invited to a specific room | Role, Last login, Industry segment |
| **Actions** | Tasks and steps inside rooms | Priority, Due date, Status, Assignee |

Each object has its own tab in the Data settings.

![](https://storage.crisp.chat/users/helpdesk/website/-/5/5/4/8/554891f22af0b400/katalyz-custom-objects_27t9hx.png)

## Supported field types

| Field type | Use for |
|---|---|
| **Single-line text** | Names, short identifiers |
| **Multi-line text** | Notes, descriptions |
| **Number** | Counts, scores |
| **Currency** | Deal amounts, contract values |
| **Date picker** | Dates like close date, renewal |
| **Dropdown (single-select)** | Status, stage, tier |
| **Phone** | Phone numbers |
| **User** | Links to a Katalyz member |

## Creating a property

1. Go to **Data settings**.
2. Pick the object type tab (Rooms, Contacts, Participants, or Actions).
3. Click **+ Add property**.
4. You get three options:
   - **Create from scratch** — define a new Katalyz-native property
   - **Import from integration** — pull an existing HubSpot/Salesforce field into Katalyz
   - **Import from file** — bulk import property definitions
5. For "create from scratch," fill in:
   - **Property name** (human-readable label)
   - **Internal name** (auto-generated, used in placeholders and API)
   - **Field type**
   - **Description** (optional)
6. Save.

![](https://storage.crisp.chat/users/helpdesk/website/-/5/5/4/8/554891f22af0b400/katalyz-property-popup_jj419a.png =478xauto)

## Origin column

Each property shows an **origin**:

- **Katalyz** — created in Katalyz directly
- **Imported from HubSpot** — originally a HubSpot property, now available in Katalyz via integration
- **Imported from Salesforce** — same, from Salesforce

Properties imported from CRM come pre-linked to their source field.

## Mapping to CRM fields

Any Katalyz property can be mapped to an external integration field (HubSpot, Salesforce).

The **Mapped with** column in the properties table shows the current mapping:
- Empty (not mapped) — property exists in Katalyz only
- `HubSpot / deal_amount` — mapped to the `deal_amount` field in HubSpot

To map or change a mapping, click the row → **Edit property** → select an integration and a field.

Some fields have `canEditMapping: false` — typically properties that were imported from HubSpot and should stay linked to their origin. Editing these would break the sync.

## Usage tracking

The **Used in** column shows how many rooms actively use each property. This helps you:

- See which properties your team actually reaches for
- Identify candidates for cleanup (properties with 0 uses)
- Gauge the impact of deletion (a property used in 57 rooms is a big commitment to remove)

## Using custom properties in rooms

Once a property is defined, it can power:

### Field widget
Add a Field block to a room. Bind it to a custom property. The widget displays the current value.

### Placeholders
### Variables in text widgets
Type `$` in a text widget to insert a property as a variable. The variable is replaced with the actual value when the room renders.

See [Using variables in text](https://katalyz.crisp.help/en/article/using-variables-in-text-e33ha8/).

## Editing and deleting

- **Edit** — change the property's label, description, or mapping. The field type generally can't be changed (would corrupt existing values).
- **Delete** — removes the property from every room and every template that uses it. Widgets and placeholders referencing it break.

Before deleting, check the **Used in** count. A property in use across dozens of rooms should be phased out carefully — update the affected rooms first.

## Related articles
- [HubSpot field mapping](https://katalyz.crisp.help/en/article/crm-field-mapping-sync-hubspot-salesforce-fzz4c/)
- [Using variables in text](https://katalyz.crisp.help/en/article/using-variables-in-text-e33ha8/)
- [Field widget](https://katalyz.crisp.help/en/article/field-widget-10qhhvv/)
