Skip to main content

Postmark integration

Send transactional and broadcast email, manage templates and suppressions, and react to delivery, bounce, open and click events on behalf of your clients.

What it does

The Postmark integration lets your agency send email from any workflow and turn delivery feedback into automation. Connect a client's Postmark server token once. Your workflows can then:

  • send single, batched, templated and bulk broadcast email
  • manage the client's templates, message streams and suppression lists
  • look up message history, bounces and engagement
  • react in real time when Postmark reports a delivery, bounce, open, click, spam complaint or subscription change

Connect a Postmark account

  1. Open your workspace in TaskJuice and navigate to Connections.
  2. Choose Postmark and click Connect.
  3. In a new tab, sign in to account.postmarkapp.com as the client and open the server you want to integrate.
  4. Open the API Tokens tab on that server and copy the server token. Keep one server per client so revoking one client's access never affects another.
  5. Paste the token into TaskJuice and save the connection.

To rotate or revoke the token later, return to the server's API Tokens tab in Postmark, regenerate the token, and update the TaskJuice connection.

Triggers

Add a Postmark event trigger to a workflow and publish. That is the whole setup.

TaskJuice registers the webhook on the connected Postmark server for you. It points the webhook at an address only your workspace receives on, enables the events it routes, and attaches a secret header it generates and keeps. There is no webhook to create in Postmark, no URL to copy, and no secret to invent. Postmark does not sign webhook payloads, so TaskJuice checks that secret header on every delivery and rejects any request without it.

  • postmark/email-delivered fires when a recipient's mail server accepts an outbound message.
  • postmark/email-bounced fires when a message bounces. The payload includes the bounce type, a description, and whether the address can be reactivated.
  • postmark/email-opened fires when a recipient opens a tracked message. The payload includes the platform, email client and approximate location.
  • postmark/link-clicked fires when a recipient clicks a tracked link. The payload includes the original URL and where in the message the link was clicked.
  • postmark/spam-complaint fires when a recipient marks a message as spam.
  • postmark/subscription-changed fires when an address is suppressed or reactivated on a message stream, whether by an unsubscribe, a hard bounce, a spam complaint or a manual change.
  • postmark/inbound-message-received fires when new mail arrives at the server's inbound address. Unlike the other triggers, this one checks Postmark on a schedule rather than receiving a push. Postmark delivers inbound mail to a single inbound webhook URL per server, which TaskJuice leaves under your control. Each check delivers every new message in one activation as items. Add a Loop node to handle them one at a time.

Open and click events only fire for messages sent with tracking enabled, either per message or through the server's defaults.

Actions

Sending

  • postmark/send-email sends one email with HTML and plain-text bodies, a message stream, a tag, reply-to and open/link tracking.
  • postmark/send-email-with-template sends one email from a saved template, filling it with a template model.
  • postmark/send-email-batch sends up to 500 separate emails in one call and returns a result for each one.
  • postmark/send-email-batch-with-templates sends up to 500 templated emails in one call, each with its own template and model.
  • postmark/send-bulk-email sends one message or template to many recipients through Postmark's Bulk API. Use it for newsletters and announcements on a broadcast stream.
  • postmark/get-bulk-email-status reports how far a bulk send has progressed.

Templates

  • postmark/list-templates, postmark/get-template, postmark/create-template, postmark/update-template and postmark/delete-template manage the server's templates and layouts.
  • postmark/validate-template renders template content against a test model and reports syntax errors without saving anything.

Suppressions and message streams

  • postmark/list-suppressions lists the addresses a stream will not send to, and why each one is there.
  • postmark/add-suppressions stops a stream from sending to one or more addresses.
  • postmark/remove-suppressions lets a stream send to those addresses again. Postmark does not allow removing a suppression caused by a spam complaint.
  • postmark/list-message-streams, postmark/get-message-stream, postmark/create-message-stream, postmark/update-message-stream, postmark/archive-message-stream and postmark/unarchive-message-stream manage the server's transactional, broadcast and inbound streams.

Message history and engagement

  • postmark/list-outbound-messages, postmark/get-outbound-message-details and postmark/get-outbound-message-dump search sent mail and return a message's delivery timeline or raw source.
  • postmark/list-message-opens and postmark/list-message-clicks list engagement across the server. postmark/list-opens-for-message and postmark/list-clicks-for-message list it for one message. Postmark stores only the first open of each message, so use the Email Opened trigger to see every open.
  • postmark/get-outbound-stats returns headline sending and engagement totals. postmark/get-outbound-stats-breakdown returns one day-by-day series, such as opens by email client or clicks by location.

Bounces

  • postmark/list-bounces, postmark/get-bounce and postmark/get-bounce-dump search bounces and return a bounce's raw source.
  • postmark/activate-bounce reactivates a bounced address so the server sends to it again.
  • postmark/get-delivery-stats returns the number of inactive addresses and a count for each bounce type.

Inbound mail

  • postmark/list-inbound-messages and postmark/get-inbound-message-details search and read received mail.
  • postmark/retry-inbound-message re-posts a failed inbound message to the server's inbound webhook.
  • postmark/bypass-inbound-message releases a message that an inbound rule blocked.
  • postmark/list-inbound-rules, postmark/create-inbound-rule and postmark/delete-inbound-rule manage the addresses and domains blocked from inbound processing.

Server and webhooks

  • postmark/get-server and postmark/update-server read and change the server's settings: inbound webhook URL and domain, spam threshold and tracking defaults.
  • postmark/list-webhooks, postmark/get-webhook, postmark/create-webhook, postmark/update-webhook and postmark/delete-webhook manage the server's webhook registrations. The registration TaskJuice created for your triggers appears in this list. If you delete it, those triggers stop firing until TaskJuice re-registers it.

Templates, message streams, layouts, webhooks and inbound rules are chosen from dropdowns populated from the connected server. Each dropdown also accepts a value mapped from an earlier step.

Known limitations

  • A server token is scoped to one Postmark server. Account-level operations (creating servers, managing sender signatures and domains, and data-removal requests) need an account token, which this integration does not use. Manage those in the Postmark dashboard.
  • Postmark rate limits, sending limits, and sender-signature rules come from the client's Postmark account. A Postmark validation error (HTTP 422) is reported as a failure that will not be retried. A rate-limit response (HTTP 429) is retried.
  • The webhook TaskJuice registers enables all six outbound event types, whichever triggers you publish. Events with no published trigger are discarded when they arrive, so a high-volume sender still generates delivery and open traffic to TaskJuice even if only the bounce trigger is published.
  • The webhook TaskJuice registers covers the server's default transactional stream (outbound). Events from broadcast streams, including unsubscribes from newsletters, are not delivered to these triggers yet.
  • When TaskJuice registers or edits the webhook, Postmark first sends a test event for each enabled event type and refuses to save the webhook unless every one succeeds.
  • Postmark keeps message history and message dumps for the server's retention period (45 days by default, configurable from 7 to 365 days) and bounce dumps for 30 days. Lookups for older records return not found.
Was this helpful?