Email campaigns
An email that actually leaves the building
Pick an audience — all donors, a list, or a saved segment — write the email, and send it through SendGrid. If a send crashes partway, it resumes instead of duplicating or dropping recipients.
Built to actually deliver
- SendGrid
- the delivery path, named
- 3 retries
- per chunk, with backoff
- 15 min
- stuck-send timeout, swept clean
- 3 audiences
- all donors, list, or segment
Delivery you can trust
A crash mid-send doesn't mean a resend, or a lost recipient
Recipients are claimed row by row and sent in chunks of 500. If a chunk fails, it retries up to three times with backoff. If a send job stalls for more than 15 minutes, those rows are marked as delivery-uncertain instead of silently sitting in limbo or firing twice.
- Chunked sends of 500 recipients per SendGrid call
- Up to 3 retries per chunk, with exponential backoff
- Stuck sends past 15 minutes are swept to a clear failed state
- Per-recipient status: pending, sending, sent, or failed
Audience and scheduling
All donors, a list, or a saved segment
Send to everyone, a hand-picked list of donor IDs, or a segment you've already saved. Campaigns can be scheduled ahead instead of sent the moment they're written.
- Three audience types: all donors, a custom list, or a saved segment
- Schedule a campaign for a future send
- Draft, scheduled, sending, sent, failed, and cancelled states, visible per campaign
Unsubscribe and suppression
Opting out actually works
Every send carries a working unsubscribe link and standard List-Unsubscribe headers, backed by a suppression list so an opted-out donor stays opted out on the next campaign — not just the one they clicked from.
- Tokenized unsubscribe link plus a mailto fallback
- Standard List-Unsubscribe / List-Unsubscribe-Post headers
- A suppression list that carries across campaigns
- Opens, clicks, and bounces tracked via SendGrid's own webhook
Frequently asked questions
Will a test send accidentally reach real donors?
No. Outside production, every send is forced into SendGrid's sandbox mode — it validates but delivers nothing — unless an explicit override is turned on for that environment.
Does this send WhatsApp or SMS as well?
No. This is email, sent through SendGrid. There's no broadcast channel beyond email today.
What happens if I hit send and my connection drops?
The send job keeps running server-side and resumes from wherever it stopped — recipients already claimed won't be sent to twice, and rows that stall are flagged rather than left ambiguous.
Our donors didn't opt in to marketing email. What are the rules?
DonorCARE doesn't manage consent capture for you — whether you have a legitimate basis to email a donor is your organization's own call under Malaysia's PDPA, based on your relationship with them. What it does enforce on every send: a working unsubscribe link, standard List-Unsubscribe and List-Unsubscribe-Post headers, and a suppression list, so once someone opts out, they're out for good — not just from the campaign they clicked from.
If a donor unsubscribes, can we still email them from a future campaign?
No. Unsubscribes land on a suppression list that every future campaign checks against, whichever list, segment, or all-donors audience you pick. It's not a per-campaign setting you can override.
Write it once, send it to the right donors
Email campaigns are included on the Pro plan, with SendGrid delivery built in.

