Tracking and unsubscribes
Track opens and clicks on sent mail, and add one-click unsubscribe to bulk mail.
Track whether recipients open a message and click its links, and give bulk mail a working unsubscribe. Both are options on a send or mail merge.
Open and click tracking
With tracking on, the HTML part gets a 1x1 pixel (opens) and its links go through a Workwae redirect (clicks). Text parts are never changed.
The account's trackOpens, trackClicks and trackingHoneypot settings are the defaults. A send's own tracking object overrides them.
curl -X POST "https://api.workwae.com/v1/accounts/$ACCOUNT_ID/outbox" \
-H "Authorization: Bearer $WORKWAE_API_KEY" \
-H "content-type: application/json" \
-d '{
"to": [{ "address": "ada@example.com" }],
"subject": "Spring sale",
"html": "<p>Our <a href=\"https://shop.example.com/sale\">spring sale</a> starts today.</p>",
"tracking": { "opens": true, "clicks": true, "honeypot": true }
}'- Tracking is per message, not per recipient: every recipient of one send gets the same MIME. Use a mail merge for per-recipient numbers.
- Drafts on Gmail or Microsoft 365 cannot be tracked (
tracking_unsupported).
Read the results
The outbox entry holds counts; GET /v1/accounts/{accountId}/outbox/{outboxId}/tracking lists each hit with what its request showed. Hits are also reported as message.opened and message.clicked events.
curl "https://api.workwae.com/v1/accounts/$ACCOUNT_ID/outbox/$OUTBOX_ID/tracking" \
-H "Authorization: Bearer $WORKWAE_API_KEY"Each hit is classified:
| Class | Meaning |
|---|---|
human | A person opened or clicked. |
proxy | A machine, such as Gmail's image proxy. |
prefetch | A machine, such as Apple Mail Privacy Protection. |
scanner | A machine, such as a link scanner. |
unknown | Not classifiable. |
Honeypot link
honeypot: true adds one hidden link that only machines follow, which sharpens the scanner classification. It needs click tracking (honeypot_needs_click_tracking otherwise).
Unsubscribe links
Name a suppression list with listId to send bulk mail properly:
- The message gets one-click unsubscribe headers (RFC 8058).
{{rcpt.unsubscribeUrl}}in a template renders the recipient's own unsubscribe link.- An address on that list or on the global list is skipped with reason
suppressed. - A single send naming a list must have exactly one
toand noccorbcc. For many recipients, use a mail merge.
Unsubscribing through the header or the link always suppresses the address, regardless of the optOutHandling setting; see Detected opt-outs.