# Assign reps to target book `PUT` `/api/v1/crm-connections/{crm_connection_id}/target-books/{target_book_id}/reps` Sets the book's active rep assignments to exactly the provided list. Reps in the list who are currently on a different book are moved here. Reps currently on this book who are not in the list are removed. Reps already on this book are left unchanged. Returns the full list of active reps now assigned to this target book. ## Path parameters | Name | Type | Required | Description | |------|------|----------|-------------| | crm_connection_id | string | yes | UUID of the CRM connection | | target_book_id | string | yes | Salesforce ID of the target book | ## Request body `application/json` | Field | Type | Required | Description | |-------|------|----------|-------------| | rep_ids | array[string] | yes | Salesforce IDs of reps | ## Response `200 OK` — `application/json` | Field | Type | Description | |-------|------|-------------| | reps | array[object] | Full list of active reps now assigned to this target book | | reps.id | string | Salesforce User ID of the rep | | reps.name | string | User.Name | | reps.is_active | boolean | User.IsActive | | reps.role | object | User.UserRole, if assigned | | reps.role.id | string | — | | reps.role.name | string | — | | reps.profile | object | User.Profile, if any | | reps.profile.id | string | — | | reps.profile.name | string | — | | reps.manager | object | User.Manager, if assigned | | reps.manager.id | string | — | | reps.manager.name | string | — | | reps.target_book | object | — | | reps.target_book.id | string | — | | reps.target_book.name | string | — | | reps.metrics | object | Requested metrics keyed by metric name. Null when the caller did not request metrics. Individual values may be null for threshold-dependent metrics when the target book has no Activity Threshold configured. | ## Errors | Status | Description | |--------|-------------| | 400 | Bad Request | | 403 | Forbidden | | 502 | Bad Gateway |