---
title: "Create Email Template"
method: POST
path: "/workspaces/{workspace_id}/emails/templates"
tags: ["Emails::Template"]
---

# Create Email Template

`POST /workspaces/{workspace_id}/emails/templates`

Create an email template from html_body/text_body. The template is marked api-created and is hidden from the visual template pickers (it cannot be edited in the visual BeeFree editor). When accessing the API through an OAuth connection from a third-party platform acting on another team's workspaces, this endpoint is restricted to trusted developer platforms; if you are using your own API key (acting on your own account), you can write directly.

## Path parameters

- `workspace_id` integer, required

## Request body

- object
  - `emails_template` EmailsTemplateParameters — Parameters for creating an email template. Provide the body as html_body/text_body (mapped to the template content). Templates created via the API are marked api-created and are hidden from the visual template pickers.
    - `name` string, required — Internal name for the template (required)
    - `subject` string, nullable — Default email subject line. May be blank.
    - `html_body` string, nullable — HTML email body
    - `text_body` string, nullable — Plain text email body
    - `from_address_id` integer, nullable — ID of a sending address that belongs to this workspace. Prefer a verified sending address for best deliverability (see GET /workspaces/{workspace_id}/emails/addresses). A foreign address is rejected with 422.

## Response `201`

Created

- EmailsTemplateAttributes — Email Templates
  - `id` integer — Template ID
  - `public_id` string, nullable — Template public ID
  - `workspace_id` integer — Workspace ID
  - `name` string, nullable — Template name
  - `template_type` string — Template type
  - `created_at` string, date-time, nullable — Created at datetime
  - `updated_at` string, date-time, nullable — Updated at datetime
  - `subject` string, nullable — Default email subject line for the template
  - `html_body` string, nullable — **Expandable** The template's rendered HTML body. Only returned when expand[]=html_body is provided. get_html is a per-template cloud-storage read, so this is omitted from list and show by default; expanding it on a list fans out to one read per row — use sparingly.
  - `text_body` string, nullable — **Expandable** The template's plain text body. Only returned when expand[]=text_body is provided.
  - `created_via_api` boolean — Whether this template was authored via the public API. API-created templates are hidden from the visual template pickers and cannot be edited in the visual (BeeFree) editor.
  - `from_address` object, nullable — The template's sender address, or null when unset.
    - `id` integer
    - `public_id` string
    - `email_address` string, nullable
    - `name` string, nullable

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `422` — Unprocessable Entity

---

[API](https://skmtc.net/myclickfunnels/apis/clickfunnels-api.md) · [All operations](https://skmtc.net/myclickfunnels/apis/clickfunnels-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/myclickfunnels/clickfunnels-api/revisions/ae6313eaa176/schema)
