{"slug":"postmark-automation","title":"postmark-automation","summary":"Automate Postmark email delivery tasks via Rube MCP (Composio): send templated emails, manage templates, monitor delivery stats and bounces. Always search tools first for current schemas.","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-09-14T20:53:43.753478Z","repo":{"url":"https://github.com/davepoon/buildwithclaude","stars":3494,"forks":514,"license":"MIT","updatedAt":"2026-09-17T11:58:48Z"},"bodyHtml":"<hr>\n<h2>name: postmark-automation\ndescription: \"Automate Postmark email delivery tasks via Rube MCP (Composio): send templated emails, manage templates, monitor delivery stats and bounces. Always search tools first for current schemas.\"\nrequires:\nmcp: [rube]\ncategory: email</h2>\n<h1>Postmark Automation via Rube MCP</h1>\n<p>Automate Postmark transactional email operations through Composio's Postmark toolkit via Rube MCP.</p>\n<p><strong>Toolkit docs</strong>: <a href=\"https://composio.dev/toolkits/postmark\">composio.dev/toolkits/postmark</a></p>\n<h2>Prerequisites</h2>\n<ul>\n<li>Rube MCP must be connected (RUBE_SEARCH_TOOLS available)</li>\n<li>Active Postmark connection via <code>RUBE_MANAGE_CONNECTIONS</code> with toolkit <code>postmark</code></li>\n<li>Always call <code>RUBE_SEARCH_TOOLS</code> first to get current tool schemas</li>\n</ul>\n<h2>Setup</h2>\n<p><strong>Get Rube MCP</strong>: Add <code>https://rube.app/mcp</code> as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.</p>\n<ol>\n<li>Verify Rube MCP is available by confirming <code>RUBE_SEARCH_TOOLS</code> responds</li>\n<li>Call <code>RUBE_MANAGE_CONNECTIONS</code> with toolkit <code>postmark</code></li>\n<li>If connection is not ACTIVE, follow the returned auth link to complete Postmark authentication</li>\n<li>Confirm connection status shows ACTIVE before running any workflows</li>\n</ol>\n<h2>Core Workflows</h2>\n<h3>1. Send Templated Batch Emails</h3>\n<p><strong>When to use</strong>: User wants to send templated emails to multiple recipients in one call</p>\n<p><strong>Tool sequence</strong>:</p>\n<ol>\n<li><code>POSTMARK_LIST_TEMPLATES</code> - Find available templates and their IDs [Prerequisite]</li>\n<li><code>POSTMARK_VALIDATE_TEMPLATE</code> - Validate template with model data before sending [Optional]</li>\n<li><code>POSTMARK_SEND_BATCH_WITH_TEMPLATES</code> - Send batch emails using a template [Required]</li>\n</ol>\n<p><strong>Key parameters</strong>:</p>\n<ul>\n<li><code>TemplateId</code> or <code>TemplateAlias</code>: Identifier for the template to use</li>\n<li><code>Messages</code>: Array of message objects with <code>From</code>, <code>To</code>, <code>TemplateModel</code></li>\n<li><code>TemplateModel</code>: Key-value pairs matching template variables</li>\n</ul>\n<p><strong>Pitfalls</strong>:</p>\n<ul>\n<li>Maximum 500 messages per batch call</li>\n<li>Either <code>TemplateId</code> or <code>TemplateAlias</code> is required, not both</li>\n<li><code>TemplateModel</code> keys must match template variable names exactly (case-sensitive)</li>\n<li>Sender address must be a verified Sender Signature or from a verified domain</li>\n</ul>\n<h3>2. Manage Email Templates</h3>\n<p><strong>When to use</strong>: User wants to create, edit, or inspect email templates</p>\n<p><strong>Tool sequence</strong>:</p>\n<ol>\n<li><code>POSTMARK_LIST_TEMPLATES</code> - List all templates with IDs and names [Required]</li>\n<li><code>POSTMARK_GET_TEMPLATE</code> - Get full template details including HTML/text body [Optional]</li>\n<li><code>POSTMARK_EDIT_TEMPLATE</code> - Update template content or settings [Optional]</li>\n<li><code>POSTMARK_VALIDATE_TEMPLATE</code> - Test template rendering with sample data [Optional]</li>\n</ol>\n<p><strong>Key parameters</strong>:</p>\n<ul>\n<li><code>TemplateId</code>: Numeric template ID for GET/EDIT operations</li>\n<li><code>Name</code>: Template display name</li>\n<li><code>Subject</code>: Email subject line (supports template variables)</li>\n<li><code>HtmlBody</code>: HTML content of the template</li>\n<li><code>TextBody</code>: Plain text fallback content</li>\n<li><code>TemplateType</code>: 'Standard' or 'Layout'</li>\n</ul>\n<p><strong>Pitfalls</strong>:</p>\n<ul>\n<li>Template IDs are numeric integers, not strings</li>\n<li>Editing a template replaces the entire content; include all fields you want to keep</li>\n<li>Layout templates wrap Standard templates; changing a layout affects all linked templates</li>\n<li>Validate before sending to catch missing variables early</li>\n</ul>\n<h3>3. Monitor Delivery Statistics</h3>\n<p><strong>When to use</strong>: User wants to check email delivery health, open/click rates, or outbound overview</p>\n<p><strong>Tool sequence</strong>:</p>\n<ol>\n<li><code>POSTMARK_GET_DELIVERY_STATS</code> - Get bounce counts by type [Required]</li>\n<li><code>POSTMARK_GET_OUTBOUND_OVERVIEW</code> - Get sent/opened/clicked/bounced summary [Required]</li>\n<li><code>POSTMARK_GET_TRACKED_EMAIL_COUNTS</code> - Get tracked email volume over time [Optional]</li>\n</ol>\n<p><strong>Key parameters</strong>:</p>\n<ul>\n<li><code>fromdate</code>: Start date for filtering stats (YYYY-MM-DD)</li>\n<li><code>todate</code>: End date for filtering stats (YYYY-MM-DD)</li>\n<li><code>tag</code>: Filter stats by message tag</li>\n<li><code>messagestreamid</code>: Filter by message stream (e.g., 'outbound', 'broadcast')</li>\n</ul>\n<p><strong>Pitfalls</strong>:</p>\n<ul>\n<li>Date parameters use YYYY-MM-DD format without time component</li>\n<li>Stats are aggregated; individual message tracking requires separate API calls</li>\n<li><code>messagestreamid</code> defaults to all streams if not specified</li>\n</ul>\n<h3>4. Manage Bounces and Complaints</h3>\n<p><strong>When to use</strong>: User wants to review bounced emails or spam complaints</p>\n<p><strong>Tool sequence</strong>:</p>\n<ol>\n<li><code>POSTMARK_GET_BOUNCES</code> - List bounced messages with details [Required]</li>\n<li><code>POSTMARK_GET_SPAM_COMPLAINTS</code> - List spam complaint records [Optional]</li>\n<li><code>POSTMARK_GET_DELIVERY_STATS</code> - Get bounce summary counts [Optional]</li>\n</ol>\n<p><strong>Key parameters</strong>:</p>\n<ul>\n<li><code>count</code>: Number of records to return per page</li>\n<li><code>offset</code>: Pagination offset for results</li>\n<li><code>type</code>: Bounce type filter (e.g., 'HardBounce', 'SoftBounce', 'SpamNotification')</li>\n<li><code>fromdate</code>/<code>todate</code>: Date range filters</li>\n<li><code>emailFilter</code>: Filter by recipient email address</li>\n</ul>\n<p><strong>Pitfalls</strong>:</p>\n<ul>\n<li>Bounce types include: HardBounce, SoftBounce, SpamNotification, SpamComplaint, Transient, and others</li>\n<li>Hard bounces indicate permanent delivery failures; these addresses should be removed</li>\n<li>Spam complaints affect sender reputation; monitor regularly</li>\n<li>Pagination uses <code>count</code> and <code>offset</code>, not page tokens</li>\n</ul>\n<h3>5. Configure Server Settings</h3>\n<p><strong>When to use</strong>: User wants to view or modify Postmark server configuration</p>\n<p><strong>Tool sequence</strong>:</p>\n<ol>\n<li><code>POSTMARK_GET_SERVER</code> - Retrieve current server settings [Required]</li>\n<li><code>POSTMARK_EDIT_SERVER</code> - Update server configuration [Optional]</li>\n</ol>\n<p><strong>Key parameters</strong>:</p>\n<ul>\n<li><code>Name</code>: Server display name</li>\n<li><code>SmtpApiActivated</code>: Enable/disable SMTP API access</li>\n<li><code>BounceHookUrl</code>: Webhook URL for bounce notifications</li>\n<li><code>InboundHookUrl</code>: Webhook URL for inbound email processing</li>\n<li><code>TrackOpens</code>: Enable/disable open tracking</li>\n<li><code>TrackLinks</code>: Link tracking mode ('None', 'HtmlAndText', 'HtmlOnly', 'TextOnly')</li>\n</ul>\n<p><strong>Pitfalls</strong>:</p>\n<ul>\n<li>Server edits affect all messages sent through that server</li>\n<li>Webhook URLs must be publicly accessible HTTPS endpoints</li>\n<li>Changing <code>SmtpApiActivated</code> affects SMTP relay access immediately</li>\n<li>Track settings apply to future messages only, not retroactively</li>\n</ul>\n<h2>Common Patterns</h2>\n<h3>Template Variable Resolution</h3>\n<pre><code>1. Call POSTMARK_GET_TEMPLATE with TemplateId\n2. Inspect HtmlBody/TextBody for {{variable}} placeholders\n3. Build TemplateModel dict with matching keys\n4. Call POSTMARK_VALIDATE_TEMPLATE to verify rendering\n</code></pre>\n<h3>Pagination</h3>\n<ul>\n<li>Set <code>count</code> for results per page (varies by endpoint)</li>\n<li>Use <code>offset</code> to skip previously fetched results</li>\n<li>Increment offset by count each page until results returned &lt; count</li>\n<li>Total records may be returned in response metadata</li>\n</ul>\n<h2>Known Pitfalls</h2>\n<p><strong>Authentication</strong>:</p>\n<ul>\n<li>Postmark uses server-level API tokens, not account-level</li>\n<li>Each server has its own token; ensure correct server context</li>\n<li>Sender addresses must be verified Sender Signatures or from verified domains</li>\n</ul>\n<p><strong>Rate Limits</strong>:</p>\n<ul>\n<li>Batch send limited to 500 messages per call</li>\n<li>API rate limits vary by endpoint; implement backoff on 429 responses</li>\n</ul>\n<p><strong>Response Parsing</strong>:</p>\n<ul>\n<li>Response data may be nested under <code>data</code> or <code>data.data</code></li>\n<li>Parse defensively with fallback patterns</li>\n<li>Template IDs are always numeric integers</li>\n</ul>\n<h2>Quick Reference</h2>\n<table>\n<thead>\n<tr>\n<th>Task</th>\n<th>Tool Slug</th>\n<th>Key Params</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Send batch templated emails</td>\n<td>POSTMARK_SEND_BATCH_WITH_TEMPLATES</td>\n<td>Messages, TemplateId/TemplateAlias</td>\n</tr>\n<tr>\n<td>List templates</td>\n<td>POSTMARK_LIST_TEMPLATES</td>\n<td>Count, Offset, TemplateType</td>\n</tr>\n<tr>\n<td>Get template details</td>\n<td>POSTMARK_GET_TEMPLATE</td>\n<td>TemplateId</td>\n</tr>\n<tr>\n<td>Edit template</td>\n<td>POSTMARK_EDIT_TEMPLATE</td>\n<td>TemplateId, Name, Subject, HtmlBody</td>\n</tr>\n<tr>\n<td>Validate template</td>\n<td>POSTMARK_VALIDATE_TEMPLATE</td>\n<td>TemplateId, TemplateModel</td>\n</tr>\n<tr>\n<td>Delivery stats</td>\n<td>POSTMARK_GET_DELIVERY_STATS</td>\n<td>(none or date filters)</td>\n</tr>\n<tr>\n<td>Outbound overview</td>\n<td>POSTMARK_GET_OUTBOUND_OVERVIEW</td>\n<td>fromdate, todate, tag</td>\n</tr>\n<tr>\n<td>Get bounces</td>\n<td>POSTMARK_GET_BOUNCES</td>\n<td>count, offset, type, emailFilter</td>\n</tr>\n<tr>\n<td>Get spam complaints</td>\n<td>POSTMARK_GET_SPAM_COMPLAINTS</td>\n<td>count, offset, fromdate, todate</td>\n</tr>\n<tr>\n<td>Tracked email counts</td>\n<td>POSTMARK_GET_TRACKED_EMAIL_COUNTS</td>\n<td>fromdate, todate, tag</td>\n</tr>\n<tr>\n<td>Get server config</td>\n<td>POSTMARK_GET_SERVER</td>\n<td>(none)</td>\n</tr>\n<tr>\n<td>Edit server config</td>\n<td>POSTMARK_EDIT_SERVER</td>\n<td>Name, TrackOpens, TrackLinks</td>\n</tr>\n</tbody>\n</table>\n<hr>\n<p><em>Powered by <a href=\"https://composio.dev\">Composio</a></em></p>\n","files":[{"path":"SKILL.md","sizeBytes":8048,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"clean","suspicious":0,"notes":0,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-09-14T20:54:56.812668Z","sha256":"4DB30730B8C55DACA5980E3E42ABF87E8512B52F6547321889D0A7BDEA20936D","sizeBytes":3225},"review":null,"source":{"repositoryUrl":"https://github.com/davepoon/buildwithclaude","path":"plugins/all-skills/skills/postmark-automation","license":"MIT","commit":"2e757dae349898c0b761bd8926acdacb35f21954","subtreeSha":"5A3A4B5596C34327F125B812A3C5B11B612B88A51B210E34A221194DE152286E","lastSyncedAt":"2026-09-19T13:50:10.625828Z"},"reviewedAt":"2026-09-14T20:59:14.704792Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/davepoon/buildwithclaude/tree/main/plugins/all-skills/skills/postmark-automation"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install davepoon-buildwithclaude@llmmart"},{"target":"git","command":"git clone https://github.com/davepoon/buildwithclaude.git"}]}