Appearance
Postmark integration
Postmark is an email delivery service focused on transactional email. This integration lets your WeWeb backend send emails using Postmark’s API.
Use cases
- Send transactional emails from backend workflows (sign-up confirmations, password resets, receipts)
- Use plain text, HTML, or both (multipart)
- Add attachments, CC/BCC, tags, and custom metadata for tracking
- Track opens and link clicks when enabled
Setup
- In Postmark, create a Server and obtain an API Token (My Server → API Tokens).
- In WeWeb, go to the Settings tab → Integrations → Postmark → Add connection.
- Add your API Token for each environment (Editor, Staging, Production) as needed.
- Verify your Sender Signature (email or domain) in Postmark so you can send from your chosen From address.
- Test by sending a simple email (e.g. to yourself) using the Send Email action.
Common pitfalls (setup & usage)
Sender not verified
The From email or domain must be verified in Postmark. Use the Sender Signatures section in the Postmark dashboard to verify. Until then, sends may fail or be restricted.
Text content required
You must provide at least Text Content (TextBody). Provide both Text Content and HTML Content for multipart messages; total size cannot exceed 50 MB.
50-recipient limit
To, Cc, and Bcc combined are limited to 50 recipients per message. Split larger sends into multiple API calls.
Webhook / Message stream
If you use multiple message streams, set MessageStream to the correct stream ID (e.g. outbound transactional). Default is the outbound transactional stream.
All Actions
| Action | Description |
|---|---|
| Send Email | Send an email with optional HTML, attachments, CC/BCC, tag, and metadata |
Action details
Send Email
Send a single email through Postmark. At least Text Content is required; HTML Content is optional. Attachments, CC/BCC, tag, metadata, and tracking options are supported.
Inputs
| Display Key | Example Input | Description | Restrictions |
|---|---|---|---|
From Email | "sender@example.com" | Sender address (must be from a verified email or domain) | Required |
To Email(s) | "recipient@example.com" | Recipient address(es), comma-separated (max 50 total with Cc/Bcc) | Required |
Subject | "Your order confirmation" | Email subject | Required; max 1000 chars |
Text Content | "Thank you for your order." | Plain text body | Required; provide both for multipart |
HTML ContentOptional | "<p>Thank you...</p>" | HTML body | Multipart when both text and HTML provided; max 50 MB total |
AttachmentsOptional | [{ "Name": "doc.pdf", "Content": "<base64>", "ContentType": "application/pdf" }] | File attachments; each needs Name, Content (Base64), ContentType; optional ContentID for inline images | Total email size max 50 MB |
Reply ToOptional | "support@example.com" | Reply-to address | — |
CC RecipientsOptional | "cc@example.com" | Carbon copy, comma-separated | Counts toward 50-recipient limit |
BCC RecipientsOptional | "bcc@example.com" | Blind carbon copy, comma-separated | Counts toward 50-recipient limit |
TagOptional | "confirm_email" | Single tag for categorization and statistics | Max 1000 chars |
MetadataOptional | {"key": "value"} | Custom metadata key-value pairs | — |
HeadersOptional | [{"Name": "Message-ID", "Value": "<id@example.com>"}] | Custom headers | — |
Tracking opensOptional | false | Enable open tracking | Boolean |
Tracking linksOptional | "None" | Link tracking: HtmlAndText, HtmlOnly, TextOnly, or None | — |
MessageStreamOptional | "outbound" | Message stream ID; defaults to default transactional stream | — |
Example output
json
{
"To": "recipient@example.com",
"SubmittedAt": "2024-01-15T12:00:00Z",
"MessageID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"ErrorCode": 0
}Documentation of API endpoint that powers action: Postmark – Send Email
Error handling
| Error code and type | Reason |
|---|---|
| 401 Unauthorized | Invalid or missing API Token. |
| 422 Unprocessable Entity | Invalid payload (e.g. sender not verified, missing required field, invalid attachment). |
| 429 Too Many Requests | Rate limit exceeded; retry with backoff. |
| 500 Internal Server Error | Provider-side error; retry with backoff. |
FAQs
Where do I get the API Token?
In the Postmark dashboard, open your Server → API Tokens. Create a token and paste it into WeWeb as the connection’s API Token.
Can I send to multiple recipients?
Yes. Put comma-separated addresses in To Email(s) (or use Cc/Bcc). The total number of recipients (To + Cc + Bcc) per message cannot exceed 50.
How do I add inline images?
Add an attachment with Content (Base64), ContentType, and ContentID. In your HTML, reference the image with cid:your-content-id so the ContentID value matches.

