Skip to main content
Email supports transactional sends, hub-specific sending configuration, templates, drip campaigns, suppressions, webhooks, and unsubscribe.

Configure hub sending

Create templates

Invalid MJML in a preview request now returns 422 invalid_template_mjml (previously returned 500). Update error handling to check for 422 with code invalid_template_mjml when previewing templates.

Create a drip campaign

Use drip campaigns for welcome sequences, content drip, cart recovery, post-purchase nurture, and reactivation.

Suppressions and unsubscribe

Suppression endpoints help prevent sends to blocked or unsubscribed addresses:
Email routes currently remain under /v1/... instead of /api/v1/.... Treat the generated API reference as the exact path source for email until those routes are folded into the canonical API prefix.

Drip admin enrollment

Admin enrollment endpoints (POST /enroll, DELETE /exit, and list enrollments) are wired but the underlying campaign-authoring surface (create/update/delete campaigns and steps) is not yet built. Calling those unbuilt methods returns 404 with code drip_admin_surface_unavailable instead of a 500. Track the campaign-authoring surface under the email phase-B milestone.

Admin deliverability KPI

A per-hub email deliverability summary is available to team owners. This is distinct from the existing rolling member stats endpoint (GET /v1/hubs/{hub_id}/email-stats, hub-admin only, 24-hour rolling window).
Authentication: requires a team-owner JWT (not a contact/member JWT). Query parameters: Response (200):
Deliverability endpoint status: