activecampaign/postmark-skills/postmark-templates

Claude Code and agent skill by activecampaign/postmark-skills

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Use when creating, managing, or sending with Postmark server-side email templates — Handlebars syntax, layout inheritance, template validation, and cross-server pushing.

Install

npx vskill@latest install activecampaign/postmark-skills/postmark-templates

SKILL.md

Email Templates with Postmark

Overview

Postmark templates are server-side email templates using Handlebars syntax. Templates are rendered on Postmark's servers — no client-side rendering library needed.

FeatureDescription
SyntaxHandlebars (Mustache-compatible)
RenderingServer-side — no React, no client library
TypesStandard templates and Layout templates
InheritanceStandard templates can inherit from a Layout
ValidationAPI endpoint to test-render templates before sending
Cross-serverPush templates between servers (staging → production)
Limit100 templates per server (contact support for more)

Quick Start

  1. Create a template via API or the Postmark dashboard
  2. Define variables using Handlebars syntax: {{variable_name}}
  3. Send with template using POST /email/withTemplate or POST /email/batchWithTemplates
  4. Pass data via TemplateModel — Postmark renders and sends

Template Syntax (Handlebars)

handlebars
Hello {{name}}, {{! variable }}
{{{html_content}}} {{! unescaped HTML }}
{{#if premium}}Premium member{{/if}} {{! conditional }}
{{#each items}}{{this.name}}{{/each}} {{! iteration }}
{{customer.address.city}} {{! nested object }}

See references/handlebars-syntax.md for the full syntax reference including conditionals, iteration with index, nested objects, and common mistakes.

Template Types

TypeTemplateTypeSendablePurpose
Standard"Standard"YesDefines subject, HTML, and text body
Layout"Layout"NoReusable wrapper injected via {{{@content}}}

Standard templates can reference a Layout via LayoutTemplate: "layout-alias". The Standard template's body replaces {{{@content}}} in the Layout at send time.

See references/layout-templates.md for layout creation, assignment, and examples.

API Endpoints

Template CRUD
EndpointMethodDescription
/templatesPOSTCreate a new template
/templatesGETList all templates (?count=100&offset=0&templateType=Standard)
/templates/{idOrAlias}GETGet a single template
/templates/{idOrAlias}PUTUpdate a template
/templates/{idOrAlias}DELETEDelete a template
/templates/validatePOSTValidate template rendering
/templates/pushPUTPush templates to another server
Sending with Templates
EndpointMethodDescription
/email/withTemplatePOSTSend single email with template
/email/batchWithTemplatesPOSTSend batch with templates (up to 500)

Send with Template

Always use TemplateAlias over TemplateId — aliases survive re-creation and work across environments:

javascript
const postmark = require('postmark');
const client = new postmark.ServerClient(process.env.POSTMARK_SERVER_TOKEN);
await client.sendEmailWithTemplate({
From: 'hello@yourdomain.com',
To: 'customer@example.com',
TemplateAlias: 'welcome-email',
TemplateModel: {
name: 'Jane Doe',
product_name: 'Acme App'
},
MessageStream: 'outbound'
});

Validate a Template

Test-render without sending — useful in CI/CD before deploying template changes:

javascript
const validation = await client.validateTemplate({
Subject: 'Welcome {{name}}',
HtmlBody: '<h1>Hello {{name}}</h1>',
TextBody: 'Hello {{name}}',
TestRenderModel: { name: 'Test User' }
});
console.log('Valid:', validation.AllContentIsValid);
console.log('Rendered:', validation.Subject.RenderedContent);

See references/template-api.md for full CRUD operations (create, list, update, delete), batch sending, validate, and push between servers.

Common Mistakes

MistakeFix
Using {{html}} for HTML contentUse triple braces {{{html}}} for unescaped HTML
Forgetting {{{@content}}} in LayoutLayout templates must include {{{@content}}} placeholder
Deleting a Layout with dependentsRemove layout association from Standard templates first
Using Template ID across environmentsUse TemplateAlias — it survives re-creation and works across servers
Not validating before deployUse /templates/validate to test-render before sending
Sending a Layout directlyLayouts are wrappers — you can only send Standard templates
Missing TemplateModel fieldsHandlebars renders missing variables as empty strings — validate your data
Exceeding 100 templatesContact Postmark support to increase the per-server limit

Notes

  • Templates use Handlebars (Mustache-compatible) syntax — no React or client-side rendering needed
  • Template aliases are strings; template IDs are integers — prefer aliases for portability
  • TemplateType is either Standard (sendable) or Layout (wrapper)
  • Layout inheritance: Standard template body replaces {{{@content}}} in the Layout
  • Push templates between servers using the Account Token (not Server Token)
  • Maximum 100 templates per server by default
  • Template validation (/templates/validate) lets you test-render without sending
  • Both TemplateId and TemplateAlias work for sending — use one, not both

Security

  • Security scanPassed, 95 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
31
7-day trend score
17

Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 18 Mar 2026, 7 months ago.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/activecampaign/postmark-skills/postmark-templates/badge)](https://verified-skill.com/skills/activecampaign/postmark-skills/postmark-templates)

Something wrong with this skill or its page? Tell us.