---
title: "Save Project Templates"
method: POST
path: "/api/app-auto-gtm/projects/{project_id}/save-templates"
tags: ["AppAutoGtm"]
---

# Save Project Templates

`POST /api/app-auto-gtm/projects/{project_id}/save-templates`

Apply one email template to every campaign in the project, transactionally.

This is the "apply to all" action — per-campaign edits go through
PATCH /segments/{id} (one at a time, from the template editor). Builds the
JSONB email_templates shape via _build_email_templates and bumps
email_templates_version only for segments whose templates actually changed.

## Path parameters

- `project_id` integer, required

## Cookies

- `ex_access` string, nullable
- `ex_org` string, nullable

## Request body

- SaveTemplatesRequest — One template (first-email + follow-up briefs + language) applied to every campaign ("apply to all"). Per-campaign edits go through PATCH /segments/{id}, not this endpoint.
  - `shared` TemplateEntry, required
    - `instructions` string, nullable
    - `language` string, nullable
    - `followup_instructions` string, nullable
  - `except_segment_ids` integer[], nullable

## Response `200`

Successful Response

- SaveOkResponse
  - `ok` boolean

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/explee/apis/explee-api.md) · [All operations](https://skmtc.dev/explee/apis/explee-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/explee/explee-api/revisions/f169bc6e9447/schema)
