openapi: 3.2.0 info: description: Close CRM REST API title: Close Playbooks API version: 1.0.0 servers: - url: https://api.close.com/api/v1 security: - ApiKeyAuth: [] - OAuth2: [] tags: - name: playbooks externalDocs: url: https://developer.close.com/api/resources/playbooks paths: /playbook/: get: operationId: playbooks_list tags: - playbooks summary: List or filter playbooks description: Fetch a list of playbooks for the organization. Results are sorted by position ascending. parameters: - $ref: '#/components/parameters/LimitParam' - $ref: '#/components/parameters/SkipParam' - in: query name: is_archived required: false description: Filter for archived or not-archived playbooks. When not provided, both archived and not-archived playbooks will be returned. schema: title: Is Archived default: null anyOf: - type: boolean - type: 'null' - in: query name: position__gt required: false description: Filters for where the playbook's `position` is greater than the given value. schema: title: Position greater than default: null anyOf: - type: integer - type: 'null' - in: query name: created_at__lt required: false description: Filters for where the playbook's `created_at` (creation date) is before the given value. schema: title: Created At less than default: null anyOf: - type: string format: date-time - type: 'null' responses: '200': content: application/json: example: data: - archived_at: null archived_by_id: null created_at: '2025-07-29T10:30:00.000000+00:00' created_by_id: user_A6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA custom_field_ids: - cf_aU54Bvr6Rw8UBHh7zRboL3PYhbOVJl3XvwgPm3jgaKq - cf_v6S011I6MqcbVvB2FA5Nk8dr5MkL8sWuCiG8cUleO9c description: Initial discovery call with prospect. id: convtyp_03oUxZfoO6e2vHmcz1DiHR name: Discovery Call organization_id: orga_AbREgmiiwcr1w2b4cOnCMQaQPSIFxMqAD2Dh243uxcH outcome_ids: - outcome_030Xl5QwKi7tPRLRtnuef3 - outcome_03oUxZfoO6e2vHmcz1DiHR position: 0 summary_guidance: Summarize the prospect's pain points and next steps. updated_at: '2025-07-29T10:30:00.000000+00:00' updated_by_id: user_A6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA has_more: false schema: type: object properties: data: items: $ref: '#/components/schemas/Playbook' type: array has_more: type: boolean required: - data - has_more description: Successful response '400': description: Bad request '401': description: Unauthorized '404': description: Not found post: operationId: playbooks_create tags: - playbooks summary: Create a playbook description: Create a new playbook for the organization. requestBody: content: application/json: example: custom_field_ids: - cf_aU54Bvr6Rw8UBHh7zRboL3PYhbOVJl3XvwgPm3jgaKq - cf_v6S011I6MqcbVvB2FA5Nk8dr5MkL8sWuCiG8cUleO9c description: Initial discovery call with prospect. name: Discovery Call outcome_ids: - outcome_030Xl5QwKi7tPRLRtnuef3 - outcome_03oUxZfoO6e2vHmcz1DiHR summary_guidance: Summarize the prospect's pain points and next steps. schema: $ref: '#/components/schemas/CreatePlaybook' required: true responses: '201': content: application/json: example: archived_at: null archived_by_id: null created_at: '2025-07-29T10:30:00.000000+00:00' created_by_id: user_A6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA custom_field_ids: - cf_aU54Bvr6Rw8UBHh7zRboL3PYhbOVJl3XvwgPm3jgaKq - cf_v6S011I6MqcbVvB2FA5Nk8dr5MkL8sWuCiG8cUleO9c description: Initial discovery call with prospect. id: convtyp_03oUxZfoO6e2vHmcz1DiHR name: Discovery Call organization_id: orga_AbREgmiiwcr1w2b4cOnCMQaQPSIFxMqAD2Dh243uxcH outcome_ids: - outcome_030Xl5QwKi7tPRLRtnuef3 - outcome_03oUxZfoO6e2vHmcz1DiHR position: 0 summary_guidance: Summarize the prospect's pain points and next steps. updated_at: '2025-07-29T10:30:00.000000+00:00' updated_by_id: user_A6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA schema: $ref: '#/components/schemas/Playbook' description: Successful response '400': description: Bad request '401': description: Unauthorized '404': description: Not found /playbook/{id}/: get: operationId: playbooks_get tags: - playbooks summary: Fetch a single playbook parameters: - in: path name: id required: true schema: type: string responses: '200': content: application/json: example: archived_at: null archived_by_id: null created_at: '2025-07-29T10:30:00.000000+00:00' created_by_id: user_A6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA custom_field_ids: - cf_aU54Bvr6Rw8UBHh7zRboL3PYhbOVJl3XvwgPm3jgaKq - cf_v6S011I6MqcbVvB2FA5Nk8dr5MkL8sWuCiG8cUleO9c description: Initial discovery call with prospect. id: convtyp_03oUxZfoO6e2vHmcz1DiHR name: Discovery Call organization_id: orga_AbREgmiiwcr1w2b4cOnCMQaQPSIFxMqAD2Dh243uxcH outcome_ids: - outcome_030Xl5QwKi7tPRLRtnuef3 - outcome_03oUxZfoO6e2vHmcz1DiHR position: 0 summary_guidance: Summarize the prospect's pain points and next steps. updated_at: '2025-07-29T10:30:00.000000+00:00' updated_by_id: user_A6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA schema: $ref: '#/components/schemas/Playbook' description: Successful response '400': description: Bad request '401': description: Unauthorized '404': description: Not found put: operationId: playbooks_update tags: - playbooks summary: Update a playbook description: Update an existing playbook. parameters: - in: path name: id required: true schema: type: string requestBody: content: application/json: example: name: Renamed Discovery Call schema: $ref: '#/components/schemas/UpdatePlaybook' required: true responses: '200': content: application/json: example: archived_at: null archived_by_id: null created_at: '2025-07-29T10:30:00.000000+00:00' created_by_id: user_A6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA custom_field_ids: - cf_aU54Bvr6Rw8UBHh7zRboL3PYhbOVJl3XvwgPm3jgaKq - cf_v6S011I6MqcbVvB2FA5Nk8dr5MkL8sWuCiG8cUleO9c description: Initial discovery call with prospect. id: convtyp_03oUxZfoO6e2vHmcz1DiHR name: Renamed Discovery Call organization_id: orga_AbREgmiiwcr1w2b4cOnCMQaQPSIFxMqAD2Dh243uxcH outcome_ids: - outcome_030Xl5QwKi7tPRLRtnuef3 - outcome_03oUxZfoO6e2vHmcz1DiHR position: 0 summary_guidance: Summarize the prospect's pain points and next steps. updated_at: '2025-07-29T10:30:00.000000+00:00' updated_by_id: user_A6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA schema: $ref: '#/components/schemas/Playbook' description: Successful response '400': description: Bad request '401': description: Unauthorized '404': description: Not found delete: operationId: playbooks_delete tags: - playbooks summary: Delete a playbook description: Delete an existing playbook. parameters: - in: path name: id required: true schema: type: string responses: '204': description: No content '400': description: Bad request '401': description: Unauthorized '404': description: Not found /playbook/{id}/archive/: post: operationId: playbooks_archive tags: - playbooks summary: Archive a playbook description: Archive an existing playbook. Archived playbooks are hidden from active listings but retain their associated history. parameters: - in: path name: id required: true schema: type: string responses: '200': content: application/json: example: archived_at: '2025-07-29T11:00:00.000000+00:00' archived_by_id: user_A6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA created_at: '2025-07-29T10:30:00.000000+00:00' created_by_id: user_A6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA custom_field_ids: - cf_aU54Bvr6Rw8UBHh7zRboL3PYhbOVJl3XvwgPm3jgaKq - cf_v6S011I6MqcbVvB2FA5Nk8dr5MkL8sWuCiG8cUleO9c description: Initial discovery call with prospect. id: convtyp_03oUxZfoO6e2vHmcz1DiHR name: Discovery Call organization_id: orga_AbREgmiiwcr1w2b4cOnCMQaQPSIFxMqAD2Dh243uxcH outcome_ids: - outcome_030Xl5QwKi7tPRLRtnuef3 - outcome_03oUxZfoO6e2vHmcz1DiHR position: null summary_guidance: Summarize the prospect's pain points and next steps. updated_at: '2025-07-29T10:30:00.000000+00:00' updated_by_id: user_A6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA schema: $ref: '#/components/schemas/Playbook' description: Successful response '400': description: Bad request '401': description: Unauthorized '404': description: Not found /playbook/{id}/unarchive/: post: operationId: playbooks_unarchive tags: - playbooks summary: Unarchive a playbook description: Restore a previously archived playbook to active status. parameters: - in: path name: id required: true schema: type: string responses: '200': content: application/json: example: archived_at: null archived_by_id: null created_at: '2025-07-29T10:30:00.000000+00:00' created_by_id: user_A6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA custom_field_ids: - cf_aU54Bvr6Rw8UBHh7zRboL3PYhbOVJl3XvwgPm3jgaKq - cf_v6S011I6MqcbVvB2FA5Nk8dr5MkL8sWuCiG8cUleO9c description: Initial discovery call with prospect. id: convtyp_03oUxZfoO6e2vHmcz1DiHR name: Discovery Call organization_id: orga_AbREgmiiwcr1w2b4cOnCMQaQPSIFxMqAD2Dh243uxcH outcome_ids: - outcome_030Xl5QwKi7tPRLRtnuef3 - outcome_03oUxZfoO6e2vHmcz1DiHR position: 0 summary_guidance: Summarize the prospect's pain points and next steps. updated_at: '2025-07-29T10:30:00.000000+00:00' updated_by_id: user_A6KhMpzHRCYQHdn4gRNIFNN5JExnsrprKA6ekxM63XA schema: $ref: '#/components/schemas/Playbook' description: Successful response '400': description: Bad request '401': description: Unauthorized '404': description: Not found components: schemas: Playbook: title: Playbook type: object properties: archived_at: title: Archived At anyOf: - type: string format: date-time - type: 'null' archived_by_id: title: Archived By ID anyOf: - type: string - type: 'null' created_at: title: Created At type: string format: date-time created_by_id: title: Created By ID type: string custom_field_ids: title: Custom Field IDs type: array items: type: string description: title: Description anyOf: - type: string - type: 'null' id: title: ID type: string name: title: Name type: string organization_id: title: Organization ID type: string outcome_ids: title: Outcome IDs type: array items: type: string position: title: Position anyOf: - type: integer - type: 'null' summary_guidance: title: Summary Guidance anyOf: - type: string - type: 'null' updated_at: title: Updated At type: string format: date-time updated_by_id: title: Updated By ID type: string required: - archived_at - archived_by_id - created_at - created_by_id - custom_field_ids - description - id - name - organization_id - outcome_ids - position - summary_guidance - updated_at - updated_by_id CreatePlaybook: title: CreatePlaybook type: object properties: custom_field_ids: title: Custom Field IDs description: IDs of [Shared Custom Fields](/api/resources/custom-fields/custom-fields-shared) to associate with this Playbook. type: array items: type: string description: title: Description description: Description of the playbook. anyOf: - type: string - type: 'null' name: title: Name type: string outcome_ids: title: Outcome IDs description: IDs of [Outcomes](/api/resources/outcomes/) that should be associated with this Playbook. type: array items: type: string summary_guidance: title: Summary Guidance description: Guidance for AI summaries of calls and meetings associated with this Playbook. anyOf: - type: string - type: 'null' required: - name additionalProperties: false UpdatePlaybook: title: UpdatePlaybook type: object properties: custom_field_ids: title: Custom Field IDs description: IDs of [Shared Custom Fields](/api/resources/custom-fields/custom-fields-shared) to associate with this Playbook. type: array items: type: string description: title: Description description: Description of the playbook. anyOf: - type: string - type: 'null' name: title: Name type: string outcome_ids: title: Outcome IDs description: IDs of [Outcomes](/api/resources/outcomes/) that should be associated with this Playbook. type: array items: type: string summary_guidance: title: Summary Guidance description: Guidance for AI summaries of calls and meetings associated with this Playbook. anyOf: - type: string - type: 'null' additionalProperties: false parameters: LimitParam: description: Number of results to return. in: query name: _limit required: false schema: default: 100 type: integer SkipParam: description: Number of results to skip before returning, for pagination. in: query name: _skip required: false schema: default: 0 type: integer securitySchemes: ApiKeyAuth: description: Use your API key as the username and leave the password empty. scheme: basic type: http OAuth2: flows: authorizationCode: authorizationUrl: https://app.close.com/oauth2/authorize/ scopes: all.full_access: Full access to all resources offline_access: Request a refresh token tokenUrl: https://api.close.com/oauth2/token/ type: oauth2