{
"error": "cannot change editor mode: template was created in 'code' mode and its mode can't be changed; create a new template in 'visual' mode and copy the content with Import or Export MJML"
}
{
"error": "<string>"
}
{
"error": "Template not found"
}
{
"error": "Failed to update template"
}
Templates
Update a template
Updates an existing template. Creates a new version of the template. The email’s editor_mode must stay the one the template was created with; to switch between the visual editor and MJML code, create a new template. A deleted template cannot be updated.
{
"error": "cannot change editor mode: template was created in 'code' mode and its mode can't be changed; create a new template in 'visual' mode and copy the content with Import or Export MJML"
}
Replaces the template's content, creating a new version. Fields the body omits are not cleared: translations are carried over from the stored template, and integration_id is server-owned and always preserved.
Per-language content variants, keyed by language code. Every key must be one of the workspace's configured languages. Omit the property to keep the stored translations untouched; send an empty object to delete all of them.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Notifuse Documentation","colors":{"primary":"#7763F1","light":"#7763F1","dark":"#7763F1"},"logo":{"light":"https://mintcdn.com/notifuse/Gw4P7NadUImyvZfw/assets/logo/logo-small.png?fit=max\u0026auto=format\u0026n=Gw4P7NadUImyvZfw\u0026q=85\u0026s=3f27c94b7162528f7c2d50f0d0dffdc4","dark":"https://mintcdn.com/notifuse/Gw4P7NadUImyvZfw/assets/logo/logo-small.png?fit=max\u0026auto=format\u0026n=Gw4P7NadUImyvZfw\u0026q=85\u0026s=3f27c94b7162528f7c2d50f0d0dffdc4","href":"https://notifuse.com"},"favicon":"https://mintcdn.com/notifuse/Gw4P7NadUImyvZfw/assets/logo/icon.png?fit=max\u0026auto=format\u0026n=Gw4P7NadUImyvZfw\u0026q=85\u0026s=4747c87b24b335428a3813ddeddb25c6","appearance":{"default":"light","strict":true},"navbar":{"links":[{"href":"mailto:hello@notifuse.com","label":"Support"},{"href":"https://github.com/notifuse","label":"GitHub"}],"primary":{"type":"button","label":"Try Notifuse Cloud","href":"https://cloud.notifuse.com"}},"footer":{"socials":{"x":"https://x.com/notifuse","github":"https://github.com/notifuse"}},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"notifuse","hasAudioNarration":false,"actualSubdomain":"notifuse","customDomains":["docs.notifuse.com"],"gitSource":{"type":"github","owner":"notifuse","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adb682800bf4036f5c4e610","collectionId":"b70e365b-99a3-462d-b179-b943298f5aee","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adb682800bf4036f5c4e610"},"entitlements":{},"buildId":"6adb682800bf4036f5c4e610","clientVersion":"0.0.4021","searchFilterCounts":[{"language":"default","tag":"API Reference","count":74},{"language":"default","tag":"Documentation","count":40},{"language":"default","tag":"Features","count":25},{"language":"default","tag":"Blog","count":21},{"language":"default","tag":"Web Analytics","count":17},{"language":"default","tag":"Broadcasts","count":12},{"language":"default","tag":"Webhooks","count":10},{"language":"default","tag":"Self-hosting","count":8},{"language":"default","tag":"Email Providers","count":7},{"language":"default","tag":"Contacts","count":7}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/update-a-template","slug":"/api-reference/update-a-template","pageMetadata":{"title":"Update a template","description":"Updates an existing template. Creates a new version of the template. The email's `editor_mode` must stay the one the template was created with; to switch between the visual editor and MJML code, create a new template. A deleted template cannot be updated.","deprecated":null,"version":null,"openapi":"/openapi.json post /api/templates.update","href":"/api-reference/update-a-template","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Updates an existing template. Creates a new version of the template. The email’s \", _jsx(_components.code, {\n children: \"editor_mode\"\n }), \" must stay the one the template was created with; to switch between the visual editor and MJML code, create a new template. A deleted template cannot be updated.\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Update a template","description":"Updates an existing template. Creates a new version of the template. The email's `editor_mode` must stay the one the template was created with; to switch between the visual editor and MJML code, create a new template. A deleted template cannot be updated.","deprecated":null,"version":null,"openapi":"/openapi.json post /api/templates.update","href":"/api-reference/update-a-template","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Update a template","description":"Updates an existing template. Creates a new version of the template. The email's `editor_mode` must stay the one the template was created with; to switch between the visual editor and MJML code, create a new template. A deleted template cannot be updated.","operationId":"updateTemplate","security":["38e441f3-a953-4ac8-a3d6-02b27045cbd1"],"requestBody":"219df280-dc4c-491b-84bd-5501cc4989ee","responses":{"200":"916c9ef8-1b5d-472b-80ae-520d75ad3836","400":"44e05ea2-b001-4874-b772-72d2309263c3","401":"d4385d3a-6165-442f-a7ae-ad8cf59fe5c1","404":"20b2e95d-d01f-456b-8ed4-e84171969e99","500":"7bd733e9-f9b7-4d0c-a17a-152900820479"},"method":"post","type":"path","servers":["26d4277a-6e4c-4b4f-b10e-d4b74e4c1afe"],"path":"/api/templates.update","baseUrlOptions":["https://{notifuseDomain}"],"title":"Update a template","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Replaces the template's content, creating a new version. Fields the body omits are not cleared: translations are carried over from the stored template, and integration_id is server-owned and always preserved.","required":["workspace_id","id","name","channel","category"],"properties":{"workspace_id":{"type":"string","description":"The ID of the workspace","example":"ws_1234567890","isRequired":true,"uniqueKey":"workspace_id","typeLabel":"string"},"id":{"type":"string","description":"ID of the template to update","example":"welcome_email","maxLength":32,"isRequired":true,"uniqueKey":"id","typeLabel":"string"},"name":{"type":"string","description":"Name of the template","example":"Welcome Email","maxLength":255,"isRequired":true,"uniqueKey":"name","typeLabel":"string"},"channel":{"type":"string","enum":["email","web"],"description":"Communication channel","example":"email","isRequired":true,"uniqueKey":"channel","typeLabel":"enum\u003cstring>"},"category":{"type":"string","enum":["marketing","transactional","welcome","opt_in","unsubscribe","bounce","blocklist","blog","other"],"description":"Template category","example":"transactional","isRequired":true,"uniqueKey":"category","typeLabel":"enum\u003cstring>"},"email":{"type":"object","properties":{"subject":{"type":"string","description":"Email subject line (supports Liquid templating)","example":"Welcome, {{user_name}}!","isRequired":true,"uniqueKey":"email.subject","typeLabel":"string"},"compiled_preview":{"type":"string","description":"Compiled HTML preview of the email","isRequired":true,"uniqueKey":"email.compiled_preview","typeLabel":"string"},"editor_mode":{"type":"string","enum":["visual","code"],"default":"visual","description":"Which editor the email is written in. `visual` stores the drag-and-drop block tree in `visual_editor_tree`; `code` stores raw MJML in `mjml_source`. The mode is set when the template is created and cannot be changed afterwards: an update in the other mode is refused with a 400. To switch, create a new template in the other mode.","uniqueKey":"email.editor_mode","typeLabel":"enum\u003cstring>"},"mjml_source":{"type":"string","description":"Raw MJML source (supports Liquid templating). Required when `editor_mode` is `code`, ignored otherwise.","example":"\u003cmjml>\u003cmj-body>\u003cmj-section>\u003cmj-column>\u003cmj-text>Hello {{ contact.first_name }}\u003c/mj-text>\u003c/mj-column>\u003c/mj-section>\u003c/mj-body>\u003c/mjml>","uniqueKey":"email.mjml_source","typeLabel":"string"},"sender_id":{"type":"string","description":"ID of the sender configuration to use","example":"sender_123","uniqueKey":"email.sender_id","typeLabel":"string"},"reply_to":{"type":"string","format":"email","description":"Reply-To email address","example":"support@example.com","uniqueKey":"email.reply_to","typeLabel":"string\u003cemail>"},"subject_preview":{"oneOf":[{"type":"string","description":"Preview text shown in email clients","example":"Get started with your account","uniqueKey":"email.subject_preview.oneOf.0","typeLabel":"string"},{"type":"null","description":"Preview text shown in email clients","example":"Get started with your account","uniqueKey":"email.subject_preview.oneOf.1","typeLabel":"null"}],"uniqueKey":"email.subject_preview","typeLabel":"string | null"},"visual_editor_tree":{"type":"object","description":"MJML visual editor tree structure. Required when `editor_mode` is `visual` (the default), ignored in `code` mode.","example":{"type":"mjml","children":[]},"uniqueKey":"email.visual_editor_tree","typeLabel":"object"},"text":{"oneOf":[{"type":"string","description":"Plain text version of the email","uniqueKey":"email.text.oneOf.0","typeLabel":"string"},{"type":"null","description":"Plain text version of the email","uniqueKey":"email.text.oneOf.1","typeLabel":"null"}],"uniqueKey":"email.text","typeLabel":"string | null"}},"required":["subject","compiled_preview"],"uniqueKey":"email","typeLabel":"object"},"web":{"type":"object","properties":{"content":{"type":"object","additionalProperties":true,"description":"Tiptap JSON content (source of truth for web templates)","isRequired":true,"uniqueKey":"web.content","typeLabel":"object"},"html":{"type":"string","description":"Pre-rendered HTML for display","uniqueKey":"web.html","typeLabel":"string"},"plain_text":{"type":"string","description":"Extracted text for search indexing","uniqueKey":"web.plain_text","typeLabel":"string"}},"required":["content"],"uniqueKey":"web","typeLabel":"object"},"template_macro_id":{"oneOf":[{"type":"string","description":"ID of the template macro (layout) to use","uniqueKey":"template_macro_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"ID of the template macro (layout) to use","uniqueKey":"template_macro_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"template_macro_id","typeLabel":"string | null"},"test_data":{"type":"object","additionalProperties":true,"description":"Test data for template preview","uniqueKey":"test_data","typeLabel":"object"},"settings":{"type":"object","additionalProperties":true,"description":"Channel-specific settings","uniqueKey":"settings","typeLabel":"object"},"translations":{"type":"object","additionalProperties":{"type":"object","description":"Content for one language. Carries the field matching the template's channel: email for an email template, web for a web template.","properties":{"email":{"type":"object","properties":{"subject":{"type":"string","description":"Email subject line (supports Liquid templating)","example":"Welcome, {{user_name}}!","isRequired":true,"uniqueKey":"translations.additionalProperties.email.subject","typeLabel":"string"},"compiled_preview":{"type":"string","description":"Compiled HTML preview of the email","isRequired":true,"uniqueKey":"translations.additionalProperties.email.compiled_preview","typeLabel":"string"},"editor_mode":{"type":"string","enum":["visual","code"],"default":"visual","description":"Which editor the email is written in. `visual` stores the drag-and-drop block tree in `visual_editor_tree`; `code` stores raw MJML in `mjml_source`. The mode is set when the template is created and cannot be changed afterwards: an update in the other mode is refused with a 400. To switch, create a new template in the other mode.","uniqueKey":"translations.additionalProperties.email.editor_mode","typeLabel":"enum\u003cstring>"},"mjml_source":{"type":"string","description":"Raw MJML source (supports Liquid templating). Required when `editor_mode` is `code`, ignored otherwise.","example":"\u003cmjml>\u003cmj-body>\u003cmj-section>\u003cmj-column>\u003cmj-text>Hello {{ contact.first_name }}\u003c/mj-text>\u003c/mj-column>\u003c/mj-section>\u003c/mj-body>\u003c/mjml>","uniqueKey":"translations.additionalProperties.email.mjml_source","typeLabel":"string"},"sender_id":{"type":"string","description":"ID of the sender configuration to use","example":"sender_123","uniqueKey":"translations.additionalProperties.email.sender_id","typeLabel":"string"},"reply_to":{"type":"string","format":"email","description":"Reply-To email address","example":"support@example.com","uniqueKey":"translations.additionalProperties.email.reply_to","typeLabel":"string\u003cemail>"},"subject_preview":{"oneOf":[{"type":"string","description":"Preview text shown in email clients","example":"Get started with your account","uniqueKey":"translations.additionalProperties.email.subject_preview.oneOf.0","typeLabel":"string"},{"type":"null","description":"Preview text shown in email clients","example":"Get started with your account","uniqueKey":"translations.additionalProperties.email.subject_preview.oneOf.1","typeLabel":"null"}],"uniqueKey":"translations.additionalProperties.email.subject_preview","typeLabel":"string | null"},"visual_editor_tree":{"type":"object","description":"MJML visual editor tree structure. Required when `editor_mode` is `visual` (the default), ignored in `code` mode.","example":{"type":"mjml","children":[]},"uniqueKey":"translations.additionalProperties.email.visual_editor_tree","typeLabel":"object"},"text":{"oneOf":[{"type":"string","description":"Plain text version of the email","uniqueKey":"translations.additionalProperties.email.text.oneOf.0","typeLabel":"string"},{"type":"null","description":"Plain text version of the email","uniqueKey":"translations.additionalProperties.email.text.oneOf.1","typeLabel":"null"}],"uniqueKey":"translations.additionalProperties.email.text","typeLabel":"string | null"}},"required":["subject","compiled_preview"],"uniqueKey":"translations.additionalProperties.email","typeLabel":"object"},"web":{"type":"object","properties":{"content":{"type":"object","additionalProperties":true,"description":"Tiptap JSON content (source of truth for web templates)","isRequired":true,"uniqueKey":"translations.additionalProperties.web.content","typeLabel":"object"},"html":{"type":"string","description":"Pre-rendered HTML for display","uniqueKey":"translations.additionalProperties.web.html","typeLabel":"string"},"plain_text":{"type":"string","description":"Extracted text for search indexing","uniqueKey":"translations.additionalProperties.web.plain_text","typeLabel":"string"}},"required":["content"],"uniqueKey":"translations.additionalProperties.web","typeLabel":"object"}},"uniqueKey":"translations.additionalProperties","typeLabel":"object"},"description":"Per-language content variants, keyed by language code. Every key must be one of the workspace's configured languages. Omit the property to keep the stored translations untouched; send an empty object to delete all of them.","uniqueKey":"translations","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"workspace_id":"ws_1234567890","id":"welcome_email","name":"Welcome Email","channel":"email","category":"transactional","template_macro_id":"\u003cstring>","test_data":{},"settings":{},"translations":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"916c9ef8-1b5d-472b-80ae-520d75ad3836":{"description":"Template updated successfully","content":{"application/json":{"schema":{"type":"object","properties":{"template":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the template (alphanumeric, underscores, and hyphens only)","example":"welcome_email","maxLength":32,"pattern":"^[a-zA-Z0-9_-]+$","isRequired":true,"uniqueKey":"template.id","typeLabel":"string"},"name":{"type":"string","description":"Name of the template","example":"Welcome Email","maxLength":255,"isRequired":true,"uniqueKey":"template.name","typeLabel":"string"},"channel":{"type":"string","enum":["email","web"],"description":"Communication channel","example":"email","isRequired":true,"uniqueKey":"template.channel","typeLabel":"enum\u003cstring>"},"category":{"type":"string","enum":["marketing","transactional","welcome","opt_in","unsubscribe","bounce","blocklist","blog","other"],"description":"Template category","example":"transactional","maxLength":20,"isRequired":true,"uniqueKey":"template.category","typeLabel":"enum\u003cstring>"},"version":{"type":"integer","format":"int64","description":"Version number of the template","example":1,"uniqueKey":"template.version","typeLabel":"integer\u003cint64>"},"email":{"type":"object","properties":{"subject":{"type":"string","description":"Email subject line (supports Liquid templating)","example":"Welcome, {{user_name}}!","isRequired":true,"uniqueKey":"template.email.subject","typeLabel":"string"},"compiled_preview":{"type":"string","description":"Compiled HTML preview of the email","isRequired":true,"uniqueKey":"template.email.compiled_preview","typeLabel":"string"},"editor_mode":{"type":"string","enum":["visual","code"],"default":"visual","description":"Which editor the email is written in. `visual` stores the drag-and-drop block tree in `visual_editor_tree`; `code` stores raw MJML in `mjml_source`. The mode is set when the template is created and cannot be changed afterwards: an update in the other mode is refused with a 400. To switch, create a new template in the other mode.","uniqueKey":"template.email.editor_mode","typeLabel":"enum\u003cstring>"},"mjml_source":{"type":"string","description":"Raw MJML source (supports Liquid templating). Required when `editor_mode` is `code`, ignored otherwise.","example":"\u003cmjml>\u003cmj-body>\u003cmj-section>\u003cmj-column>\u003cmj-text>Hello {{ contact.first_name }}\u003c/mj-text>\u003c/mj-column>\u003c/mj-section>\u003c/mj-body>\u003c/mjml>","uniqueKey":"template.email.mjml_source","typeLabel":"string"},"sender_id":{"type":"string","description":"ID of the sender configuration to use","example":"sender_123","uniqueKey":"template.email.sender_id","typeLabel":"string"},"reply_to":{"type":"string","format":"email","description":"Reply-To email address","example":"support@example.com","uniqueKey":"template.email.reply_to","typeLabel":"string\u003cemail>"},"subject_preview":{"oneOf":[{"type":"string","description":"Preview text shown in email clients","example":"Get started with your account","uniqueKey":"template.email.subject_preview.oneOf.0","typeLabel":"string"},{"type":"null","description":"Preview text shown in email clients","example":"Get started with your account","uniqueKey":"template.email.subject_preview.oneOf.1","typeLabel":"null"}],"uniqueKey":"template.email.subject_preview","typeLabel":"string | null"},"visual_editor_tree":{"type":"object","description":"MJML visual editor tree structure. Required when `editor_mode` is `visual` (the default), ignored in `code` mode.","example":{"type":"mjml","children":[]},"uniqueKey":"template.email.visual_editor_tree","typeLabel":"object"},"text":{"oneOf":[{"type":"string","description":"Plain text version of the email","uniqueKey":"template.email.text.oneOf.0","typeLabel":"string"},{"type":"null","description":"Plain text version of the email","uniqueKey":"template.email.text.oneOf.1","typeLabel":"null"}],"uniqueKey":"template.email.text","typeLabel":"string | null"}},"required":["subject","compiled_preview"],"uniqueKey":"template.email","typeLabel":"object"},"web":{"type":"object","properties":{"content":{"type":"object","additionalProperties":true,"description":"Tiptap JSON content (source of truth for web templates)","isRequired":true,"uniqueKey":"template.web.content","typeLabel":"object"},"html":{"type":"string","description":"Pre-rendered HTML for display","uniqueKey":"template.web.html","typeLabel":"string"},"plain_text":{"type":"string","description":"Extracted text for search indexing","uniqueKey":"template.web.plain_text","typeLabel":"string"}},"required":["content"],"uniqueKey":"template.web","typeLabel":"object"},"template_macro_id":{"oneOf":[{"type":"string","description":"ID of the template macro (layout) to use","uniqueKey":"template.template_macro_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"ID of the template macro (layout) to use","uniqueKey":"template.template_macro_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"template.template_macro_id","typeLabel":"string | null"},"integration_id":{"oneOf":[{"type":"string","readOnly":true,"description":"ID of the integration managing this template (e.g., Supabase). Server-owned: it is set when the integration creates the template and cannot be set or changed through the API.","uniqueKey":"template.integration_id.oneOf.0","typeLabel":"string"},{"type":"null","readOnly":true,"description":"ID of the integration managing this template (e.g., Supabase). Server-owned: it is set when the integration creates the template and cannot be set or changed through the API.","uniqueKey":"template.integration_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"template.integration_id","typeLabel":"string | null"},"test_data":{"type":"object","additionalProperties":true,"description":"Test data for template preview","example":{"user_name":"John Doe","action_url":"https://example.com/action"},"uniqueKey":"template.test_data","typeLabel":"object"},"settings":{"type":"object","additionalProperties":true,"description":"Channel-specific third-party settings","uniqueKey":"template.settings","typeLabel":"object"},"translations":{"type":"object","additionalProperties":{"type":"object","description":"Content for one language. Carries the field matching the template's channel: email for an email template, web for a web template.","properties":{"email":{"type":"object","properties":{"subject":{"type":"string","description":"Email subject line (supports Liquid templating)","example":"Welcome, {{user_name}}!","isRequired":true,"uniqueKey":"template.translations.additionalProperties.email.subject","typeLabel":"string"},"compiled_preview":{"type":"string","description":"Compiled HTML preview of the email","isRequired":true,"uniqueKey":"template.translations.additionalProperties.email.compiled_preview","typeLabel":"string"},"editor_mode":{"type":"string","enum":["visual","code"],"default":"visual","description":"Which editor the email is written in. `visual` stores the drag-and-drop block tree in `visual_editor_tree`; `code` stores raw MJML in `mjml_source`. The mode is set when the template is created and cannot be changed afterwards: an update in the other mode is refused with a 400. To switch, create a new template in the other mode.","uniqueKey":"template.translations.additionalProperties.email.editor_mode","typeLabel":"enum\u003cstring>"},"mjml_source":{"type":"string","description":"Raw MJML source (supports Liquid templating). Required when `editor_mode` is `code`, ignored otherwise.","example":"\u003cmjml>\u003cmj-body>\u003cmj-section>\u003cmj-column>\u003cmj-text>Hello {{ contact.first_name }}\u003c/mj-text>\u003c/mj-column>\u003c/mj-section>\u003c/mj-body>\u003c/mjml>","uniqueKey":"template.translations.additionalProperties.email.mjml_source","typeLabel":"string"},"sender_id":{"type":"string","description":"ID of the sender configuration to use","example":"sender_123","uniqueKey":"template.translations.additionalProperties.email.sender_id","typeLabel":"string"},"reply_to":{"type":"string","format":"email","description":"Reply-To email address","example":"support@example.com","uniqueKey":"template.translations.additionalProperties.email.reply_to","typeLabel":"string\u003cemail>"},"subject_preview":{"oneOf":[{"type":"string","description":"Preview text shown in email clients","example":"Get started with your account","uniqueKey":"template.translations.additionalProperties.email.subject_preview.oneOf.0","typeLabel":"string"},{"type":"null","description":"Preview text shown in email clients","example":"Get started with your account","uniqueKey":"template.translations.additionalProperties.email.subject_preview.oneOf.1","typeLabel":"null"}],"uniqueKey":"template.translations.additionalProperties.email.subject_preview","typeLabel":"string | null"},"visual_editor_tree":{"type":"object","description":"MJML visual editor tree structure. Required when `editor_mode` is `visual` (the default), ignored in `code` mode.","example":{"type":"mjml","children":[]},"uniqueKey":"template.translations.additionalProperties.email.visual_editor_tree","typeLabel":"object"},"text":{"oneOf":[{"type":"string","description":"Plain text version of the email","uniqueKey":"template.translations.additionalProperties.email.text.oneOf.0","typeLabel":"string"},{"type":"null","description":"Plain text version of the email","uniqueKey":"template.translations.additionalProperties.email.text.oneOf.1","typeLabel":"null"}],"uniqueKey":"template.translations.additionalProperties.email.text","typeLabel":"string | null"}},"required":["subject","compiled_preview"],"uniqueKey":"template.translations.additionalProperties.email","typeLabel":"object"},"web":{"type":"object","properties":{"content":{"type":"object","additionalProperties":true,"description":"Tiptap JSON content (source of truth for web templates)","isRequired":true,"uniqueKey":"template.translations.additionalProperties.web.content","typeLabel":"object"},"html":{"type":"string","description":"Pre-rendered HTML for display","uniqueKey":"template.translations.additionalProperties.web.html","typeLabel":"string"},"plain_text":{"type":"string","description":"Extracted text for search indexing","uniqueKey":"template.translations.additionalProperties.web.plain_text","typeLabel":"string"}},"required":["content"],"uniqueKey":"template.translations.additionalProperties.web","typeLabel":"object"}},"uniqueKey":"template.translations.additionalProperties","typeLabel":"object"},"description":"Per-language content variants, keyed by language code","example":{"fr":{"email":{"subject":"Bienvenue"}}},"uniqueKey":"template.translations","typeLabel":"object"},"created_at":{"type":"string","format":"date-time","description":"When the template was created","uniqueKey":"template.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","description":"When the template was last updated","uniqueKey":"template.updated_at","typeLabel":"string\u003cdate-time>"},"deleted_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the template was deleted, null while it is active. Deleted templates no longer appear in `templates.list`, but `templates.get` still returns them, because messages already sent are rendered from them.","uniqueKey":"template.deleted_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the template was deleted, null while it is active. Deleted templates no longer appear in `templates.list`, but `templates.get` still returns them, because messages already sent are rendered from them.","uniqueKey":"template.deleted_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"template.deleted_at","typeLabel":"string\u003cdate-time> | null"}},"required":["id","name","channel","category"],"uniqueKey":"template","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"template":{"id":"welcome_email","name":"Welcome Email","channel":"email","category":"transactional","version":1,"email":{"subject":"Welcome, {{user_name}}!","compiled_preview":"\u003cstring>","editor_mode":"visual","mjml_source":"\u003cmjml>\u003cmj-body>\u003cmj-section>\u003cmj-column>\u003cmj-text>Hello {{ contact.first_name }}\u003c/mj-text>\u003c/mj-column>\u003c/mj-section>\u003c/mj-body>\u003c/mjml>","sender_id":"sender_123","reply_to":"support@example.com","subject_preview":"Get started with your account","visual_editor_tree":{"type":"mjml","children":[]},"text":"\u003cstring>"},"web":{"content":{},"html":"\u003cstring>","plain_text":"\u003cstring>"},"template_macro_id":"\u003cstring>","integration_id":"\u003cstring>","test_data":{"user_name":"John Doe","action_url":"https://example.com/action"},"settings":{},"translations":{"fr":{"email":{"subject":"Bienvenue"}}},"created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z","deleted_at":"2023-11-07T05:31:56Z"}}}},"exampleType":"generated"}},"exampleType":"generated"},"44e05ea2-b001-4874-b772-72d2309263c3":{"description":"Bad request - validation failed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Error message","isRequired":true,"uniqueKey":"error","typeLabel":"string"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"editorModeChange":{"title":"editorModeChange","value":{"error":"cannot change editor mode: template was created in 'code' mode and its mode can't be changed; create a new template in 'visual' mode and copy the content with Import or Export MJML"}}},"exampleType":"examples"}},"exampleType":"examples"},"d4385d3a-6165-442f-a7ae-ad8cf59fe5c1":{"description":"Unauthorized - invalid or missing authentication token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Error message","isRequired":true,"uniqueKey":"error","typeLabel":"string"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"20b2e95d-d01f-456b-8ed4-e84171969e99":{"description":"Template not found, or deleted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Error message","isRequired":true,"uniqueKey":"error","typeLabel":"string"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":"Template not found"},"examples":{"Example":{"title":"Example","value":{"error":"Template not found"}}},"exampleType":"examples"}},"exampleType":"examples"},"7bd733e9-f9b7-4d0c-a17a-152900820479":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Error message","isRequired":true,"uniqueKey":"error","typeLabel":"string"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":"Failed to update template"},"examples":{"Example":{"title":"Example","value":{"error":"Failed to update template"}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"38e441f3-a953-4ac8-a3d6-02b27045cbd1":{"BearerAuth":{"type":"http","scheme":"bearer","description":"API token for authentication","scopes":[],"schemeName":"BearerAuth"}}},"servers":{"26d4277a-6e4c-4b4f-b10e-d4b74e4c1afe":{"url":"https://{notifuseDomain}","description":"Customer-specific Notifuse API server","variables":{"notifuseDomain":{"description":"Your unique Notifuse domain","default":"demo.notifuse.com"}}}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"API token for authentication","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"API token for authentication","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"}]},"originalFileLocation":"openapi.json"},"subdomain":"notifuse","siteName":"Notifuse Documentation","title":"Update a template - Notifuse Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-23T13:59:41.894Z","originalFileLocation":"api-reference/update-a-template.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"light\";if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Updates an existing template. Creates a new version of the template. The email\u0026#x27;s editor_mode must stay the one the template was created with; to switch between the visual editor and MJML code, create a new template. A deleted template cannot be updated.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Notifuse Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/notifuse/c0N0ayUOq9_6B61d/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/notifuse/c0N0ayUOq9_6B61d/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/notifuse/c0N0ayUOq9_6B61d/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/notifuse/c0N0ayUOq9_6B61d/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/notifuse/c0N0ayUOq9_6B61d/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/notifuse/c0N0ayUOq9_6B61d/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/notifuse/c0N0ayUOq9_6B61d/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/notifuse/c0N0ayUOq9_6B61d/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/notifuse/c0N0ayUOq9_6B61d/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Update a template - Notifuse Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Updates an existing template. Creates a new version of the template. The email\u0026#x27;s editor_mode must stay the one the template was created with; to switch between the visual editor and MJML code, create a new template. A deleted template cannot be updated.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Notifuse Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.notifuse.com/api-reference/update-a-template\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://notifuse.mintlify.app/_mintlify/api/og/v2?division=Templates\u0026amp;title=Update+a+template\u0026amp;description=Updates+an+existing+template.+Creates+a+new+version+of+the+template.+The+email%27s+%60editor_mode%60+must+stay+the+one+the+template+was+created+with%3B+to+switch+betwee\u0026amp;theme=2416c428fba7698fa1a23c53\u0026amp;signature=b80edd37d2250cb69beb72dfaba9c44c1326bb95a6951e34177a6ff2e4d0a783\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Update a template - Notifuse Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Updates an existing template. Creates a new version of the template. The email\u0026#x27;s editor_mode must stay the one the template was created with; to switch between the visual editor and MJML code, create a new template. A deleted template cannot be updated.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://notifuse.mintlify.app/_mintlify/api/og/v2?division=Templates\u0026amp;title=Update+a+template\u0026amp;description=Updates+an+existing+template.+Creates+a+new+version+of+the+template.+The+email%27s+%60editor_mode%60+must+stay+the+one+the+template+was+created+with%3B+to+switch+betwee\u0026amp;theme=2416c428fba7698fa1a23c53\u0026amp;signature=b80edd37d2250cb69beb72dfaba9c44c1326bb95a6951e34177a6ff2e4d0a783\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/notifuse/c0N0ayUOq9_6B61d/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Notifuse Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#7763F1\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.notifuse.com/api-reference/update-a-template\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/update-a-template.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.notifuse.com/#organization\",\"name\":\"Notifuse Documentation\",\"url\":\"https://docs.notifuse.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/notifuse/Gw4P7NadUImyvZfw/assets/logo/logo-small.png?fit=max\u0026auto=format\u0026n=Gw4P7NadUImyvZfw\u0026q=85\u0026s=3f27c94b7162528f7c2d50f0d0dffdc4\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.notifuse.com#website\",\"name\":\"Notifuse Documentation\",\"url\":\"https://docs.notifuse.com\",\"publisher\":{\"@id\":\"https://docs.notifuse.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.notifuse.com/api-reference/update-a-template#webpage\",\"url\":\"https://docs.notifuse.com/api-reference/update-a-template\",\"name\":\"Update a template\",\"description\":\"Updates an existing template. Creates a new version of the template. The email's editor_mode must stay the one the template was created with; to switch between the visual editor and MJML code, create a new template. A deleted template cannot be updated.\",\"dateModified\":\"2026-10-23T13:59:41.894Z\",\"isPartOf\":{\"@id\":\"https://docs.notifuse.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.notifuse.com/api-reference/update-a-template#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.notifuse.com/api-reference/update-a-template#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Templates\",\"item\":\"https://docs.notifuse.com/api-reference/list-templates\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Update a template\",\"item\":\"https://docs.notifuse.com/api-reference/update-a-template\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.notifuse.com/api-reference/update-a-template#apireference\",\"headline\":\"Update a template\",\"name\":\"Update a template\",\"description\":\"Updates an existing template. Creates a new version of the template. The email's editor_mode must stay the one the template was created with; to switch between the visual editor and MJML code, create a new template. A deleted template cannot be updated.\",\"url\":\"https://docs.notifuse.com/api-reference/update-a-template\",\"mainEntityOfPage\":{\"@id\":\"https://docs.notifuse.com/api-reference/update-a-template#webpage\"},\"dateModified\":\"2026-10-23T13:59:41.894Z\",\"publisher\":{\"@id\":\"https://docs.notifuse.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.notifuse.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Notifuse Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Notifuse Documentation","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":""}]},{"tab":"Self-hosting","pages":[{"title":"Self-hosting","href":"/self-hosting/installation"}]},{"tab":"API Reference","groups":[{"group":"Authentication","pages":[{"title":"Root user programmatic signin","deprecated":null,"version":null,"openapi":"/openapi.json post /api/user.rootSignin","href":"/api-reference/authentication/root-user-programmatic-signin"}]},{"group":"Transactional","pages":[{"title":"Send a transactional notification","deprecated":null,"version":null,"openapi":"/openapi.json post /api/transactional.send","href":"/api-reference/send-a-transactional-notification"}]},{"group":"Contacts","pages":[{"title":"List contacts with filtering and pagination","deprecated":null,"version":null,"openapi":"/openapi.json get /api/contacts.list","href":"/api-reference/list-contacts-with-filtering-and-pagination"},{"title":"Count contacts in a workspace","deprecated":null,"version":null,"openapi":"/openapi.json get /api/contacts.count","href":"/api-reference/count-contacts-in-a-workspace"},{"title":"Create or update a contact","deprecated":null,"version":null,"openapi":"/openapi.json post /api/contacts.upsert","href":"/api-reference/create-or-update-a-contact"},{"title":"Get a contact by email address","deprecated":null,"version":null,"openapi":"/openapi.json get /api/contacts.getByEmail","href":"/api-reference/get-a-contact-by-email-address"},{"title":"Get a contact by external ID","deprecated":null,"version":null,"openapi":"/openapi.json get /api/contacts.getByExternalID","href":"/api-reference/get-a-contact-by-external-id"},{"title":"Batch import contacts","deprecated":null,"version":null,"openapi":"/openapi.json post /api/contacts.import","href":"/api-reference/batch-import-contacts"},{"title":"Delete a contact","deprecated":null,"version":null,"openapi":"/openapi.json post /api/contacts.delete","href":"/api-reference/delete-a-contact"}]},{"group":"Lists","pages":[{"title":"Update contact list subscription status","deprecated":null,"version":null,"openapi":"/openapi.json post /api/contactLists.updateStatus","href":"/api-reference/update-contact-list-subscription-status"},{"title":"Subscribe to email lists","deprecated":null,"version":null,"openapi":"/openapi.json post /subscribe","href":"/api-reference/subscribe-to-email-lists"},{"title":"Subscribe to email lists (authenticated)","deprecated":null,"version":null,"openapi":"/openapi.json post /api/lists.subscribe","href":"/api-reference/subscribe-to-email-lists-authenticated"}]},{"group":"Custom Events","pages":[{"title":"Import custom events","deprecated":null,"version":null,"openapi":"/openapi.json post /api/customEvents.import","href":"/api-reference/import-custom-events"}]},{"group":"Web Analytics","pages":[{"title":"Ingest a web analytics beat","deprecated":null,"version":null,"openapi":"/openapi.json post /track","href":"/api-reference/web-analytics/ingest-a-web-analytics-beat"},{"title":"Replace the workspace's web analytics settings","deprecated":null,"version":null,"openapi":"/openapi.json post /api/workspaces.setWebAnalyticsSettings","href":"/api-reference/web-analytics/replace-the-workspaces-web-analytics-settings"},{"title":"Start an attribution backfill","deprecated":null,"version":null,"openapi":"/openapi.json post /api/webAnalytics.backfillStart","href":"/api-reference/web-analytics/start-an-attribution-backfill"},{"title":"Get the latest backfill run","deprecated":null,"version":null,"openapi":"/openapi.json post /api/webAnalytics.backfillStatus","href":"/api-reference/web-analytics/get-the-latest-backfill-run"},{"title":"Cancel the in-flight backfill run","deprecated":null,"version":null,"openapi":"/openapi.json post /api/webAnalytics.backfillCancel","href":"/api-reference/web-analytics/cancel-the-in-flight-backfill-run"},{"title":"List annotations","deprecated":null,"version":null,"openapi":"/openapi.json get /api/annotations.list","href":"/api-reference/web-analytics/list-annotations"},{"title":"Get an annotation","deprecated":null,"version":null,"openapi":"/openapi.json get /api/annotations.get","href":"/api-reference/web-analytics/get-an-annotation"},{"title":"Create an annotation","deprecated":null,"version":null,"openapi":"/openapi.json post /api/annotations.create","href":"/api-reference/web-analytics/create-an-annotation"},{"title":"Update an annotation","deprecated":null,"version":null,"openapi":"/openapi.json post /api/annotations.update","href":"/api-reference/web-analytics/update-an-annotation"},{"title":"Delete an annotation","deprecated":null,"version":null,"openapi":"/openapi.json post /api/annotations.delete","href":"/api-reference/web-analytics/delete-an-annotation"}]},{"group":"Broadcasts","pages":[{"title":"List broadcasts","deprecated":null,"version":null,"openapi":"/openapi.json get /api/broadcasts.list","href":"/api-reference/list-broadcasts"},{"title":"Get a broadcast","deprecated":null,"version":null,"openapi":"/openapi.json get /api/broadcasts.get","href":"/api-reference/get-a-broadcast"},{"title":"Create a broadcast","deprecated":null,"version":null,"openapi":"/openapi.json post /api/broadcasts.create","href":"/api-reference/create-a-broadcast"},{"title":"Update a broadcast","deprecated":null,"version":null,"openapi":"/openapi.json post /api/broadcasts.update","href":"/api-reference/update-a-broadcast"},{"title":"Schedule a broadcast","deprecated":null,"version":null,"openapi":"/openapi.json post /api/broadcasts.schedule","href":"/api-reference/schedule-a-broadcast"},{"title":"Pause a broadcast","deprecated":null,"version":null,"openapi":"/openapi.json post /api/broadcasts.pause","href":"/api-reference/pause-a-broadcast"},{"title":"Resume a broadcast","deprecated":null,"version":null,"openapi":"/openapi.json post /api/broadcasts.resume","href":"/api-reference/resume-a-broadcast"},{"title":"Cancel a broadcast","deprecated":null,"version":null,"openapi":"/openapi.json post /api/broadcasts.cancel","href":"/api-reference/cancel-a-broadcast"},{"title":"Send broadcast to individual","deprecated":null,"version":null,"openapi":"/openapi.json post /api/broadcasts.sendToIndividual","href":"/api-reference/send-broadcast-to-individual"},{"title":"Delete a broadcast","deprecated":null,"version":null,"openapi":"/openapi.json post /api/broadcasts.delete","href":"/api-reference/delete-a-broadcast"},{"title":"Get A/B test results","deprecated":null,"version":null,"openapi":"/openapi.json get /api/broadcasts.getTestResults","href":"/api-reference/get-ab-test-results"},{"title":"Select winning A/B test variation","deprecated":null,"version":null,"openapi":"/openapi.json post /api/broadcasts.selectWinner","href":"/api-reference/select-winning-ab-test-variation"}]},{"group":"Templates","pages":[{"title":"List templates","deprecated":null,"version":null,"openapi":"/openapi.json get /api/templates.list","href":"/api-reference/list-templates"},{"title":"Get a template","deprecated":null,"version":null,"openapi":"/openapi.json get /api/templates.get","href":"/api-reference/get-a-template"},{"title":"Create a template","description":"Creates a new template. Each template must have a channel (email or web) with corresponding channel-specific content.","deprecated":null,"version":null,"openapi":"/openapi.json post /api/templates.create","href":"/api-reference/create-a-template"},{"title":"Update a template","deprecated":null,"version":null,"openapi":"/openapi.json post /api/templates.update","href":"/api-reference/update-a-template"},{"title":"Delete a template","description":"Soft-deletes a template: it disappears from `templates.list` and can no longer be updated, but every version is kept, because messages already sent (message history, broadcast reports) are rendered from them. `templates.get` still returns it, with `deleted_at` set. Its id stays reserved: creating a template with the same id is refused.","deprecated":null,"version":null,"openapi":"/openapi.json post /api/templates.delete","href":"/api-reference/delete-a-template"},{"title":"Compile template","deprecated":null,"version":null,"openapi":"/openapi.json post /api/templates.compile","href":"/api-reference/compile-template"}]},{"group":"Blog","pages":[{"title":"List blog categories","deprecated":null,"version":null,"openapi":"/openapi.json get /api/blogCategories.list","href":"/api-reference/blog/list-blog-categories"},{"title":"Get a blog category","deprecated":null,"version":null,"openapi":"/openapi.json get /api/blogCategories.get","href":"/api-reference/blog/get-a-blog-category"},{"title":"Create a blog category","deprecated":null,"version":null,"openapi":"/openapi.json post /api/blogCategories.create","href":"/api-reference/blog/create-a-blog-category"},{"title":"Update a blog category","deprecated":null,"version":null,"openapi":"/openapi.json post /api/blogCategories.update","href":"/api-reference/blog/update-a-blog-category"},{"title":"Delete a blog category","deprecated":null,"version":null,"openapi":"/openapi.json post /api/blogCategories.delete","href":"/api-reference/blog/delete-a-blog-category"},{"title":"List blog posts","deprecated":null,"version":null,"openapi":"/openapi.json get /api/blogPosts.list","href":"/api-reference/blog/list-blog-posts"},{"title":"Get a blog post","deprecated":null,"version":null,"openapi":"/openapi.json get /api/blogPosts.get","href":"/api-reference/blog/get-a-blog-post"},{"title":"Create a blog post","deprecated":null,"version":null,"openapi":"/openapi.json post /api/blogPosts.create","href":"/api-reference/blog/create-a-blog-post"},{"title":"Update a blog post","deprecated":null,"version":null,"openapi":"/openapi.json post /api/blogPosts.update","href":"/api-reference/blog/update-a-blog-post"},{"title":"Delete a blog post","deprecated":null,"version":null,"openapi":"/openapi.json post /api/blogPosts.delete","href":"/api-reference/blog/delete-a-blog-post"},{"title":"Publish a blog post","deprecated":null,"version":null,"openapi":"/openapi.json post /api/blogPosts.publish","href":"/api-reference/blog/publish-a-blog-post"},{"title":"Unpublish a blog post","deprecated":null,"version":null,"openapi":"/openapi.json post /api/blogPosts.unpublish","href":"/api-reference/blog/unpublish-a-blog-post"},{"title":"List blog theme versions","deprecated":null,"version":null,"openapi":"/openapi.json get /api/blogThemes.list","href":"/api-reference/blog/list-blog-theme-versions"},{"title":"Get a blog theme version","deprecated":null,"version":null,"openapi":"/openapi.json get /api/blogThemes.get","href":"/api-reference/blog/get-a-blog-theme-version"},{"title":"Get the published blog theme","deprecated":null,"version":null,"openapi":"/openapi.json get /api/blogThemes.getPublished","href":"/api-reference/blog/get-the-published-blog-theme"},{"title":"Create a blog theme version","deprecated":null,"version":null,"openapi":"/openapi.json post /api/blogThemes.create","href":"/api-reference/blog/create-a-blog-theme-version"},{"title":"Update a blog theme version","deprecated":null,"version":null,"openapi":"/openapi.json post /api/blogThemes.update","href":"/api-reference/blog/update-a-blog-theme-version"},{"title":"Publish a blog theme version","deprecated":null,"version":null,"openapi":"/openapi.json post /api/blogThemes.publish","href":"/api-reference/blog/publish-a-blog-theme-version"}]},{"group":"Webhooks","pages":[{"title":"Create a webhook subscription","deprecated":null,"version":null,"openapi":"/openapi.json post /api/webhookSubscriptions.create","href":"/api-reference/create-a-webhook-subscription"},{"title":"List webhook subscriptions","deprecated":null,"version":null,"openapi":"/openapi.json get /api/webhookSubscriptions.list","href":"/api-reference/list-webhook-subscriptions"},{"title":"Get a webhook subscription","deprecated":null,"version":null,"openapi":"/openapi.json get /api/webhookSubscriptions.get","href":"/api-reference/get-a-webhook-subscription"},{"title":"Update a webhook subscription","deprecated":null,"version":null,"openapi":"/openapi.json post /api/webhookSubscriptions.update","href":"/api-reference/update-a-webhook-subscription"},{"title":"Delete a webhook subscription","deprecated":null,"version":null,"openapi":"/openapi.json post /api/webhookSubscriptions.delete","href":"/api-reference/delete-a-webhook-subscription"},{"title":"Toggle webhook subscription enabled state","deprecated":null,"version":null,"openapi":"/openapi.json post /api/webhookSubscriptions.toggle","href":"/api-reference/toggle-webhook-subscription-enabled-state"},{"title":"Regenerate webhook secret","deprecated":null,"version":null,"openapi":"/openapi.json post /api/webhookSubscriptions.regenerateSecret","href":"/api-reference/regenerate-webhook-secret"},{"title":"Get webhook delivery history","deprecated":null,"version":null,"openapi":"/openapi.json get /api/webhookSubscriptions.deliveries","href":"/api-reference/get-webhook-delivery-history"},{"title":"Send a test webhook","deprecated":null,"version":null,"openapi":"/openapi.json post /api/webhookSubscriptions.test","href":"/api-reference/send-a-test-webhook"},{"title":"List available event types","deprecated":null,"version":null,"openapi":"/openapi.json get /api/webhookSubscriptions.eventTypes","href":"/api-reference/list-available-event-types"}]},{"group":"Audit logs","pages":[{"title":"List audit logs","deprecated":null,"version":null,"openapi":"/openapi.json get /api/auditLogs.list","href":"/api-reference/audit-logs/list-audit-logs"},{"title":"Get an audit log entry","deprecated":null,"version":null,"openapi":"/openapi.json get /api/auditLogs.get","href":"/api-reference/audit-logs/get-an-audit-log-entry"},{"title":"List audit actions","deprecated":null,"version":null,"openapi":"/openapi.json get /api/auditLogs.actions","href":"/api-reference/audit-logs/list-audit-actions"},{"title":"Export audit logs","deprecated":null,"version":null,"openapi":"/openapi.json post /api/auditLogs.export","href":"/api-reference/audit-logs/export-audit-logs"},{"title":"Set the workspace audit log retention","deprecated":null,"version":null,"openapi":"/openapi.json post /api/workspaces.setAuditLogSettings","href":"/api-reference/audit-logs/set-the-workspace-audit-log-retention"}]}]},{"tab":"Cloud","href":"https://cloud.notifuse.com"}]},"title":"Update a template - Notifuse Documentation","buildId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","deploymentId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-26-lDe7V.js","utils-CWQmgYtH.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-4-Aw3rSD.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-C2zjXYA5.js","snippetPresets-DFmpFA7C.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-FJpQavWq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-D_GvPF7k.js","shallow-Bs2ZB0NO.js","getApiPlaygroundDisplay-DCcqJJk-.js","CodeSnippet-DzDxawVe.js","CodeSnippets-aUr7fU-7.js","Page-CT9uE8Ip.js","getPastedJson-Y1fKsj_I.js","icon-DI4zTsDr.js","MethodPill-C0nDlmSQ.js","DuplicateIcon-NUXbx2nQ.js","createIcon-BdTHrPAi.js","DynamicMarkdown-CtpgKJwj.js","SectionHeading-B3x35tOt.js","axios-vUo_bRtp.js","Markdown-3OmurJMP.js","clsx-DMKzROTp.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-1ms6tsT-.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Ke9xIMFx.js"]}