Ministrium sends email via a transactional provider (SendGrid in production) using domains authenticated with SPF, DKIM, and DMARC. There are two send categories: transactional and campaign.
Transactional vs campaign
| Type | Triggered by | Examples | Template |
|---|---|---|---|
| Transactional | System event | Donation receipt, registration confirmation, reminder | System template, editable |
| Campaign | A person in the church | Weekly newsletter, event invite, announcement | Custom template |
Transactional does not require explicit opt-in (it’s part of the service). Campaigns do: the recipient must have given consent.
Create a campaign
- Communications → Campaigns → New → Email.
- Pick a list or dynamic segment (see Lists and segments).
- Subject, preview text, body (visual editor or HTML).
- Preview with real data from a list member.
- Test send to 3 internal addresses.
- Schedule or send immediately.
The editor uses blocks: Text, Image, Button, Divider, Columns, Header. Each block is responsive by default.
Available variables
{{member.first_name}} → John
{{member.last_name}} → Doe
{{member.preferred_name}} → Johnny (if set)
{{member.campus.name}} → Downtown Campus
{{church.name}} → La Roca Church
{{church.address.short}} → 1234 Reforma Ave, NYC
{{unsubscribe_url}} → Per-recipient unique URL (required)If a variable has no value, it falls back to a per-channel default (configurable in Templates → Defaults).
Deliverability
So your mail lands in the inbox and not in spam:
- Authenticate your domain: SPF + DKIM + DMARC (step-by-step guide in Connect domain).
- Warm the domain: start with small lists (≤ 500) and ramp volume 20% per week.
- Clean list: hard bounces are auto-disabled. Soft bounces retry 3 times then disable.
- Complaint rate < 0.1%: above that threshold your domain enters quarantine and you must open a ticket.
Metrics
Each campaign reports: sent, delivered, opens (pixel-based), clicks (redirect), unsubscribes, complaints, bounces. Data lags 5–15 minutes.
iOS ≥ 15.4 open rate is artificially inflated by image caching. Don’t use it alone to judge engagement; cross-check with clicks and conversions.
Transactional email triggered by API
curl -X POST https://api.ministrium.com/v1/notifications \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant: la-roca" \
-H "Content-Type: application/json" \
-d '{
"channel": "email",
"template_id": "tpl_event_confirmation",
"to": { "member_id": "mem_123" },
"data": { "event_name": "Youth retreat" }
}'This goes through the template engine and respects transactional opt-in.