# Upsert Playbook **PUT /playbooks/{playbook_id}** Create or fully replace a playbook. If no playbook with this playbook_id exists for the caller's org, it is created. If it already exists, the current version is archived and all fields are replaced with the supplied values (optional fields not supplied default to null). ## Servers - http://api.example.com: http://api.example.com () ## Authentication methods - Http bearer ## Parameters ### Path parameters - **playbook_id** (string) ### Body: application/json (object) - **name** (string) - **description** (string | null) - **goal** (string) - **pre_filter** (object | null) Boolean flag gates. - **audience_description** (string | null) - **available_channels** (array[string]) - **capabilities_on_send** (array[string]) - **tone_hint** (string | null) - **must_mention** (array[string] | null) - **must_not_mention** (array[string] | null) ## Responses ### 200 Successful Response #### Body: application/json (object) - **id** (string) - **org_id** (string) - **playbook_id** (string) - **name** (string) - **description** (string | null) - **goal** (string) - **pre_filter** (object | null) - **audience_description** (string | null) - **available_channels** (array[string]) - **capabilities_on_send** (array[string]) - **tone_hint** (string | null) - **must_mention** (array[string] | null) - **must_not_mention** (array[string] | null) - **version** (integer) - **active** (boolean) - **created_at** (string(date-time)) - **updated_at** (string(date-time)) - **created_by** (string | null) ### 422 Validation Error #### Body: application/json (object) - **detail** (array[object]) [Powered by Bump.sh](https://bump.sh)