# Create target book `POST` `/api/v1/crm-connections/{crm_connection_id}/target-books` Creates a new target book with optional segments and conditions in the linked Salesforce org. Uses the Salesforce Composite Graph API to create all records atomically. ## Path parameters | Name | Type | Required | Description | |------|------|----------|-------------| | crm_connection_id | string | yes | UUID of the CRM connection | ## Request body `application/json` | Field | Type | Required | Description | |-------|------|----------|-------------| | maximum_capacity | integer | no | — | | name | string | yes | — | | ownership_field | string | no | — | | activity_threshold_id | string | no | — | | segments | array[object] | yes | — | | segments.maximum_capacity | integer | no | — | | segments.name | string | yes | — | | segments.conditions_operator | string | yes | — | | segments.custom_condition_logic | string | no | — | | segments.conditions | array[object] | yes | — | | segments.conditions.id | string | no | Salesforce ID; present = update existing, absent = create new | | segments.conditions.field | string | yes | Salesforce field API name | | segments.conditions.operator | string | yes | Comparison operator | | segments.conditions.value | string | yes | Value to compare against | | segments.is_locked | boolean | no | — | ## Response `201 Created` — `application/json` | Field | Type | Description | |-------|------|-------------| | id | string | Salesforce ID of the newly created target book | ## Errors | Status | Description | |--------|-------------| | 400 | Bad Request | | 403 | Forbidden | | 422 | Unprocessable Entity | | 502 | Bad Gateway |