# create_leads

Create one or more CRM leads (inquiries) from a spreadsheet. Each row must include a contact email and at least one of:
workspaceId, crmNamespaceId, buildingIds, or unitTypeIds. When buildingIds or unitTypeIds are provided they take
precedence and determine the workspace context automatically.

<!-- INPUT_BLOCK_START -->

## Input

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `leads` | `CreateLeadRow[]` | Yes | Array of leads to create — each entry corresponds to one spreadsheet row. Each lead requires a contact email and at least one of: workspaceId, crmNamespaceId, buildingIds, or unitTypeIds. - [CreateLeadRow](#createleadrow) |

### CreateLeadRow

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `contact` | `ProvidedLeadContact` | Yes | Primary contact for the lead. Email is required. - [ProvidedLeadContact](#providedleadcontact) |
| `title` | `string` | No | Title or label for the lead (e.g. company name or guest name) |
| `estimatedCheckIn` | `string` | No | Estimated check-in date in ISO 8601 format (YYYY-MM-DD) |
| `estimatedCheckOut` | `string` | No | Estimated check-out date in ISO 8601 format (YYYY-MM-DD) |
| `dateRange` | `string` | No | Date range as a single string in the format "D/MM/YYYY - D/MM/YYYY" (e.g. "1/09/2026 - 30/06/2027"). When provided, this is parsed into estimatedCheckIn and estimatedCheckOut automatically. Takes precedence over individual estimatedCheckIn / estimatedCheckOut fields. |
| `source` | `string` | No | Source of the lead (e.g. "website", "referral") |
| `origin` | `string` | No | Origin of the lead (e.g. campaign name) |
| `platform` | `string` | No | Platform where the lead originated |
| `notes` | `string` | No | Additional notes for the lead |
| `totalAdults` | `number` | No | Total number of adults |
| `totalChildren` | `number` | No | Total number of children |
| `totalBeds` | `number` | No | Number of beds requested (nonnegative integer) |
| `totalUnits` | `number` | No | Total number of units requested |
| `workspaceId` | `string` | No | ID of the workspace to associate with the lead. Either workspaceId or crmNamespaceId must be provided when buildingIds and unitTypeIds are absent. |
| `crmNamespaceId` | `string` | No | UUID of the CRM namespace to associate with the lead. Either workspaceId or crmNamespaceId must be provided. |
| `buildingIds` | `string[]` | No | IDs of buildings to associate with the lead. When provided, the lead is created via the building scope. Takes highest priority — workspace context is inferred from the buildings. |
| `unitTypeIds` | `string[]` | No | IDs of unit types to associate with the lead. When provided, the lead is created via the unit type scope. Takes priority over workspaceId / crmNamespaceId when buildingIds is absent. |

### ProvidedLeadContact

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `firstName` | `string` | No | First name of the contact |
| `lastName` | `string` | No | Last name of the contact |
| `email` | `string` | Yes | Email address of the contact (required) |
| `phoneNumber` | `string` | No | Phone number of the contact |

<!-- INPUT_BLOCK_END -->

<!-- OUTPUT_BLOCK_START -->

## Output

| Field | Type | Description |
| --- | --- | --- |
| `content` | `ContentItem[]` | Array of content items returned by the tool - [ContentItem](#contentitem) |
| `isError` | `boolean` | Whether the tool execution resulted in an error |

### ContentItem

| Field | Type | Description |
| --- | --- | --- |
| `type` | `'text'` | Content type (currently only 'text' is supported) |
| `text` | `string` | The text content to display |

<!-- OUTPUT_BLOCK_END -->
