- Documentation
- Integrations
- Apps
- Postmark integration
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
- Open your workspace in TaskJuice and navigate to Connections.
- Choose Postmark and click Connect.
- In a new tab, sign in to account.postmarkapp.com as the client and open the server you want to integrate.
- 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.
- 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-deliveredfires when a recipient's mail server accepts an outbound message.postmark/email-bouncedfires when a message bounces. The payload includes the bounce type, a description, and whether the address can be reactivated.postmark/email-openedfires when a recipient opens a tracked message. The payload includes the platform, email client and approximate location.postmark/link-clickedfires when a recipient clicks a tracked link. The payload includes the original URL and where in the message the link was clicked.postmark/spam-complaintfires when a recipient marks a message as spam.postmark/subscription-changedfires 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-receivedfires 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 asitems. 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-emailsends one email with HTML and plain-text bodies, a message stream, a tag, reply-to and open/link tracking.postmark/send-email-with-templatesends one email from a saved template, filling it with a template model.postmark/send-email-batchsends up to 500 separate emails in one call and returns a result for each one.postmark/send-email-batch-with-templatessends up to 500 templated emails in one call, each with its own template and model.postmark/send-bulk-emailsends 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-statusreports how far a bulk send has progressed.
Templates
postmark/list-templates,postmark/get-template,postmark/create-template,postmark/update-templateandpostmark/delete-templatemanage the server's templates and layouts.postmark/validate-templaterenders template content against a test model and reports syntax errors without saving anything.
Suppressions and message streams
postmark/list-suppressionslists the addresses a stream will not send to, and why each one is there.postmark/add-suppressionsstops a stream from sending to one or more addresses.postmark/remove-suppressionslets 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-streamandpostmark/unarchive-message-streammanage the server's transactional, broadcast and inbound streams.
Message history and engagement
postmark/list-outbound-messages,postmark/get-outbound-message-detailsandpostmark/get-outbound-message-dumpsearch sent mail and return a message's delivery timeline or raw source.postmark/list-message-opensandpostmark/list-message-clickslist engagement across the server.postmark/list-opens-for-messageandpostmark/list-clicks-for-messagelist 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-statsreturns headline sending and engagement totals.postmark/get-outbound-stats-breakdownreturns one day-by-day series, such as opens by email client or clicks by location.
Bounces
postmark/list-bounces,postmark/get-bounceandpostmark/get-bounce-dumpsearch bounces and return a bounce's raw source.postmark/activate-bouncereactivates a bounced address so the server sends to it again.postmark/get-delivery-statsreturns the number of inactive addresses and a count for each bounce type.
Inbound mail
postmark/list-inbound-messagesandpostmark/get-inbound-message-detailssearch and read received mail.postmark/retry-inbound-messagere-posts a failed inbound message to the server's inbound webhook.postmark/bypass-inbound-messagereleases a message that an inbound rule blocked.postmark/list-inbound-rules,postmark/create-inbound-ruleandpostmark/delete-inbound-rulemanage the addresses and domains blocked from inbound processing.
Server and webhooks
postmark/get-serverandpostmark/update-serverread 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-webhookandpostmark/delete-webhookmanage 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.