Step-by-step guide to creating, editing, testing, and managing SuprSend notification templates across email, SMS, push, Slack, WhatsApp, and inbox channels.
From the Templates page - go to Templates in the sidebar and click + New Template. You’ll link it to a workflow later.
From a workflow - click Create Template inside a delivery node in the workflow builder. The template is automatically linked to that workflow and its name and slug are pre-filled from the workflow and node names. This is the fastest path when building a new notification from scratch.
1
Click + New Template
From the Templates page or a workflow node, open the creation modal.
Create Template - Name and Slug
Enter a Name (display label, changeable later) and a Slug (the identifier your workflow uses to reference this template - auto-derived from the name, cannot be changed after creation). Renaming the template later doesn’t affect the slug, so existing workflows keep working.
2
Pick channels
Select the channels you want to send on. You can add more channels later by clicking the + tab in the editor, or remove a channel from the channel’s three-dot menu.
The editor opens for your first channel. Each channel has its own editor with a live device preview on the right. Click the channel tabs at the top to switch between them.
View mode (default) - shows the published version, read-only.
Edit mode - click Edit to open the draft. Content auto-saves as you type. Live traffic is never affected until you commit. If you exit without committing, your draft is saved - you can come back and pick up where you left off.
For channel-specific fields and editor guides, see:
The left panel has a {} tab - the Variables panel. This is where you set up all the data your template uses. It powers auto-suggestions, the live preview, and the test flow. Set this up before writing variables in your content.
Variables panel
Input PayloadThis is the data your workflow trigger sends - order details, event info, URLs, etc. Paste a sample JSON that matches the shape of your actual trigger payload. For example:
Use these in your template as {{order_id}}, {{order.address.city}}, {{{tracking_url}}} (triple braces for URLs to avoid escaping &, ?, =).Toggle Enable batching to preview batched/digest content - this adds $batched_events and $batched_events_count to your data context.You can also click Pre-fill from last workflow run (if the template is linked to a workflow) to auto-populate with real data from the most recent trigger.RecipientSearch for a user by name, email, or distinct ID. Their profile properties load into $recipient - accessible in your template as:
{{$recipient.name}} - user’s name
{{$recipient.email}} - user’s email
{{$recipient.phone}} - user’s phone number
{{$recipient.distinct_id}} - user’s unique ID
Any custom property you’ve set on the user profile
This is the person who receives the notification. In the live preview, selecting a recipient renders the template with their actual data - so you can see exactly what they’d receive.
Use $recipient in templates, not $user. Both refer to the same data, but $recipient is the standard.
TenantSelect a tenant from the dropdown. Its properties load into $tenant - accessible as:
{{$tenant.name}} - tenant’s display name
{{$tenant.logo}} - tenant’s logo URL
{{$tenant.primary_color}} - brand colour (used in email Tenant blocks)
{{$tenant.properties.address}} - custom tenant properties (address, support email, etc.)
{{$tenant.$hosted_preference_url}} - hosted unsubscribe/preference page link
{{$tenant.$embedded_preference_url}} - embedded preference widget link
If your template uses tenant branding (logo in email header, brand name in SMS, etc.), selecting a tenant in the preview shows you exactly how that tenant’s notifications look.ActorThe actor is the person who performed the action that triggered the notification - separate from the recipient. For example: “Alice commented on Bob’s post” - Alice is the $actor, Bob is the $recipient.
{{$actor.name}} - actor’s name
{{$actor.email}} - actor’s email
Actor data is only available when your workflow trigger includes an actor. If no actor is passed, $actor variables render as empty.
Once your data is set up, type {{ in any text field - a dropdown shows all available variables grouped by source (Input Payload, Recipient, Actor, Tenant). Pick one, and it renders instantly in the preview. Variables with missing values are highlighted in red.In the Email Design Editor, use the Merge Tags button in the toolbar instead.For advanced logic (conditionals, loops, date formatting), see Handlebars Helpers. For Slack and MS Teams (JSONNET syntax), see JSONNET Templates.The live preview on the right updates as you type. Select different Recipients and Tenants in the Variables panel to see how the template renders for different users and brands.
Click Commit in the top bar to publish your draft. Add an optional description. All future workflow triggers immediately use the new content.For WhatsApp and SMS (DLT), committing puts the version into Approval Pending - it goes live only after vendor approval.
Once committed, the template is ready to be used. Add it to a workflow delivery node by referencing its slug. Every time the workflow triggers, SuprSend renders the template with the trigger payload and sends it to the recipient. You can copy the slug from the clipboard icon next to the template name.
Send a real notification to a real device to verify everything looks right end-to-end. In the editor, Test sends your current draft; from the live view, it sends the live version.Click the Test button in the top-right corner.
Need a test user? You need a user with at least one channel identity (email, phone number, device token). Create one from the Users page, via API, or ask Agent in the dashboard to create one.
Test one channel
Test all channels
Pick the Channel (for example, Email, SMS).
Enter a Recipient (email or distinct ID).
Pick the Notification Category (required, defaults to Transactional) — determines which vendor config is used (for example, transactional vs promotional SMS vendor).
Optionally pick a Tenant — loads that tenant’s branding into $tenant and selects the matching tenant variant. Leave blank to use defaults.
Click Send Test.
Test one variant on one channel
Enter a Recipient - the panel shows every channel that user has identities for.
Check the channels to include.
Pick the Notification Category (required, defaults to Transactional) and optionally a Tenant.
Click Send Test.
Test all channels at once
After sending, go to Logs to check delivery status. If a variable was missing or a channel failed to render, you’ll see the exact error there.
WhatsApp and SMS (DLT) templates must be committed and approved before you can test.
Every template starts with a default variant. That’s enough for most use cases. Add more variants only when you need different content for different audiences:
Languages — a Spanish variant for Spanish-speaking users, Hindi for Hindi. SuprSend auto-selects based on the recipient’s preferred language. See Multi-lingual Templates.
Tenants — Uber’s users see Uber branding, Acme’s users see Acme’s. One template serves all tenants.
Payload conditions — show different content based on trigger data (for example, plan == "pro" gets a premium message).
Non-default variants are evaluated in order - the first one whose conditions match is sent. If nothing matches, the default variant (always at the top) is sent as the fallback. Name them descriptively: uber-en, acme-es, default-hi.Full guide: Template Variants.
Click Clone Template to copy the entire template (all channels, variants, content) to the same or a different workspace — for example, from Staging to Production.
Metadata - click the info icon next to the template name to edit Name, Description, and Tags. The Slug is immutable after creation.Finding templates - the Templates listing page shows all templates with status, channels, linked workflow, and last updated. Use Filters and Sort to narrow by channel, tag, status, or templates you edited. The Approvals tab shows pending WhatsApp/DLT approvals.Archive - archive unused templates from the overflow menu. Cannot be recovered.API and CLI - manage templates programmatically via the Template Management API or CLI.
{"docsConfig":{"theme":"maple","$schema":"https://mintlify.com/docs.json","name":"SuprSend: API-first notification infrastructure","colors":{"primary":"#2E70E8","light":"#63A3F7","dark":"#2E70E8"},"logo":"https://mintcdn.com/suprsend/CMaQBA3E8wM1DyFj/images/suprsend-logo.svg?fit=max\u0026auto=format\u0026n=CMaQBA3E8wM1DyFj\u0026q=85\u0026s=f325b9764c629a0b488476db369b8d47","favicon":"https://mintcdn.com/suprsend/5H8hv-jDy8OaCsyX/favicon.svg?fit=max\u0026auto=format\u0026n=5H8hv-jDy8OaCsyX\u0026q=85\u0026s=e9c88c84e18f0fd4a64adb33f5fa3603","api":{"openapi":"openapi.yaml"},"background":{"decoration":"windows"},"navbar":{"links":[{"href":"mailto:support@suprsend.com","label":"Contact Us"}],"primary":{"type":"button","label":"Get Started","href":"https://app.suprsend.com"}},"footer":{"socials":{"x":"https://x.com/suprsend","github":"https://github.com/suprsend","linkedin":"https://linkedin.com/company/suprsend","youtube":"https://youtube.com/@suprsend"}},"seo":{"indexing":"all"},"fonts":{"family":"Inter"},"styling":{"codeblocks":"system","latex":true},"integrations":{"ga4":{"measurementId":"G-PPDYBESP2L"},"gtm":{"tagId":"GTM-T6W3P8RG"},"mixpanel":{"projectToken":"2febb9e078d777860c5624f2579507a7"}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"navigation":{"global":{"anchors":[{"anchor":"Community","icon":"slack","color":{"light":"#f59f0b","dark":"#f59f0b"},"href":"https://join.slack.com/t/suprsendcommunity/shared_invite/zt-3932rw936-XNWY1RC8bsffh4if4ZyoXQ"},{"anchor":"Trust Center","icon":"shield-halved","color":{"light":"#2564eb","dark":"#2564eb"},"href":"https://trust.suprsend.com"},{"anchor":"Platform Status","icon":"wifi","color":{"light":"#2564eb","dark":"#2564eb"},"href":"https://status.suprsend.com"},{"anchor":"Postman Collection","icon":"code","color":{"light":"#2564eb","dark":"#2564eb"},"href":"https://www.postman.com/suprsend/suprsend/collection/16bdmwa/suprsend-apis"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"suprsend","hasAudioNarration":false,"actualSubdomain":"suprsend","customDomains":["docs.suprsend.com"],"gitSource":{"type":"github","owner":"suprsend","repo":"documentation","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae333734c2492fe62cb5f9a","collectionId":"37278b68-1dc8-4a19-977b-205d552098f2","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae333734c2492fe62cb5f9a"},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae864d90047c384a18ee40b","clientVersion":"0.0.4054","searchFilterCounts":[{"language":"default","tag":"Documentation","count":151},{"language":"default","tag":"Developer Resources","count":105},{"language":"default","tag":"Management API","count":91},{"language":"default","tag":"API Reference","count":86},{"language":"default","tag":"SDKs and APIs","count":81},{"language":"default","tag":"SDKs","count":78},{"language":"default","tag":"CORE CONCEPTS","count":57},{"language":"default","tag":"CLI","count":50},{"language":"default","tag":"SuprSend Client SDK","count":43},{"language":"default","tag":"SuprSend Backend SDK","count":34}],"searchSettings":{"showContentSnippets":true}},"assistantConfig":{"deflection":{"enabled":true,"email":"support@suprsend.com","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"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":"full-page-search","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":"turbopuffer-dual-write","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},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"privacy":{"consentBanner":{"enabled":true}},"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"img{max-width:100%;height:auto}table{display:block}code,pre,table{overflow-x:auto;max-width:100%}@media (max-width:768px){img[width]{width:100%!important;max-width:100%!important;height:auto!important}pre{font-size:13px}}a.card[href=\"https://skills.sh/suprsend/skills\"]{position:relative}a.card[href=\"https://skills.sh/suprsend/skills\"]>img{position:absolute!important;top:1.25rem!important;left:1.5rem!important;width:1.5rem!important;height:1.5rem!important;max-width:1.5rem!important;max-height:1.5rem!important;min-height:1.5rem!important;object-fit:contain!important;z-index:1}a.card[href=\"https://skills.sh/suprsend/skills\"] .px-6.py-5{padding-top:3.25rem!important}a.card[href=\"https://skills.sh/suprsend/skills\"] h2{margin-top:0!important}[data-component-name=mermaid-controls-wrapper]{display:none!important}.mermaid .cluster-label,.mermaid .cluster-label p,.mermaid .edgeLabel,.mermaid .edgeLabel p,.mermaid .nodeLabel,.mermaid .nodeLabel p{color:#4d4d4d!important}.mermaid .cluster-label,.mermaid .edgeLabel,.mermaid .nodeLabel,.mermaid text{fill:#4d4d4d!important}.dark .mermaid .cluster-label,.dark .mermaid .cluster-label p,.dark .mermaid .edgeLabel,.dark .mermaid .edgeLabel p,.dark .mermaid .nodeLabel,.dark .mermaid .nodeLabel p{color:#ccc!important}.dark .mermaid .cluster-label,.dark .mermaid .edgeLabel,.dark .mermaid .nodeLabel,.dark .mermaid text{fill:#ccc!important}.changelog-page-content{padding:0 7rem}@media (max-width:768px){.changelog-page-content{padding:0 1rem}}.ss-flow{--ss-ink:#1f2937;--ss-muted:#6b7280;--ss-line:#e5e7eb;--ss-accent:#2e70e8;--ss-core-bg:#f5f8fe;--ss-core-line:#d4e2fb;--ss-arrow:#9ca3af;display:grid;grid-template-columns:minmax(0,1fr) 1.5rem minmax(0,2.1fr) 1.5rem minmax(0,1fr);align-items:center;margin:1.75rem 0 2rem;font-size:.875rem;line-height:1.4;color:var(--ss-ink)}.dark .ss-flow{--ss-ink:#e5e7eb;--ss-muted:#9ca3af;--ss-line:rgba(255, 255, 255, 0.12);--ss-accent:#63a3f7;--ss-core-bg:rgba(46, 112, 232, 0.1);--ss-core-line:rgba(99, 163, 247, 0.28);--ss-arrow:#6b7280}.ss-flow .ss-flow__label{margin:0 0 .5rem;font-size:.75rem;font-weight:600;color:var(--ss-muted)}.ss-flow .ss-flow__list{list-style:none;margin:0;padding:.5rem .75rem;border:1px solid var(--ss-line);border-radius:10px;font-size:.8125rem}.ss-flow .ss-flow__list li{margin:0;padding:.3125rem 0}.ss-flow .ss-flow__arrow{position:relative;height:1px;margin:1.25rem .25rem 0 .125rem;background:var(--ss-arrow)}.ss-flow .ss-flow__arrow::after{content:\"\";position:absolute;top:-4px;right:-1px;border-top:4.5px solid transparent;border-bottom:4.5px solid transparent;border-left:6px solid var(--ss-arrow)}.ss-flow .ss-flow__core{overflow:hidden;border:1px solid var(--ss-core-line);border-radius:14px;background:var(--ss-core-bg)}.ss-flow .ss-flow__label--core{margin:0;padding:.875rem 1rem 0;font-size:.875rem;color:var(--ss-accent)}.ss-flow .ss-flow__stages{list-style:none;margin:0;padding:.875rem 1rem 1rem}.ss-flow .ss-flow__stage{position:relative;margin:0;padding:0 0 1rem 1.5rem}.ss-flow .ss-flow__stage:last-child{padding-bottom:0}.ss-flow .ss-flow__stage::before{content:\"\";position:absolute;top:.3rem;left:0;z-index:1;width:.625rem;height:.625rem;border-radius:50%;background:var(--ss-accent)}.ss-flow .ss-flow__stage::after{content:\"\";position:absolute;top:.5rem;bottom:-.5rem;left:calc(.3125rem - 1px);width:2px;background:var(--ss-core-line)}.ss-flow .ss-flow__stage:last-child::after{display:none}.ss-flow .ss-flow__stage strong{display:block}.ss-flow .ss-flow__stage span{display:block;margin-top:.125rem;font-size:.8125rem;color:var(--ss-muted)}.ss-flow .ss-flow__logs{margin:0;padding:.625rem 1rem;border-top:1px dashed var(--ss-core-line);font-size:.8125rem;color:var(--ss-muted)}.ss-flow .ss-flow__logs strong,.ss-flow .ss-flow__stage strong{font-weight:600;color:var(--ss-ink)}@media (max-width:640px){.ss-flow{grid-template-columns:minmax(0,1fr)}.ss-flow .ss-flow__list{display:flex;flex-wrap:wrap;gap:0 1rem}.ss-flow .ss-flow__arrow{width:1px;height:1.25rem;margin:.5rem auto}.ss-flow .ss-flow__arrow::after{top:auto;right:auto;bottom:-1px;left:-4px;border-top:6px solid var(--ss-arrow);border-right:4.5px solid transparent;border-bottom:0;border-left:4.5px solid transparent}}"}],"page":{"pagePath":"docs/templates","slug":"/docs/templates","pageMetadata":{"title":"Creating \u0026 Managing Templates","description":"Step-by-step guide to creating, editing, testing, and managing SuprSend notification templates across email, SMS, push, Slack, WhatsApp, and inbox channels.","href":"/docs/templates"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Step-by-step guide to creating, editing, testing, and managing SuprSend notification templates across email, SMS, push, Slack, WhatsApp, and inbox channels.\"\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,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,hr:`hr`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Card,CardGroup,CodeBlock,Frame,Heading,Info,OptimizedImage,Step,Steps,Tab,Tabs,Warning}=_components;if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`create-a-template`,children:`Create a template`}),`\n`,_jsx(_components.p,{children:`There are two ways to create a template:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`From the Templates page`}),` - go to `,_jsx(_components.strong,{children:`Templates`}),` in the sidebar and click `,_jsx(_components.strong,{children:`+ New Template`}),`. You’ll link it to a workflow later.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`From a workflow`}),` - click `,_jsx(_components.strong,{children:`Create Template`}),` inside a delivery node in the `,_jsx(_components.a,{href:`/docs/workflows`,children:`workflow builder`}),`. The template is automatically linked to that workflow and its name and slug are pre-filled from the workflow and node names. This is the fastest path when building a new notification from scratch.`]}),`\n`]}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Click + New Template`,children:[_jsx(_components.p,{children:`From the Templates page or a workflow node, open the creation modal.`}),_jsx(Frame,{caption:`Create Template - Name and Slug`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-create-modal-new.png?fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=c2f9aaf5e8bbcadf750fde8f89ff3030`,\"data-og-width\":`982`,width:`982`,\"data-og-height\":`692`,height:`692`,\"data-path\":`images/docs/templates-create-modal-new.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-create-modal-new.png?w=280\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=207534016b7b31ba79309b4d9ee170a1 280w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-create-modal-new.png?w=560\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=926ca2ac799af9e8acf4002e769d6c9a 560w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-create-modal-new.png?w=840\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=4b85aa09a98fda4455402f14808e822e 840w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-create-modal-new.png?w=1100\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=4e66623674e012c03b7b2289a20b4c5b 1100w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-create-modal-new.png?w=1650\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=9eae66b0b592b669ff90642058970307 1650w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-create-modal-new.png?w=2500\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=4edfe2cbe4691d5919b7e0bef9016c42 2500w`})}),_jsxs(_components.p,{children:[`Enter a `,_jsx(_components.strong,{children:`Name`}),` (display label, changeable later) and a `,_jsx(_components.strong,{children:`Slug`}),` (the identifier your `,_jsx(_components.a,{href:`/docs/workflows`,children:`workflow`}),` uses to reference this template - auto-derived from the name, `,_jsx(_components.strong,{children:`cannot be changed after creation`}),`). Renaming the template later doesn’t affect the slug, so existing workflows keep working.`]})]}),_jsxs(Step,{title:`Pick channels`,children:[_jsxs(_components.p,{children:[`Select the channels you want to send on. You can add more channels later by clicking the `,_jsx(_components.strong,{children:`+`}),` tab in the editor, or remove a channel from the channel’s three-dot menu.`]}),_jsx(Frame,{caption:`Select channels`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-channel-selection.png?fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=4d0f7e26cbe05701f096133a4fd56adb`,\"data-og-width\":`1024`,width:`1024`,\"data-og-height\":`561`,height:`561`,\"data-path\":`images/docs/templates-channel-selection.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-channel-selection.png?w=280\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=84aab0decf33657fdf7b8e15b1610779 280w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-channel-selection.png?w=560\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=f1ca95552a75775b36d366be2ef9fbce 560w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-channel-selection.png?w=840\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=7553cc9e26320f2aaaf697236aed8d67 840w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-channel-selection.png?w=1100\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=935bc070ed0fa26fc1fc779bbf0ed108 1100w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-channel-selection.png?w=1650\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=ac042c682a53aa4bf917a5632beaa3c6 1650w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-channel-selection.png?w=2500\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=75458468bd757e0905088f596cca1042 2500w`})})]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`write-your-content`,children:`Write your content`}),`\n`,_jsx(_components.p,{children:`The editor opens for your first channel. Each channel has its own editor with a live device preview on the right. Click the channel tabs at the top to switch between them.`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`View mode`}),` (default) - shows the published version, read-only.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Edit mode`}),` - click `,_jsx(_components.strong,{children:`Edit`}),` to open the draft. Content auto-saves as you type. Live traffic is never affected until you commit. If you exit without committing, your draft is saved - you can come back and pick up where you left off.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`For channel-specific fields and editor guides, see:`}),`\n`,_jsxs(CardGroup,{cols:`3`,children:[_jsx(Card,{title:`Email`,icon:`envelope-dot`,iconType:`solid`,href:`/docs/email-template`,children:_jsx(_components.p,{children:`Designer, HTML, or plain text.`})}),_jsx(Card,{title:`SMS`,icon:`comment-sms`,iconType:`solid`,href:`/docs/sms-template`,children:_jsx(_components.p,{children:`Single text field. DLT for India.`})}),_jsx(Card,{title:`WhatsApp`,icon:`whatsapp`,iconType:`solid`,href:`/docs/whatsapp-template`,children:_jsx(_components.p,{children:`Header, body, footer, buttons.`})}),_jsx(Card,{title:`Android Push`,icon:`android`,iconType:`solid`,href:`/docs/android-push-template`,children:_jsx(_components.p,{children:`Title, body, image, buttons.`})}),_jsx(Card,{title:`iOS Push`,icon:`apple`,iconType:`solid`,href:`/docs/ios-push-template`,children:_jsx(_components.p,{children:`Title, body, image, action URL.`})}),_jsx(Card,{title:`Web Push`,icon:`mobile-screen`,iconType:`solid`,href:`/docs/web-push-template`,children:_jsx(_components.p,{children:`Title, body, image, buttons.`})}),_jsx(Card,{title:`In-App Inbox`,icon:`inbox-full`,iconType:`solid`,href:`/docs/in-app-inbox-template`,children:_jsx(_components.p,{children:`Cards with avatar, buttons, expiry.`})}),_jsx(Card,{title:`Slack`,icon:`slack`,iconType:`solid`,href:`/docs/slack-template`,children:_jsx(_components.p,{children:`Text or Block Kit (JSONNET).`})}),_jsx(Card,{title:`MS Teams`,icon:`windows`,iconType:`solid`,href:`/docs/ms-teams-template`,children:_jsx(_components.p,{children:`Markdown or Adaptive Card (JSONNET).`})})]}),`\n`,_jsx(Heading,{level:`3`,id:`the-variables-panel`,children:`The Variables panel`}),`\n`,_jsxs(_components.p,{children:[`The left panel has a `,_jsx(_components.code,{children:`{}`}),` tab - the `,_jsx(_components.strong,{children:`Variables panel`}),`. This is where you set up all the data your template uses. It powers auto-suggestions, the live preview, and the test flow. Set this up before writing variables in your content.`]}),`\n`,_jsx(Frame,{caption:`Variables panel`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-variables-panel-new.png?fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=68813266ff2dab7184310f2d5b7d7411`,\"data-og-width\":`724`,width:`724`,\"data-og-height\":`1024`,height:`1024`,\"data-path\":`images/docs/templates-variables-panel-new.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-variables-panel-new.png?w=280\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=cad25a278c403d2a9b99ad0c30177020 280w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-variables-panel-new.png?w=560\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=c1baad9b27125be2d852fff1e603a7ba 560w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-variables-panel-new.png?w=840\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=8c39425c7d7d02152040bd506d473818 840w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-variables-panel-new.png?w=1100\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=bcc2d11382559ab2526b95b694469a83 1100w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-variables-panel-new.png?w=1650\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=ae40dee085ee5dd2993dcd9bf3f8137d 1650w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-variables-panel-new.png?w=2500\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=587fe7f5d4eee0cae66b3268e0d6f2b6 2500w`})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Input Payload`})}),`\n`,_jsx(_components.p,{children:`This is the data your workflow trigger sends - order details, event info, URLs, etc. Paste a sample JSON that matches the shape of your actual trigger payload. For example:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`8`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"order_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"ORD-1234\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"order\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"total\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"$49.99\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"address\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"city\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"San Francisco\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"tracking_url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://yourapp.com/track/ORD-1234\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Use these in your template as `,_jsx(_components.code,{children:`{{order_id}}`}),`, `,_jsx(_components.code,{children:`{{order.address.city}}`}),`, `,_jsx(_components.code,{children:`{{{tracking_url}}}`}),` (triple braces for URLs to avoid escaping `,_jsx(_components.code,{children:`\u0026`}),`, `,_jsx(_components.code,{children:`?`}),`, `,_jsx(_components.code,{children:`=`}),`).`]}),`\n`,_jsxs(_components.p,{children:[`Toggle `,_jsx(_components.strong,{children:`Enable batching`}),` to preview `,_jsx(_components.a,{href:`/docs/batch`,children:`batched`}),`/`,_jsx(_components.a,{href:`/docs/digest`,children:`digest`}),` content - this adds `,_jsx(_components.code,{children:`$batched_events`}),` and `,_jsx(_components.code,{children:`$batched_events_count`}),` to your data context.`]}),`\n`,_jsxs(_components.p,{children:[`You can also click `,_jsx(_components.strong,{children:`Pre-fill from last workflow run`}),` (if the template is linked to a workflow) to auto-populate with real data from the most recent trigger.`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Recipient`})}),`\n`,_jsxs(_components.p,{children:[`Search for a user by name, email, or distinct ID. Their profile properties load into `,_jsx(_components.code,{children:`$recipient`}),` - accessible in your template as:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`{{$recipient.name}}`}),` - user’s name`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`{{$recipient.email}}`}),` - user’s email`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`{{$recipient.phone}}`}),` - user’s phone number`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`{{$recipient.distinct_id}}`}),` - user’s unique ID`]}),`\n`,_jsx(_components.li,{children:`Any custom property you’ve set on the user profile`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`This is the person who `,_jsx(_components.strong,{children:`receives`}),` the notification. In the live preview, selecting a recipient renders the template with their actual data - so you can see exactly what they’d receive.`]}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[`Use `,_jsx(_components.code,{children:`$recipient`}),` in templates, not `,_jsx(_components.code,{children:`$user`}),`. Both refer to the same data, but `,_jsx(_components.code,{children:`$recipient`}),` is the standard.`]})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Tenant`})}),`\n`,_jsxs(_components.p,{children:[`Select a `,_jsx(_components.a,{href:`/docs/tenants`,children:`tenant`}),` from the dropdown. Its properties load into `,_jsx(_components.code,{children:`$tenant`}),` - accessible as:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`{{$tenant.name}}`}),` - tenant’s display name`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`{{$tenant.logo}}`}),` - tenant’s logo URL`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`{{$tenant.primary_color}}`}),` - brand colour (used in email Tenant blocks)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`{{$tenant.properties.address}}`}),` - custom tenant properties (address, support email, etc.)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`{{$tenant.$hosted_preference_url}}`}),` - hosted unsubscribe/preference page link`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`{{$tenant.$embedded_preference_url}}`}),` - embedded preference widget link`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`If your template uses tenant branding (logo in email header, brand name in SMS, etc.), selecting a tenant in the preview shows you exactly how that tenant’s notifications look.`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Actor`})}),`\n`,_jsxs(_components.p,{children:[`The actor is the person who `,_jsx(_components.strong,{children:`performed the action`}),` that triggered the notification - separate from the recipient. For example: “Alice commented on Bob’s post” - Alice is the `,_jsx(_components.code,{children:`$actor`}),`, Bob is the `,_jsx(_components.code,{children:`$recipient`}),`.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`{{$actor.name}}`}),` - actor’s name`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`{{$actor.email}}`}),` - actor’s email`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Actor data is only available when your workflow trigger includes an `,_jsx(_components.code,{children:`actor`}),`. If no actor is passed, `,_jsx(_components.code,{children:`$actor`}),` variables render as empty.`]}),`\n`,_jsx(Heading,{level:`3`,id:`using-variables-in-content`,children:`Using variables in content`}),`\n`,_jsxs(_components.p,{children:[`Once your data is set up, type `,_jsx(_components.code,{children:`{{`}),` in any text field - a dropdown shows all available variables grouped by source (Input Payload, Recipient, Actor, Tenant). Pick one, and it renders instantly in the preview. Variables with missing values are highlighted in `,_jsx(_components.strong,{children:`red`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`In the Email Design Editor, use the `,_jsx(_components.strong,{children:`Merge Tags`}),` button in the toolbar instead.`]}),`\n`,_jsxs(_components.p,{children:[`For advanced logic (conditionals, loops, date formatting), see `,_jsx(_components.a,{href:`/docs/handlebars-helpers`,children:`Handlebars Helpers`}),`. For Slack and MS Teams (JSONNET syntax), see `,_jsx(_components.a,{href:`/docs/jsonnet-templates`,children:`JSONNET Templates`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.strong,{children:`live preview`}),` on the right updates as you type. Select different Recipients and Tenants in the Variables panel to see how the template renders for different users and brands.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`commit`,children:`Commit`}),`\n`,_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Commit`}),` in the top bar to publish your draft. Add an optional description. All future workflow triggers immediately use the new content.`]}),`\n`,_jsxs(_components.p,{children:[`For `,_jsx(_components.strong,{children:`WhatsApp`}),` and `,_jsx(_components.strong,{children:`SMS (DLT)`}),`, committing puts the version into `,_jsx(_components.strong,{children:`Approval Pending`}),` - it goes live only after vendor approval.`]}),`\n`,_jsx(Heading,{level:`3`,id:`using-the-template-in-a-workflow`,children:`Using the template in a workflow`}),`\n`,_jsxs(_components.p,{children:[`Once committed, the template is ready to be used. Add it to a `,_jsx(_components.a,{href:`/docs/workflows`,children:`workflow`}),` delivery node by referencing its `,_jsx(_components.strong,{children:`slug`}),`. Every time the workflow triggers, SuprSend renders the template with the trigger payload and sends it to the recipient. You can copy the slug from the clipboard icon next to the template name.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`test`,children:`Test`}),`\n`,_jsxs(_components.p,{children:[`Send a real notification to a real device to verify everything looks right end-to-end. In the editor, `,_jsx(_components.strong,{children:`Test`}),` sends your current `,_jsx(_components.strong,{children:`draft`}),`; from the live view, it sends the `,_jsx(_components.strong,{children:`live version`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Click the `,_jsx(_components.strong,{children:`Test`}),` button in the top-right corner.`]}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Need a test user?`}),` You need a user with at least one channel identity (email, phone number, device token). Create one from the `,_jsx(_components.a,{href:`https://app.suprsend.com/users`,children:`Users page`}),`, via `,_jsx(_components.a,{href:`/docs/users`,children:`API`}),`, or ask Agent in the dashboard to create one.`]})}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Test one channel`,id:`test-one-channel`,children:[_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Pick the `,_jsx(_components.strong,{children:`Channel`}),` (for example, Email, SMS).`]}),`\n`,_jsxs(_components.li,{children:[`Enter a `,_jsx(_components.strong,{children:`Recipient`}),` (email or distinct ID).`]}),`\n`,_jsxs(_components.li,{children:[`Pick the `,_jsx(_components.strong,{children:`Notification Category`}),` (required, defaults to `,_jsx(_components.strong,{children:`Transactional`}),`) — determines which `,_jsx(_components.a,{href:`/docs/vendors`,children:`vendor`}),` config is used (for example, transactional vs promotional SMS vendor).`]}),`\n`,_jsxs(_components.li,{children:[`Optionally pick a `,_jsx(_components.strong,{children:`Tenant`}),` — loads that tenant’s branding into `,_jsx(_components.code,{children:`$tenant`}),` and selects the matching tenant variant. Leave blank to use defaults.`]}),`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`Send Test`}),`.`]}),`\n`]}),_jsx(Frame,{caption:`Test one variant on one channel`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-test-variant.png?fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=ca3bc482c8822c95e735077f110e59ba`,\"data-og-width\":`781`,width:`781`,\"data-og-height\":`1024`,height:`1024`,\"data-path\":`images/docs/templates-test-variant.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-test-variant.png?w=280\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=a94624cf9e26153686508d9e377701ce 280w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-test-variant.png?w=560\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=0126ae13c1a5dd5b53a224a1ba868607 560w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-test-variant.png?w=840\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=64db472cbdebd98d3cc5c9dec35e525e 840w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-test-variant.png?w=1100\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=9e8d740575f49f3f27703d2473d7d5c9 1100w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-test-variant.png?w=1650\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=41805b22dc671740c3531a5fb7143857 1650w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-test-variant.png?w=2500\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=c468dff7155f7474e6a4175358f1713c 2500w`})})]}),_jsxs(Tab,{title:`Test all channels`,id:`test-all-channels`,children:[_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Enter a `,_jsx(_components.strong,{children:`Recipient`}),` - the panel shows every channel that user has identities for.`]}),`\n`,_jsx(_components.li,{children:`Check the channels to include.`}),`\n`,_jsxs(_components.li,{children:[`Pick the `,_jsx(_components.strong,{children:`Notification Category`}),` (required, defaults to `,_jsx(_components.strong,{children:`Transactional`}),`) and optionally a `,_jsx(_components.strong,{children:`Tenant`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`Send Test`}),`.`]}),`\n`]}),_jsx(Frame,{caption:`Test all channels at once`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-test-group.png?fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=83e09091a59e4582b985f5119358a477`,\"data-og-width\":`789`,width:`789`,\"data-og-height\":`1024`,height:`1024`,\"data-path\":`images/docs/templates-test-group.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-test-group.png?w=280\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=88428f23e0c875bea99ad26631adfa4c 280w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-test-group.png?w=560\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=00058b0d55d72686b1355a22fef62b70 560w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-test-group.png?w=840\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=50fd0babbfa2c497c0b702172f52125e 840w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-test-group.png?w=1100\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=8474e95600b14d7227ed97501f6313f1 1100w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-test-group.png?w=1650\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=f454512759cc8dfaf8fc3e9523ffcb90 1650w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-test-group.png?w=2500\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=54a3de3abdcfcc16af7f6cd8bb29f237 2500w`})})]})]}),`\n`,_jsxs(_components.p,{children:[`After sending, go to `,_jsx(_components.strong,{children:_jsx(_components.a,{href:`/docs/logging`,children:`Logs`})}),` to check delivery status. If a variable was missing or a channel failed to render, you’ll see the exact error there.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`WhatsApp`}),` and `,_jsx(_components.strong,{children:`SMS (DLT)`}),` templates must be committed and approved before you can test.`]})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`version-history`,children:`Version history`}),`\n`,_jsxs(_components.p,{children:[`Click the `,_jsx(_components.strong,{children:`History`}),` tab (clock icon) in the left panel to see all published versions - who committed, when, and what changed per channel.`]}),`\n`,_jsx(Frame,{caption:`Version history`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-version-history-new.png?fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=881170676dcd2b9fe420ff8f378bed19`,\"data-og-width\":`1024`,width:`1024`,\"data-og-height\":`204`,height:`204`,\"data-path\":`images/docs/templates-version-history-new.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-version-history-new.png?w=280\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=ee1f234a12f0785f78da201029abcd8d 280w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-version-history-new.png?w=560\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=e744a709e87213124bebf6cbb1b49855 560w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-version-history-new.png?w=840\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=a104ae083d46f84e043c670fbde28dcd 840w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-version-history-new.png?w=1100\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=5f08ab8d8ba3cbf372b89ed168b0fe68 1100w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-version-history-new.png?w=1650\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=63bc1103b35765a892ff2cdf7db6a83f 1650w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-version-history-new.png?w=2500\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=d13b246779f415a500656799cfa8a8fc 2500w`})}),`\n`,_jsx(_components.p,{children:`There is no rollback button in the dashboard. To go back to an older version, copy its content into the draft and commit it as a new version.`}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`variants`,children:`Variants`}),`\n`,_jsxs(_components.p,{children:[`Every template starts with a `,_jsx(_components.strong,{children:`default`}),` variant. That’s enough for most use cases. Add more variants only when you need different content for different audiences:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Languages`}),` — a Spanish variant for Spanish-speaking users, Hindi for Hindi. SuprSend auto-selects based on the recipient’s preferred language. See `,_jsx(_components.a,{href:`/docs/multi-lingual-template`,children:`Multi-lingual Templates`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Tenants`}),` — Uber’s users see Uber branding, Acme’s users see Acme’s. One template serves all tenants.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Payload conditions`}),` — show different content based on trigger data (for example, `,_jsx(_components.code,{children:`plan == \"pro\"`}),` gets a premium message).`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Non-default variants are evaluated in order - the first one whose conditions match is sent. If nothing matches, the `,_jsx(_components.strong,{children:`default`}),` variant (always at the top) is sent as the fallback. Name them descriptively: `,_jsx(_components.code,{children:`uber-en`}),`, `,_jsx(_components.code,{children:`acme-es`}),`, `,_jsx(_components.code,{children:`default-hi`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Full guide: `,_jsx(_components.a,{href:`/docs/template-variants`,children:`Template Variants`}),`.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`import-content`,children:`Import content`}),`\n`,_jsxs(_components.p,{children:[`Click the `,_jsx(_components.strong,{children:`Import`}),` button (arrow icon) in the editor toolbar to copy content from:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`This template`}),` — another variant (for example, copy default English into a new Spanish variant, then translate).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Other templates`}),` — any template in your workspace. Pick a variant and preview before importing.`]}),`\n`]}),`\n`,_jsx(Frame,{caption:`Import content`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-editor-toolbar-import-new.png?fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=2079b5942e206d19222418e62611f7fe`,\"data-og-width\":`674`,width:`674`,\"data-og-height\":`398`,height:`398`,\"data-path\":`images/docs/templates-editor-toolbar-import-new.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-editor-toolbar-import-new.png?w=280\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=d7105f3cfedee2e8c9ebe88c29decd0d 280w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-editor-toolbar-import-new.png?w=560\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=378513b673b6ec667a55c5f265d6f36d 560w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-editor-toolbar-import-new.png?w=840\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=a760c809954cf460d9f3165024a598e1 840w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-editor-toolbar-import-new.png?w=1100\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=bde751520596654760bec351580b0659 1100w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-editor-toolbar-import-new.png?w=1650\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=289d9181cfa64ed062f2e3e72b7ea5ba 1650w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-editor-toolbar-import-new.png?w=2500\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=fa666f477fd8436decaf07d7357d057a 2500w`})}),`\n`,_jsx(_components.p,{children:`Imported content is a one-time copy - the source and copy are independent after import.`}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`clone-and-promote`,children:`Clone and promote`}),`\n`,_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Clone Template`}),` to copy the entire template (all channels, variants, content) to the same or a different workspace — for example, from Staging to Production.`]}),`\n`,_jsx(Frame,{caption:`Clone Template`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-clone-modal.png?fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=427baf2906841e71d1f663ba7ece4260`,\"data-og-width\":`1024`,width:`1024`,\"data-og-height\":`707`,height:`707`,\"data-path\":`images/docs/templates-clone-modal.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-clone-modal.png?w=280\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=4f656b42071bdc1dcdfe74525da38f0f 280w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-clone-modal.png?w=560\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=e3699547261cd843ea414d2b1a6d27fa 560w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-clone-modal.png?w=840\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=dc452658e496c9707b2304f8a43b18a9 840w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-clone-modal.png?w=1100\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=69572eff5bcf3f8803a63f96c314ef1d 1100w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-clone-modal.png?w=1650\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=bbf09b47696591ed4e6941269f788eba 1650w, https://mintcdn.com/suprsend/sGhtraHJZNmyh1Op/images/docs/templates-clone-modal.png?w=2500\u0026fit=max\u0026auto=format\u0026n=sGhtraHJZNmyh1Op\u0026q=85\u0026s=492c1843cb3b27b4627bd70543282db9 2500w`})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`managing-templates`,children:`Managing templates`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Metadata`}),` - click the info icon next to the template name to edit Name, Description, and Tags. The Slug is immutable after creation.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Finding templates`}),` - the Templates listing page shows all templates with status, channels, linked workflow, and last updated. Use `,_jsx(_components.strong,{children:`Filters and Sort`}),` to narrow by channel, tag, status, or templates you edited. The `,_jsx(_components.strong,{children:`Approvals`}),` tab shows pending WhatsApp/DLT approvals.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Archive`}),` - archive unused templates from the overflow menu. Cannot be recovered.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`API and CLI`}),` - manage templates programmatically via the `,_jsx(_components.a,{href:`/reference/list-templates-v2`,children:`Template Management API`}),` or `,_jsx(_components.a,{href:`/reference/cli-template-overview`,children:`CLI`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"system","config":{},"pageMetadata":{"title":"Creating \u0026 Managing Templates","description":"Step-by-step guide to creating, editing, testing, and managing SuprSend notification templates across email, SMS, push, Slack, WhatsApp, and inbox channels.","href":"/docs/templates"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Create a template","slug":"create-a-template","depth":2,"children":[]},{"title":"Write your content","slug":"write-your-content","depth":2,"children":[{"title":"The Variables panel","slug":"the-variables-panel","depth":3,"children":[]},{"title":"Using variables in content","slug":"using-variables-in-content","depth":3,"children":[]}]},{"title":"Commit","slug":"commit","depth":2,"children":[{"title":"Using the template in a workflow","slug":"using-the-template-in-a-workflow","depth":3,"children":[]}]},{"title":"Test","slug":"test","depth":2,"children":[]},{"title":"Version history","slug":"version-history","depth":2,"children":[]},{"title":"Variants","slug":"variants","depth":2,"children":[]},{"title":"Import content","slug":"import-content","depth":2,"children":[]},{"title":"Clone and promote","slug":"clone-and-promote","depth":2,"children":[]},{"title":"Managing templates","slug":"managing-templates","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/suprsend/1ff47b86af33ef76/apollo-tracker.js"],"subdomain":"suprsend","siteName":"SuprSend: API-first notification infrastructure","title":"Creating \u0026 Managing Templates - SuprSend: API-first notification infrastructure","relatedPagesConfig":{"enabled":true,"limit":5,"mode":"automatic"},"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-16T05:41:04.491Z","originalFileLocation":"docs/templates.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;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=\"system\"}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=\"Step-by-step guide to creating, editing, testing, and managing SuprSend notification templates across email, SMS, push, Slack, WhatsApp, and inbox channels.\">\u003cmeta data-mint-head name=\"application-name\" content=\"SuprSend: API-first notification infrastructure\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/suprsend/FnIDjx0xTYX1D8EZ/_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/suprsend/FnIDjx0xTYX1D8EZ/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/suprsend/FnIDjx0xTYX1D8EZ/_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/suprsend/FnIDjx0xTYX1D8EZ/_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/suprsend/FnIDjx0xTYX1D8EZ/_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/suprsend/FnIDjx0xTYX1D8EZ/_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/suprsend/FnIDjx0xTYX1D8EZ/_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/suprsend/FnIDjx0xTYX1D8EZ/_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/suprsend/FnIDjx0xTYX1D8EZ/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Creating \u0026amp; Managing Templates - SuprSend: API-first notification infrastructure\">\u003cmeta data-mint-head property=\"og:description\" content=\"Step-by-step guide to creating, editing, testing, and managing SuprSend notification templates across email, SMS, push, Slack, WhatsApp, and inbox channels.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"SuprSend: API-first notification infrastructure\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.suprsend.com/docs/templates\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://suprsend.mintlify.app/_mintlify/api/og/v2?division=Templates\u0026amp;title=Creating+%26+Managing+Templates\u0026amp;description=Step-by-step+guide+to+creating%2C+editing%2C+testing%2C+and+managing+SuprSend+notification+templates+across+email%2C+SMS%2C+push%2C+Slack%2C+WhatsApp%2C+and+inbox+channels.\u0026amp;theme=77e430d508312c14f721c90a\u0026amp;signature=556be439cb9768cc780703c0437ae2e2834a73e1b84f1595a178418e97b794cb\">\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=\"Creating \u0026amp; Managing Templates - SuprSend: API-first notification infrastructure\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Step-by-step guide to creating, editing, testing, and managing SuprSend notification templates across email, SMS, push, Slack, WhatsApp, and inbox channels.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://suprsend.mintlify.app/_mintlify/api/og/v2?division=Templates\u0026amp;title=Creating+%26+Managing+Templates\u0026amp;description=Step-by-step+guide+to+creating%2C+editing%2C+testing%2C+and+managing+SuprSend+notification+templates+across+email%2C+SMS%2C+push%2C+Slack%2C+WhatsApp%2C+and+inbox+channels.\u0026amp;theme=77e430d508312c14f721c90a\u0026amp;signature=556be439cb9768cc780703c0437ae2e2834a73e1b84f1595a178418e97b794cb\">\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/suprsend/FnIDjx0xTYX1D8EZ/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"SuprSend: API-first notification infrastructure\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2E70E8\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.suprsend.com/docs/templates\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/templates.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.suprsend.com/#organization\",\"name\":\"SuprSend: API-first notification infrastructure\",\"url\":\"https://docs.suprsend.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/suprsend/CMaQBA3E8wM1DyFj/images/suprsend-logo.svg?fit=max\u0026auto=format\u0026n=CMaQBA3E8wM1DyFj\u0026q=85\u0026s=f325b9764c629a0b488476db369b8d47\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.suprsend.com#website\",\"name\":\"SuprSend: API-first notification infrastructure\",\"url\":\"https://docs.suprsend.com\",\"publisher\":{\"@id\":\"https://docs.suprsend.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.suprsend.com/docs/templates#webpage\",\"url\":\"https://docs.suprsend.com/docs/templates\",\"name\":\"Creating \u0026 Managing Templates\",\"description\":\"Step-by-step guide to creating, editing, testing, and managing SuprSend notification templates across email, SMS, push, Slack, WhatsApp, and inbox channels.\",\"dateModified\":\"2026-10-16T05:41:04.491Z\",\"isPartOf\":{\"@id\":\"https://docs.suprsend.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.suprsend.com/docs/templates#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.suprsend.com/docs/templates#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"CORE CONCEPTS\",\"item\":\"https://docs.suprsend.com/docs/workspaces\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Templates\",\"item\":\"https://docs.suprsend.com/docs/templates-overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Creating \u0026 Managing Templates\",\"item\":\"https://docs.suprsend.com/docs/templates\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.suprsend.com/docs/templates#article\",\"headline\":\"Creating \u0026 Managing Templates\",\"name\":\"Creating \u0026 Managing Templates\",\"description\":\"Step-by-step guide to creating, editing, testing, and managing SuprSend notification templates across email, SMS, push, Slack, WhatsApp, and inbox channels.\",\"url\":\"https://docs.suprsend.com/docs/templates\",\"mainEntityOfPage\":{\"@id\":\"https://docs.suprsend.com/docs/templates#webpage\"},\"dateModified\":\"2026-10-16T05:41:04.491Z\",\"publisher\":{\"@id\":\"https://docs.suprsend.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.suprsend.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"SuprSend: API-first notification infrastructure\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"SuprSend: API-first notification infrastructure","nav":{"global":{"anchors":[{"anchor":"Community","icon":"slack","color":{"light":"#f59f0b","dark":"#f59f0b"},"href":"https://join.slack.com/t/suprsendcommunity/shared_invite/zt-3932rw936-XNWY1RC8bsffh4if4ZyoXQ"},{"anchor":"Trust Center","icon":"shield-halved","color":{"light":"#2564eb","dark":"#2564eb"},"href":"https://trust.suprsend.com"},{"anchor":"Platform Status","icon":"wifi","color":{"light":"#2564eb","dark":"#2564eb"},"href":"https://status.suprsend.com"},{"anchor":"Postman Collection","icon":"code","color":{"light":"#2564eb","dark":"#2564eb"},"href":"https://www.postman.com/suprsend/suprsend/collection/16bdmwa/suprsend-apis"}]},"tabs":[{"tab":"Documentation","groups":[{"group":"GETTING STARTED","pages":[{"title":"What is SuprSend?","href":"/docs/what-is-suprsend"},{"group":"Quick Start Guide","pages":[{"title":"Quick start","sidebarTitle":"Overview","href":"/docs/quick-start-guide"},{"title":"Core Concepts - Notifications and SuprSend","sidebarTitle":"Core concepts","href":"/docs/core-concepts"},{"title":"Integrate SuprSend","sidebarTitle":"Integrate SuprSend","href":"/docs/integrate-suprsend"},{"title":"Add a channel","sidebarTitle":"Add a channel","href":"/docs/add-a-channel"},{"title":"Send a broadcast","sidebarTitle":"Send a broadcast","href":"/docs/send-a-broadcast"}]},{"group":"Best Practices","pages":[{"title":"Notification System Design","href":"/docs/best-practices-notification-system-design"},{"title":"Batching \u0026 Digest","href":"/docs/best-practices-for-batching-digest"}]},{"group":"Plan Your Integration","pages":[{"title":"Migrate in-house Notification System","href":"/docs/migrating-your-existing-notifications"},{"title":"Migrate from MagicBell to SuprSend","href":"/docs/migrate-from-magicbell-to-suprsend"}]},{"title":"Go-live checklist","href":"/docs/go-live-checklist"},{"group":"Example Apps","pages":[{"title":"Task Management App with React","sidebarTitle":"Task Management","tag":"REACT","href":"/docs/task-management-app-guide"},{"title":"B2B2C Restaurant Platform with Next.js","sidebarTitle":"WorkVibe","tag":"NEXT.JS","href":"/docs/workvibe-app-guide"},{"title":"Multi-tenant B2B Project Management with Next.js","sidebarTitle":"Keystone","tag":"NEXT.JS","href":"/docs/keystone-app-guide"}]}]},{"group":"CORE CONCEPTS","pages":[{"title":"Workspaces","href":"/docs/workspaces"},{"group":"Templates","pages":[{"title":"Quickstart","description":"Create your first SuprSend notification template from scratch in under 5 minutes, covering multi-channel content, variables, preview, and sending a test.","href":"/docs/templates-overview"},{"title":"Creating \u0026 Managing Templates","href":"/docs/templates"},{"group":"Channel Editors","pages":[{"title":"Email","description":"Design email templates using the drag-and-drop editor, raw HTML, or plain text - with variables, tenant branding, display conditions, and email markup.","href":"/docs/email-template"},{"title":"In-App Inbox","href":"/docs/in-app-inbox-template"},{"title":"SMS","href":"/docs/sms-template"},{"title":"WhatsApp","href":"/docs/whatsapp-template"},{"title":"Android Push","href":"/docs/android-push-template"},{"title":"iOS Push","href":"/docs/ios-push-template"},{"title":"Web Push","href":"/docs/web-push-template"},{"title":"Slack","href":"/docs/slack-template"},{"title":"MS Teams","href":"/docs/ms-teams-template"}]},{"title":"Template Variants","href":"/docs/template-variants"},{"title":"Handlebars helpers","href":"/docs/handlebars-helpers"},{"title":"JSONNET","href":"/docs/jsonnet-templates"},{"title":"Multi-lingual Templates","href":"/docs/multi-lingual-template"},{"group":"Template Approval","pages":[{"title":"DLT Guidelines","href":"/docs/dlt-guidelines"},{"title":"WhatsApp Template Guidelines","href":"/docs/whatsapp-template-guidelines"}]}]},{"title":"Users","href":"/docs/users"},{"title":"Events","href":"/docs/events"},{"title":"Workflows overview","sidebarTitle":"Workflow","href":"/docs/workflows"},{"group":"Notification Categories","pages":[{"title":"Overview","href":"/docs/notification-category"},{"title":"Manage Categories and Preferences","href":"/docs/managing-notification-categories"}]},{"group":"Preferences","pages":[{"title":"User Preferences","href":"/docs/user-preferences"},{"title":"Tenant Preferences","href":"/docs/tenant-preference"},{"title":"Preference Evaluation","href":"/docs/preference-evaluation"}]},{"group":"Tenants","pages":[{"title":"Overview","href":"/docs/tenants"},{"title":"Quickstart","href":"/docs/tenant-quick-start"},{"title":"Managing Tenants","href":"/docs/tenant-management"},{"title":"Tenant Templates","href":"/docs/tenant-templates"},{"title":"Tenant Workflows","href":"/docs/tenant-workflows"},{"title":"Tenant Preferences","href":"/docs/tenant-preference"},{"title":"Tenant Vendor","href":"/docs/tenant-vendor"},{"title":"User-Tenant Mapping","href":"/docs/user-tenant-mapping"},{"title":"Sub-tenants","href":"/docs/sub-tenants"}]},{"group":"Lists","pages":[{"title":"Lists","sidebarTitle":"Overview","href":"/docs/lists"},{"title":"Database sync","href":"/docs/list-sync-via-database"},{"title":"Manual (CSV upload)","href":"/docs/list-sync-via-csv"},{"title":"Segment Lists","tag":"BETA","href":"/docs/segment-lists"},{"group":"Segment SQL reference","pages":[{"title":"Query clauses and features","href":"/docs/sql-query-clauses"},{"title":"Aggregate functions","href":"/docs/sql-aggregate-functions"},{"title":"Array functions","href":"/docs/sql-array-functions"},{"title":"String functions","href":"/docs/sql-string-functions"},{"title":"JSON and map functions","href":"/docs/sql-json-functions"},{"title":"Date and time functions","href":"/docs/sql-date-time-functions"},{"title":"Conditional and null-handling functions","href":"/docs/sql-conditional-functions"},{"title":"Arithmetic and math functions","href":"/docs/sql-math-functions"},{"title":"String search and matching functions","href":"/docs/sql-string-search-functions"},{"title":"Window functions","href":"/docs/sql-window-functions"},{"title":"Tuple functions","href":"/docs/sql-tuple-functions"},{"title":"URL functions","href":"/docs/sql-url-functions"},{"title":"Encoding, hashing, and UUID functions","href":"/docs/sql-encoding-functions"},{"title":"Bit and bitmap functions","href":"/docs/sql-bit-functions"},{"title":"Geo functions","href":"/docs/sql-geo-functions"},{"title":"Vector and distance functions","href":"/docs/sql-vector-functions"}]}]},{"title":"Broadcast notifications overview","sidebarTitle":"Broadcast","href":"/docs/broadcast"},{"group":"Objects","pages":[{"title":"Manage Objects","href":"/docs/objects"},{"title":"Object Subscriptions","href":"/docs/object-subscriptions"}]},{"title":"Translations","href":"/docs/translations"}]},{"group":"WORKFLOW BUILDER","pages":[{"title":"Design Workflow","href":"/docs/design-workflow"},{"group":"Node List","pages":[{"title":"Delivery- Single Channel","href":"/docs/delivery-single-channel"},{"title":"Delivery- Multi-Channel","href":"/docs/delivery-multi-channel"},{"title":"Smart Channel Routing","href":"/docs/smart-delivery"},{"title":"Override Recipient","href":"/docs/override-recipient-list"},{"title":"Delay","href":"/docs/delay"},{"title":"Batch","href":"/docs/batch"},{"title":"Digest","href":"/docs/digest"},{"title":"Wait Until","href":"/docs/wait-until"},{"title":"Fetch","href":"/docs/fetch"},{"title":"Webhook","href":"/docs/webhook"},{"title":"Branch","href":"/docs/branch"},{"title":"Time Window","href":"/docs/time-window"},{"title":"Data Transform","href":"/docs/data-transform"},{"title":"Add User to list","href":"/docs/add-user-to-list"},{"title":"Remove User from list","href":"/docs/remove-user-from-list"},{"title":"Subscribe to Object","href":"/docs/subscribe-to-object"},{"title":"Unsubscribe from Object","href":"/docs/unsubscribe-from-object"},{"title":"Update User Profile","href":"/docs/update-user-profile"},{"title":"Invoke Workflow","href":"/docs/invoke-workflow"},{"title":"Cancel Workflow","href":"/docs/cancel-workflow"}]},{"group":"Workflow Settings","pages":[{"title":"Throttle","href":"/docs/throttle"}]},{"title":"Trigger Workflow","href":"/docs/trigger-workflow"},{"title":"Validate Trigger Payload","href":"/docs/validate-workflow-payload"}]},{"group":"Notification Inbox","pages":[{"title":"Overview","href":"/docs/inbox-overview"},{"title":"Multi Tabs","href":"/docs/multi-tabs"},{"group":"React","pages":[{"title":"Overview","href":"/docs/react-inbox-integration"},{"title":"Migration Guide","href":"/docs/react-migration-guide"}]},{"group":"Javascript (Angular, Vuejs etc)","pages":[{"title":"Integration","href":"/docs/web-components-integration"},{"title":"Customization options","href":"/docs/web-components-customisations"}]},{"group":"React Native","pages":[{"title":"React Native (Headless)","href":"/docs/inbox-react-native"}]},{"title":"InApp Feed (Headless)","sidebarTitle":"iOS (Headless)","href":"/docs/inbox-ios"},{"title":"Flutter (Headless)","href":"/docs/inbox-flutter"}]},{"group":"PREFERENCE CENTRE","pages":[{"title":"Embedded Preference Centre","href":"/docs/embedded-preference-centre"},{"title":"Javascript","href":"/docs/preferences-javascript"},{"title":"Angular","href":"/docs/preferences-angular"},{"title":"React","href":"/docs/preferences-react-headless"}]},{"group":"VENDOR INTEGRATION GUIDE","pages":[{"title":"Overview","href":"/docs/vendors"},{"group":"Email Integrations","pages":[{"title":"Sendgrid","href":"/docs/sendgrid"},{"title":"Amazon SES","href":"/docs/amazon-ses"},{"title":"Mailgun","href":"/docs/mailgun"},{"title":"Resend","href":"/docs/resend"},{"title":"Postmark","href":"/docs/postmark"},{"title":"Mailjet","href":"/docs/mailjet"}]},{"group":"SMS Integrations","pages":[{"title":"ACL Sinch","sidebarTitle":"ACL Sinch","href":"/docs/acl-sinch"},{"title":"Twilio","href":"/docs/twilio"},{"title":"Karix","href":"/docs/karix-sms"},{"title":"Gupshup","href":"/docs/gupshup-sms"},{"title":"AWS SNS","href":"/docs/aws-sns-sms"},{"title":"Pinnacle","href":"/docs/pinnacle"}]},{"group":"Android Push","pages":[{"title":"Firebase FCM","href":"/docs/firebase-fcm-androidpush"}]},{"group":"Whatsapp Integrations","pages":[{"title":"Karix","href":"/docs/karix-whatsapp"},{"title":"Gupshup","href":"/docs/gupshup-whatsapp"},{"title":"Exotel Cloud API","href":"/docs/exotel"},{"title":"WhatsApp Cloud API","href":"/docs/whatsapp-cloud-api"},{"title":"Twilio","href":"/docs/twilio-whatsapp"},{"title":"Netcore","href":"/docs/netcore-whatsapp"}]},{"title":"iOS Push","href":"/docs/ios-push-vendor-integration"},{"group":"Chat Integrations","pages":[{"title":"Slack","href":"/docs/slack"},{"group":"Microsoft Teams","pages":[{"title":"Microsoft Teams","sidebarTitle":"Overview","href":"/docs/microsoft-teams"},{"title":"Create a Teams app and add the vendor","sidebarTitle":"Create a Teams app","href":"/docs/microsoft-teams-create-app"},{"title":"Post to a Teams channel with a webhook","sidebarTitle":"Send via channel webhook","href":"/docs/microsoft-teams-incoming-webhook"},{"title":"Send DMs or post in channels via your Teams app","sidebarTitle":"Send via your Teams app","href":"/docs/microsoft-teams-customer-workspaces"},{"title":"Send DMs or post in channels via your customer's Teams app","sidebarTitle":"Send via customer's Teams app","href":"/docs/microsoft-teams-customer-bot"}]}]},{"title":"Vendor Fallback","href":"/docs/vendor-fallback"},{"title":"Tenant Vendor","href":"/docs/tenant-vendor"}]},{"group":"INTEGRATIONS","pages":[{"title":"Webhook","href":"/docs/outbound-webhook"},{"group":"Connectors","pages":[{"title":"Overview","href":"/docs/connectors"},{"title":"OpenTelemetry","href":"/docs/opentelemetry"},{"title":"New Relic","href":"/docs/new-relic"},{"title":"Datadog","href":"/docs/datadog"},{"title":"Mixpanel","href":"/docs/mixpanel"},{"title":"Segment","href":"/docs/segment"},{"group":"Amazon S3 v2.0","pages":[{"title":"Overview","href":"/docs/amazon_s3_v2"},{"title":"Query with Athena","href":"/docs/athena_s3_query"}]},{"group":"Database","pages":[{"title":"Overview","href":"/docs/database"},{"title":"Postgres","href":"/docs/postgres"},{"title":"MySQL","href":"/docs/mysql"},{"title":"Bigquery","href":"/docs/bigquery"}]}]}]},{"group":"MONITORING \u0026 DEBUGGING","pages":[{"group":"Logs","pages":[{"title":"Logs","href":"/docs/logging"},{"title":"Request logs","href":"/docs/request-logs"},{"title":"Workflow execution logs","href":"/docs/workflow-execution-logs"},{"title":"Broadcast execution logs","href":"/docs/broadcast-execution-logs"},{"title":"Message logs","href":"/docs/message-logs"}]},{"title":"Analytics","href":"/docs/analytics"},{"title":"Audit Logs","href":"/docs/audit-logs"},{"group":"Error Guides","pages":[{"title":"Execution Errors","href":"/docs/error-guides"},{"group":"Delivery Failures","pages":[{"title":"Androidpush","href":"/docs/androidpush-errors"},{"title":"Gupshup (SMS)","href":"/docs/gupshup-sms-errors"},{"title":"Twilio (SMS)","href":"/docs/twilio-sms-errors"},{"title":"Messagebird (SMS)","href":"/docs/messagebird-sms-errors"}]}]}]},{"group":"MANAGE YOUR ACCOUNT","pages":[{"title":"Authentication Methods","href":"/docs/authentication-methods"},{"title":"Managing Team Members","href":"/docs/managing-members"}]}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/docs/guides/modelling-customers-workspace-vs-tenant"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/reference/overview"}]},{"tab":"Management API","pages":[{"title":"Management API","href":"/docs/management-api-overview"}]},{"tab":"CLI","pages":[{"title":"CLI","href":"/reference/cli-intro"}]},{"tab":"Build with AI","pages":[{"title":"Build with AI","href":"/reference/build-with-ai"}]},{"tab":"Developer Resources","pages":[{"title":"Developer Resources","href":"/docs/developer/overview"}]},{"tab":"Self-Hosted","pages":[{"title":"Self-Hosted","href":"/docs/self-hosted/introduction"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog/overview"}]}]},"basePath":"","title":"Creating \u0026 Managing Templates - SuprSend: API-first notification infrastructure","buildId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","deploymentId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-PS-3COT9.js","DynamicMarkdown-BcnBltEQ.js","zoom-image-lightbox-B4-wUcHm.js","lightbox-handle-r17bVUz3.js"]}