Create Template
create-templateCreate a new email template in Resend using custom HTML with variables. Templates are created in draft status and can be published later.
Instructions
Create a new email template in Resend. Templates are created in draft status. Use publish-template to make them available for sending. Variables use triple-brace syntax in HTML: {{{VAR_NAME}}}.
Workflow: create-template → get-tiptap-json-content (with include_schema: true) → compose-template → publish-template.
Content options after creating:
compose-template (recommended): Sets TipTap content that the user can visually edit in the Resend dashboard. Use this when the user wants to collaborate on or refine the template in the editor.
update-template with html/text: Sets static HTML/text content. Use this only when the user explicitly wants to set raw HTML. Switching between compose and html/text modes is lossy — some content or formatting may be lost. Ask the user before switching.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| from | No | Sender email address (e.g., "Your Name <sender@example.com>"). Can be overridden when sending. | |
| html | Yes | The HTML content of the template. Use triple-brace syntax for variables: {{{VARIABLE_NAME}}}. Email HTML requirements — follow all of these without exception: STRUCTURE - Always include <!DOCTYPE html>, <html>, <head>, <body> - Layout must be table-based: <table>, <tr>, <td> — never use <div> for layout - Outer wrapper table at width="100%", inner content table at max 600px wide - Every table must have cellpadding="0" cellspacing="0" border="0" CSS - All styles must be inline (style="...") — no <style> tag, no external stylesheets - No flexbox, no grid, no CSS variables, no CSS shorthand (use padding-top not padding) - font-family must always include web-safe fallbacks (Arial, Helvetica, Georgia, sans-serif) - Always set font-size, line-height, and color explicitly on every text element IMAGES - Always set width, height, border="0", display:block on every <img> - Use absolute URLs only — no relative paths - Always include alt text LINKS & BUTTONS - Never use <button> — use <a> styled as a button inside a <td> - No <video>, <form>, or <input> elements - No JavaScript of any kind OUTLOOK COMPATIBILITY - Use bgcolor attribute on <td> alongside CSS background-color - No CSS background-image (poor Outlook support) - Add <!--[if mso]> conditionals where needed for Outlook rendering META (in <head>) - <meta charset="UTF-8"> - <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> | |
| name | Yes | The name of the template. | |
| text | No | Plain text version of the message. If not provided, HTML will be used to generate it. | |
| alias | No | An alias for the template. Can be used instead of the ID to reference the template. | |
| replyTo | No | Default Reply-to email address(es). Can be overridden when sending. | |
| subject | No | Default email subject. Can be overridden when sending. | |
| variables | No | Array of template variables (up to 50 per template). |