Static text and optional placeholders (variables).
Data bindings:
Lead fields (first name, company, role, etc.).
Custom fields from your systems.
The lead placeholders Tuco resolves for you:
{firstName}
{lastName}
{companyName}
{email}
{phone}
{jobTitle}
{notes} — the free-text notes saved on the lead
Anything extra your CSV or CRM brought in is stored as a custom field, and goes in by its
column name:
Hi {firstName}, still running {cf:Franchise Region}?
You do not have to type these from memory. In the message editor, click Insert
variable to see every custom field in your workspace — both the ones synced from HubSpot
or LeadConnector and the ones your CSV imports created. Picking one inserts the exact token,
which matters when a column name has odd spacing or capitalisation.
Custom-field names are matched case-insensitively and surrounding whitespace is ignored,
so {cf:Industry}, {cf:industry} and {CF:Industry} all resolve against a column named
Industry. Give every one a fallback anyway:
Hi {firstName}, still running {cf:Franchise Region|your territory}?
A placeholder Tuco does not recognise is replaced with nothing, not left in the message. If
you invent {role}, the send goes out with a gap where you expected a word. Preview a
template before you launch it.
Maintain enterprise-grade standards for testing, governance, and compliance—all while leveraging Tuco AI’s delivery, limits, and tracking capabilities.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Tuco AI","colors":{"primary":"#FF3515","light":"#FFF5F2","dark":"#111827"},"logo":{"light":"https://mintcdn.com/tucoai/oqQbf84LeXHYKs-3/logo/light.svg?fit=max\u0026auto=format\u0026n=oqQbf84LeXHYKs-3\u0026q=85\u0026s=c601a209f9f05fe52c2cd2e67d63adeb","dark":"https://mintcdn.com/tucoai/oqQbf84LeXHYKs-3/logo/dark.svg?fit=max\u0026auto=format\u0026n=oqQbf84LeXHYKs-3\u0026q=85\u0026s=2d4cbb7e9dea8411a50d67377ca76578"},"favicon":"https://mintcdn.com/tucoai/oqQbf84LeXHYKs-3/images/tuco_v1_round.svg?fit=max\u0026auto=format\u0026n=oqQbf84LeXHYKs-3\u0026q=85\u0026s=0c579fbfd834a8ce1afe94ec9a63c4a6","api":{"openapi":"api-reference/openapi.json","mdx":{"auth":{"method":"bearer"},"server":"https://app.tuco.ai"}},"navbar":{"links":[{"href":"mailto:support@tuco.ai","label":"Support"}],"primary":{"type":"button","label":"Get Started","href":"https://app.tuco.ai"}},"footer":{"socials":{"x":"https://x.com/tucoai","linkedin":"https://linkedin.com/company/tuco-ai"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Dashboard","icon":"browser","href":"https://app.tuco.ai"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"tucoai","hasAudioNarration":false,"actualSubdomain":"tucoai","customDomains":["docs.tuco.ai"],"gitSource":{"type":"github","owner":"goforbg","repo":"tuco-docs","deployBranch":"master","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae277d9aa176457dc3a2234","collectionId":"ebacd0bf-09db-4284-9b11-da57791e1639","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae277d9aa176457dc3a2234"},"entitlements":{},"buildId":"6ae277d9aa176457dc3a2234","clientVersion":"0.0.4021","searchFilterCounts":[{"language":"default","tag":"API Reference","count":96},{"language":"default","tag":"Documentation","count":63},{"language":"default","tag":"Lines \u0026 Leads","count":19},{"language":"default","tag":"Messages","count":14},{"language":"default","tag":"Goal Bots","count":14},{"language":"default","tag":"Webhooks","count":13},{"language":"default","tag":"iMessage Guides","count":13},{"language":"default","tag":"Agency","count":11},{"language":"default","tag":"Integrations","count":8},{"language":"default","tag":"Core Features","count":6}]},"assistantConfig":{"enableStarterQuestions":false},"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":"pause-universal-search-reconcile","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":"per-site-search-delta","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":"editor-private-page-search","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":"features/message-templates","slug":"/features/message-templates","pageMetadata":{"title":"Message Templates \u0026 Personalization","description":"Designing, personalizing, and managing Tuco AI message content safely and at scale.","icon":"file-pen","href":"/features/message-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: \"Designing, personalizing, and managing Tuco AI message content safely and at scale.\"\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={blockquote:`blockquote`,code:`code`,hr:`hr`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Tip,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`overview`,children:`Overview`}),`\n`,_jsx(_components.p,{children:`Tuco AI lets you send highly personalized messages at scale by combining:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Static templates`}),` you design.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Dynamic data`}),` from leads and external systems.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`This page focuses on recommended patterns for:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Template structure and variable usage.`}),`\n`,_jsx(_components.li,{children:`Personalization safety.`}),`\n`,_jsx(_components.li,{children:`Testing and operational practices.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`It does not depend on any internal APIs—only on behavior visible via the app and documented endpoints.`}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`template-concepts`,children:`Template Concepts`}),`\n`,_jsx(_components.p,{children:`Think of a Tuco message as:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`A `,_jsx(_components.strong,{children:`base template`}),`:`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Static text and optional placeholders (variables).`}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Data bindings`}),`:`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Lead fields (first name, company, role, etc.).`}),`\n`,_jsx(_components.li,{children:`Custom fields from your systems.`}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`The lead placeholders Tuco resolves for you:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`{firstName}`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`{lastName}`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`{companyName}`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`{email}`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`{phone}`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`{jobTitle}`})}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`{notes}`}),` — the free-text notes saved on the lead`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Anything extra your CSV or CRM brought in is stored as a custom field, and goes in by its\ncolumn name:`}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Hi {firstName}, still running {cf:Franchise Region}?`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`You do not have to type these from memory.`}),` In the message editor, click `,_jsx(_components.strong,{children:`Insert\nvariable`}),` to see every custom field in your workspace — both the ones synced from HubSpot\nor LeadConnector and the ones your CSV imports created. Picking one inserts the exact token,\nwhich matters when a column name has odd spacing or capitalisation.`]})}),`\n`,_jsxs(_components.p,{children:[`Custom-field names are matched `,_jsx(_components.strong,{children:`case-insensitively`}),` and surrounding whitespace is ignored,\nso `,_jsx(_components.code,{children:`{cf:Industry}`}),`, `,_jsx(_components.code,{children:`{cf:industry}`}),` and `,_jsx(_components.code,{children:`{CF:Industry}`}),` all resolve against a column named\n`,_jsx(_components.code,{children:`Industry`}),`. Give every one a fallback anyway:`]}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Hi {firstName}, still running {cf:Franchise Region|your territory}?`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`A placeholder Tuco does not recognise is replaced with nothing, not left in the message. If\nyou invent `,_jsx(_components.code,{children:`{role}`}),`, the send goes out with a gap where you expected a word. Preview a\ntemplate before you launch it.`]})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`variable-replacement-behavior-conceptual`,children:`Variable Replacement Behavior (Conceptual)`}),`\n`,_jsx(_components.p,{children:`When a message is generated for a particular lead:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Tuco reads the template text.`}),`\n`,_jsxs(_components.li,{children:[`For each placeholder:`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Looks up the corresponding value on the lead or context object.`}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`If a value is:`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Present`}),`: it replaces the placeholder.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Missing`}),`: it may produce an empty string or a fallback value, depending on your pattern.`]}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`To avoid awkward messages:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Always design templates with `,_jsx(_components.strong,{children:`optional content`}),` in mind.`]}),`\n`,_jsx(_components.li,{children:`Use patterns that still read well if some fields are missing.`}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`safe-template-patterns`,children:`Safe Template Patterns`}),`\n`,_jsx(Heading,{level:`3`,id:`1-optional-fields-with-natural-defaults`,children:`1. Optional Fields with Natural Defaults`}),`\n`,_jsx(_components.p,{children:`Instead of:`}),`\n`,_jsxs(_components.blockquote,{children:[`\n`,_jsxs(_components.p,{children:[`“Hi `,_jsx(_components.code,{children:`{firstName}`}),` `,_jsx(_components.code,{children:`{lastName}`}),`, I saw you work at `,_jsx(_components.code,{children:`{companyName}`}),` in `,_jsx(_components.code,{children:`{cf:Franchise Region}`}),`.”`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Prefer:`}),`\n`,_jsxs(_components.blockquote,{children:[`\n`,_jsxs(_components.p,{children:[`“Hi `,_jsx(_components.code,{children:`{firstName}`}),`, I saw you work at `,_jsx(_components.code,{children:`{companyName}`}),`.”`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Where:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`{firstName}`}),` is likely to be present (or you fall back to a neutral greeting).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`{companyName}`}),` is often available and safe to include.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`{cf:Franchise Region}`}),` may be omitted entirely to avoid:`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`“in ” with nothing after it.`}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`2-guarding-optional-sections-upstream`,children:`2. Guarding Optional Sections Upstream`}),`\n`,_jsx(_components.p,{children:`If your application generates templates programmatically:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Only inject optional phrases if the underlying data exists.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`For example (pseudo-code in your own system):`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`text = \"Hi {firstName}\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`if companyName exists:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` text += \", I saw you work at {companyName}\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`text += \".\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`This ensures that if `,_jsx(_components.code,{children:`companyName`}),` is missing, the resulting message still reads naturally.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`personalization-sources`,children:`Personalization Sources`}),`\n`,_jsx(Heading,{level:`3`,id:`lead-fields`,children:`Lead Fields`}),`\n`,_jsx(_components.p,{children:`Base personalization can use:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Lead’s:`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`First name / last name.`}),`\n`,_jsx(_components.li,{children:`Company name.`}),`\n`,_jsx(_components.li,{children:`Email and phone.`}),`\n`,_jsx(_components.li,{children:`Job title.`}),`\n`,_jsx(_components.li,{children:`Notes — free text your team keeps on the lead.`}),`\n`,_jsx(_components.li,{children:`Custom fields you define.`}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`These fields are available in Tuco once you:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Import leads via CSV/CRM.`}),`\n`,_jsx(_components.li,{children:`Create them via the Leads API.`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`external-systems`,children:`External Systems`}),`\n`,_jsx(_components.p,{children:`If you integrate Tuco with external systems (e.g. CRM, CDP):`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Your backend can:`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Fetch additional context per lead.`}),`\n`,_jsx(_components.li,{children:`Build final message bodies incorporating that data before calling Tuco.`}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`In this model:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Tuco receives the `,_jsx(_components.strong,{children:`fully rendered message`}),`.`]}),`\n`,_jsx(_components.li,{children:`Tuco still handles delivery, limits, and tracking.`}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`template-testing-best-practices`,children:`Template Testing Best Practices`}),`\n`,_jsx(Heading,{level:`3`,id:`static-testing`,children:`Static Testing`}),`\n`,_jsx(_components.p,{children:`Before using a template in production:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Test it with:`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Complete data.`}),`\n`,_jsx(_components.li,{children:`Missing optional fields.`}),`\n`,_jsx(_components.li,{children:`Edge cases (short names, unusual characters).`}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Have reviewers read:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Actual example messages generated from real or realistic test contacts.`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`in-app-previews`,children:`In-App Previews`}),`\n`,_jsx(_components.p,{children:`If the Tuco UI or your custom UI supports it:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Use preview features to see:`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`How a template renders for a specific lead.`}),`\n`,_jsx(_components.li,{children:`How segments of leads might see different variations.`}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`staging-templates`,children:`Staging Templates`}),`\n`,_jsx(_components.p,{children:`Use non-production workspaces:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Run small test sends against test contacts.`}),`\n`,_jsxs(_components.li,{children:[`Confirm:`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Messages look correct on actual devices.`}),`\n`,_jsx(_components.li,{children:`Personalization behaves as expected.`}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`compliance-\u0026-content-quality`,children:`Compliance \u0026 Content Quality`}),`\n`,_jsx(_components.p,{children:`While message content is up to you, for best results:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Clarity and brevity`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Keep messages focused and concise.`}),`\n`,_jsx(_components.li,{children:`Avoid overloading templates with too many dynamic inserts.`}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Tone`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Ensure tone aligns with your brand and use case.`}),`\n`,_jsx(_components.li,{children:`Avoid language that could be misinterpreted when partial data is missing.`}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Consent`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Only message recipients who have given appropriate consent.`}),`\n`,_jsxs(_components.li,{children:[`For more on consent and opt-outs, see `,_jsx(_components.code,{children:`/features/compliance-and-optouts`}),`.`]}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`operational-considerations`,children:`Operational Considerations`}),`\n`,_jsx(Heading,{level:`3`,id:`versioning-templates`,children:`Versioning Templates`}),`\n`,_jsx(_components.p,{children:`In your own systems:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Keep track of:`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Template versions.`}),`\n`,_jsx(_components.li,{children:`Which sends or workflows used which versions.`}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`This helps when:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Comparing performance across iterations.`}),`\n`,_jsx(_components.li,{children:`Investigating issues tied to specific content changes.`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`rollbacks`,children:`Rollbacks`}),`\n`,_jsx(_components.p,{children:`Have a plan for:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Rolling back to a previous template version quickly if:`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`A personalization bug is discovered.`}),`\n`,_jsx(_components.li,{children:`A compliance issue is identified.`}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Use:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Feature flags or config toggles to switch templates without redeploying code.`}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`summary`,children:`Summary`}),`\n`,_jsx(_components.p,{children:`By treating message templates as:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Carefully designed base texts, and`}),`\n`,_jsx(_components.li,{children:`Composed with safe personalization patterns,`}),`\n`]}),`\n`,_jsx(_components.p,{children:`you can:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Deliver highly relevant outreach at scale.`}),`\n`,_jsx(_components.li,{children:`Avoid awkward, malformed messages.`}),`\n`,_jsx(_components.li,{children:`Maintain enterprise-grade standards for testing, governance, and compliance—all while leveraging Tuco AI’s delivery, limits, and tracking capabilities.`}),`\n`]})]})}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":{"config":{},"pageMetadata":{"title":"Message Templates \u0026 Personalization","description":"Designing, personalizing, and managing Tuco AI message content safely and at scale.","icon":"file-pen","href":"/features/message-templates"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Overview","slug":"overview","depth":2,"children":[]},{"title":"Template Concepts","slug":"template-concepts","depth":2,"children":[]},{"title":"Variable Replacement Behavior (Conceptual)","slug":"variable-replacement-behavior-conceptual","depth":2,"children":[]},{"title":"Safe Template Patterns","slug":"safe-template-patterns","depth":2,"children":[{"title":"1. Optional Fields with Natural Defaults","slug":"1-optional-fields-with-natural-defaults","depth":3,"children":[]},{"title":"2. Guarding Optional Sections Upstream","slug":"2-guarding-optional-sections-upstream","depth":3,"children":[]}]},{"title":"Personalization Sources","slug":"personalization-sources","depth":2,"children":[{"title":"Lead Fields","slug":"lead-fields","depth":3,"children":[]},{"title":"External Systems","slug":"external-systems","depth":3,"children":[]}]},{"title":"Template Testing Best Practices","slug":"template-testing-best-practices","depth":2,"children":[{"title":"Static Testing","slug":"static-testing","depth":3,"children":[]},{"title":"In-App Previews","slug":"in-app-previews","depth":3,"children":[]},{"title":"Staging Templates","slug":"staging-templates","depth":3,"children":[]}]},{"title":"Compliance \u0026 Content Quality","slug":"compliance-\u0026-content-quality","depth":2,"children":[]},{"title":"Operational Considerations","slug":"operational-considerations","depth":2,"children":[{"title":"Versioning Templates","slug":"versioning-templates","depth":3,"children":[]},{"title":"Rollbacks","slug":"rollbacks","depth":3,"children":[]}]},{"title":"Summary","slug":"summary","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"tucoai","siteName":"Tuco AI","title":"Message Templates \u0026 Personalization - Tuco AI","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-12T19:45:07.425Z","originalFileLocation":"features/message-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=\"Designing, personalizing, and managing Tuco AI message content safely and at scale.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Tuco AI\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/tucoai/pPwoyrnQogjfeGN5/_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/tucoai/pPwoyrnQogjfeGN5/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/tucoai/pPwoyrnQogjfeGN5/_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/tucoai/pPwoyrnQogjfeGN5/_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/tucoai/pPwoyrnQogjfeGN5/_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/tucoai/pPwoyrnQogjfeGN5/_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/tucoai/pPwoyrnQogjfeGN5/_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/tucoai/pPwoyrnQogjfeGN5/_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/tucoai/pPwoyrnQogjfeGN5/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Message Templates \u0026amp; Personalization - Tuco AI\">\u003cmeta data-mint-head property=\"og:description\" content=\"Designing, personalizing, and managing Tuco AI message content safely and at scale.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Tuco AI\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.tuco.ai/features/message-templates\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://tucoai.mintlify.app/_mintlify/api/og/v2?division=Messaging+%26+Compliance\u0026amp;title=Message+Templates+%26+Personalization\u0026amp;description=Designing%2C+personalizing%2C+and+managing+Tuco+AI+message+content+safely+and+at+scale.\u0026amp;theme=6ee776b2be11f4145c07cfc0\u0026amp;signature=a2418fbdc9ab299796526c4de65246c2ef883a0ffab7b32ab53fe9bd6397dee0\">\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=\"Message Templates \u0026amp; Personalization - Tuco AI\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Designing, personalizing, and managing Tuco AI message content safely and at scale.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://tucoai.mintlify.app/_mintlify/api/og/v2?division=Messaging+%26+Compliance\u0026amp;title=Message+Templates+%26+Personalization\u0026amp;description=Designing%2C+personalizing%2C+and+managing+Tuco+AI+message+content+safely+and+at+scale.\u0026amp;theme=6ee776b2be11f4145c07cfc0\u0026amp;signature=a2418fbdc9ab299796526c4de65246c2ef883a0ffab7b32ab53fe9bd6397dee0\">\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/tucoai/pPwoyrnQogjfeGN5/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Tuco AI\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#FF3515\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.tuco.ai/features/message-templates\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/features/message-templates.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.tuco.ai/#organization\",\"name\":\"Tuco AI\",\"url\":\"https://docs.tuco.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/tucoai/oqQbf84LeXHYKs-3/logo/light.svg?fit=max\u0026auto=format\u0026n=oqQbf84LeXHYKs-3\u0026q=85\u0026s=c601a209f9f05fe52c2cd2e67d63adeb\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.tuco.ai#website\",\"name\":\"Tuco AI\",\"url\":\"https://docs.tuco.ai\",\"publisher\":{\"@id\":\"https://docs.tuco.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.tuco.ai/features/message-templates#webpage\",\"url\":\"https://docs.tuco.ai/features/message-templates\",\"name\":\"Message Templates \u0026 Personalization\",\"description\":\"Designing, personalizing, and managing Tuco AI message content safely and at scale.\",\"dateModified\":\"2026-10-12T19:45:07.425Z\",\"isPartOf\":{\"@id\":\"https://docs.tuco.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.tuco.ai/features/message-templates#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.tuco.ai/features/message-templates#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Tuco AI\",\"item\":\"https://docs.tuco.ai\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Message Templates \u0026 Personalization\",\"item\":\"https://docs.tuco.ai/features/message-templates\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.tuco.ai/features/message-templates#article\",\"headline\":\"Message Templates \u0026 Personalization\",\"name\":\"Message Templates \u0026 Personalization\",\"description\":\"Designing, personalizing, and managing Tuco AI message content safely and at scale.\",\"url\":\"https://docs.tuco.ai/features/message-templates\",\"mainEntityOfPage\":{\"@id\":\"https://docs.tuco.ai/features/message-templates#webpage\"},\"dateModified\":\"2026-10-12T19:45:07.425Z\",\"publisher\":{\"@id\":\"https://docs.tuco.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.tuco.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Tuco AI\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Tuco AI","nav":{"global":{"anchors":[{"anchor":"Dashboard","icon":"browser","href":"https://app.tuco.ai"}]},"tabs":[{"tab":"Documentation","groups":[{"group":"Getting Started","pages":[{"title":"Welcome to Tuco AI","href":""},{"title":"Quick Start","icon":"rocket","href":"/quickstart"},{"title":"Pricing, Plans \u0026 AI Credits","icon":"tag","href":"/pricing"},{"title":"Use Cases","icon":"sparkles","href":"/use-cases"}]},{"group":"iMessage Guides","pages":[{"title":"How to Automate iMessage for Sales Outreach","icon":"robot","href":"/guides/automate-imessage-sales-outreach"},{"title":"How to Send iMessage from HubSpot","icon":"hubspot","href":"/guides/send-imessage-from-hubspot"},{"title":"How to Send iMessage from GoHighLevel (GHL)","icon":"bolt","href":"/guides/send-imessage-from-gohighlevel"},{"title":"How to Send iMessage from Customer.io","icon":"envelope-open-text","href":"/guides/send-imessage-from-customer-io"},{"title":"How to Check if a Phone Number Has iMessage","icon":"circle-check","href":"/guides/check-imessage-availability"},{"title":"Bulk iMessage: How to Message a List Without Getting Banned","icon":"layer-group","href":"/guides/send-bulk-imessage"},{"title":"iMessage vs SMS for Sales Outreach","icon":"comments","href":"/guides/imessage-vs-sms-for-sales"},{"title":"Best iMessage Automation Tools for Business (2026)","icon":"list-check","href":"/guides/best-imessage-automation-tools"},{"title":"Is iMessage Marketing Legal? TCPA \u0026 Consent Rules","icon":"scale-balanced","href":"/guides/imessage-compliance-tcpa"},{"title":"Reach Android Contacts Without A2P (P2P SMS)","icon":"message-sms","href":"/guides/reach-android-contacts-p2p-sms"},{"title":"Does iMessage Need A2P 10DLC Registration?","icon":"shield-check","href":"/guides/imessage-a2p-10dlc-carrier-filtering"},{"title":"Apple Messages for Business vs an iMessage API","icon":"code-compare","href":"/guides/apple-messages-for-business-vs-imessage-api"},{"title":"iMessage Delivery: Sent vs Delivered vs Read","icon":"check-double","href":"/guides/imessage-delivery-and-read-receipts"}]},{"group":"Core Features","pages":[{"title":"Upload Leads","icon":"upload","href":"/features/upload-leads"},{"title":"Check iMessage Availability","icon":"circle-check","href":"/features/check-availability"},{"title":"Send Messages","icon":"paper-plane","href":"/features/send-messages"},{"title":"MCP Server","icon":"robot","href":"/features/mcp-server"},{"title":"Email Bridge","icon":"envelope","href":"/features/email-bridge"},{"title":"Telegram Integration","icon":"paper-plane","href":"/features/telegram"}]},{"group":"Messaging Engine","pages":[{"title":"Rate Limits \u0026 Sending Caps","icon":"gauge-high","href":"/features/rate-limits"},{"title":"Limits \u0026 Constraints","icon":"gauge-high","href":"/limits"},{"title":"What Your Leads See","icon":"eye","href":"/what-leads-see"},{"title":"Failures, Fallbacks \u0026 Delivery Outcomes","icon":"triangle-exclamation","href":"/features/failures-and-fallbacks"},{"title":"Replies \u0026 Inbox","icon":"inbox","href":"/features/replies"},{"title":"iMessage Reactions","icon":"heart","href":"/features/reactions"}]},{"group":"Architecture \u0026 Operations","pages":[{"title":"Architecture Overview","icon":"diagram-project","href":"/architecture/overview"},{"title":"How Tuco Sends Messages","icon":"gears","href":"/architecture/workers"},{"title":"Health, Reliability \u0026 Limits","icon":"heart-pulse","href":"/architecture/health-checks"}]},{"group":"AI \u0026 Automation","pages":[{"title":"Knowledge Base","icon":"brain","href":"/features/knowledge-base"},{"title":"Language Audit","icon":"spell-check","href":"/features/language-audit"},{"title":"Retroactive Conversation Scanner","icon":"magnifying-glass-clock","href":"/features/retroactive-scanner"},{"title":"Goal Bots","icon":"crosshairs","href":"/features/goal-bots"},{"title":"Workspace API Tools","description":"Create reusable API integrations that pull live data into your messages.","icon":"plug","href":"/features/api-tools"}]},{"group":"Messaging \u0026 Compliance","pages":[{"title":"Message Templates \u0026 Personalization","icon":"file-pen","href":"/features/message-templates"},{"title":"Compliance, Consent \u0026 Opt-Outs","description":"Patterns for respectful, compliant messaging with Tuco AI across iMessage, SMS, and email.","icon":"scale-balanced","href":"/features/compliance-and-optouts"},{"title":"Anti-Spam \u0026 Messaging Rules","icon":"shield-check","href":"/features/anti-spam-guidelines"},{"title":"Do Not Contact (DNC)","icon":"shield-halved","href":"/features/dnc"},{"title":"Spam Monitoring","icon":"shield-virus","href":"/features/spam-monitor"}]},{"group":"Operations","pages":[{"title":"Operations Runbook","icon":"screwdriver-wrench","href":"/operations/runbook"}]},{"group":"Analytics \u0026 Reporting","pages":[{"title":"Events, Metrics \u0026 Dashboards","icon":"chart-line","href":"/analytics/events-and-metrics"},{"title":"Export All Data (CSV)","icon":"download","href":"/features/export-data"},{"title":"Export \u0026 Data Integration","icon":"arrow-right-arrow-left","href":"/analytics/export-strategies"}]},{"group":"Lead Management","pages":[{"title":"Lead Reactivation","icon":"rotate","href":"/features/reactivation"}]},{"group":"Integrations","pages":[{"title":"HubSpot Integration","icon":"hubspot","href":"/integrations/hubspot"},{"title":"GoHighLevel iMessage Integration","icon":"bolt","href":"/integrations/ghl"},{"title":"Close CRM Integration","icon":"handshake","href":"/integrations/close"},{"title":"n8n Workflows","href":"/integrations/n8n"},{"title":"MCP Server Setup","href":"/integrations/mcp-server"},{"title":"Email Bridge Setup","href":"/integrations/email-bridge"},{"title":"Telegram Bot","href":"/integrations/telegram-bot"},{"title":"Webhooks","href":"/integrations/webhooks"}]},{"group":"Account \u0026 Team","pages":[{"title":"Invite Your Team","icon":"user-plus","href":"/account/team-members"}]},{"group":"Troubleshooting","pages":[{"title":"Why Didn't My Contact Get a Message?","icon":"circle-question","href":"/troubleshooting/message-not-received"},{"title":"Message Statuses Explained (Sent vs Delivered)","icon":"list-check","href":"/troubleshooting/message-statuses"},{"title":"Line Health \u0026 Apple Sending Restrictions","icon":"heart-pulse","href":"/troubleshooting/line-health-and-restrictions"}]},{"group":"FAQ","pages":[{"title":"FAQ \u0026 Troubleshooting","icon":"circle-question","href":"/faq"},{"title":"Background Processing \u0026 Reliability FAQ","icon":"gears","href":"/faq/workers"},{"title":"Integrations FAQ","icon":"puzzle-piece","href":"/faq/integrations"},{"title":"Security, Access \u0026 Billing FAQ","icon":"shield","href":"/faq/security-billing"}]}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/introduction"}]}]},"title":"Message Templates \u0026 Personalization - Tuco AI","buildId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","deploymentId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","dynamics":[],"chunks":[]}