# Deals

The `deals` object stores sales opportunities. It is extensible but cannot be deleted.

## Standard fields

| Field | Type | Behavior |
|  --- | --- | --- |
| `Name` | string | Required record title. |
| `Stage` | select | Required pipeline stage. Defaults to Lead. |
| `Users` | prismaRelation | Assigned Frontline account users. |
| `Value` | number (currency, USD) | Deal monetary value. |
| `Last Status Change` | date | Read-only timestamp updated when Stage changes. |


The default Stage options are Lead, In Progress, Won, and Lost. These options can be customized for the account.

## Built-in relations

| Relation | Target | Cardinality |
|  --- | --- | --- |
| `People` | `people` | Many-to-many |
| `Company` | `companies` | Many-to-one |


The relations are already defined. Link records with the relation endpoints rather than creating replacement fields.

## Pipeline behavior

Deals use a Kanban view grouped by `Stage` by default. The default view also includes a sum aggregation on `Value`.

Whenever Stage changes, Frontline updates `Last Status Change` automatically. Do not maintain a duplicate timestamp field through a workflow.

## Example

```bash
frontline object record create deals --data '{
  "Name": "Acme expansion",
  "Stage": "Lead",
  "Value": 25000
}'
```

Inspect the live schema and Stage options before writing records:

```bash
frontline object schema deals
frontline object field list deals
```