Skip to main content
Driftstack DRIFTSTACK

Emails Driftstack sends

Driftstack uses Postmark for transactional email. This page lists every template we send, what triggers it, and whether you can opt out (vs transactional emails that are required for the service to function).

Auth + account access

TemplateTriggerOpt-outable?
signup-verification — "Verify your Driftstack account" Signup (POST /v1/auth/signup) No — required to access the account.
password-reset Password reset (POST /v1/auth/password-reset/request) No — user-triggered.
oauth-pending-verification Sign-in with Google or GitHub using an email that already has a Driftstack account but no link yet — the recipient confirms the new sign-in method via a 60-min single-use link (POST /v1/auth/oauth-client/start/v1/auth/oauth-client/confirm-merge). No — required for the merge to complete.

Lifecycle (opt-outable)

TemplateTrigger
signup-welcomeSent after verify-email succeeds.
session-success-firstFirst successful session on the account (V-304a).
session-failed-firstFirst failed session — gentle nudge with debugging tips.
tier-changedTier upgrade or downgrade lands.

Billing

TemplateTriggerOpt-outable?
billing-receipt Successful charge (Stripe / crypto) Yes — opt-outable per OptOutableEmailEventSchema, though most customers leave it on for record-keeping.
billing-failure Payment attempt failed; carries portal URL + retry-at. No — needed to recover payment before suspension.
billing-renewal-reminder 3-7 days before annual renewal (V-304b). Yes.
subscription-cancellation Subscription cancellation processed. No.

Status + ops notifications

TemplateTriggerOpt-outable?
status-subscription-confirmation Email-list opt-in confirmation from status page. The link in this email is itself the opt-in confirmation; status emails carry one-click unsubscribe.
status-subscription-welcome First "you're subscribed" email. Unsubscribe link in body.
status-incident-created Incident filed on the public status page. Unsubscribe link in body.
status-incident-updated Operator posted an update on an open incident. Throttled to at most 1 per subscriber per incident per hour to prevent inbox flood on long-running incidents. Unsubscribe link in body.
status-incident-resolved Same incident resolved. Unsubscribe link in body (single subscription covers create + update + resolve).
session-event-digest Weekly summary of sessions run + outcomes. Unsubscribe link in body.
quota-warning Approaching the tier's concurrency / minute cap. No — guards against accidental overage.

Security + rotation

Credential-rotation notifications. Security-critical; never opt-outable.

TemplateTriggerOpt-outable?
webhook-secret-rotation-reminder Webhook signing secret reaches the 60-day nag threshold (recommended 90-day rotation cadence). Includes endpoint URL + secret prefix so the right endpoint is identifiable without re-exposing the full secret. No — security advisory.
webhook-secret-force-rotated Server-initiated rotation when a webhook secret crosses the 91-day hard cap. Carries the new secret prefix + 7-day grace deadline so verifier code can pick up the new value during the dual-sign window. No — security advisory.
webhook-secret-grace-expiring 24h-before-grace-expiry nag after a force-rotation. Heads up that the previous secret is about to stop verifying; update verifier code now if it hasn't picked up the new secret yet. No — security advisory.
byok-anthropic-key-rotation-reminder BYOK Anthropic API key reaches the 60-day nag threshold (recommended 90-day rotation cadence). No partial-key echo in the body — the key never appears. No — security advisory.

Team + support

TemplateTriggerOpt-outable?
team-invite An admin invites a new member to the team. No — the invitee needs the link to accept.
support-ack Acknowledgement of a support ticket. No.

Managing your preferences

Status-page subscribers can unsubscribe with the one-click link in any status email. Lifecycle + billing-notification emails are managed via the customer dashboard or the API:

GET /v1/account/email-preferences            # read current toggles
PUT /v1/account/email-preferences            # body: { event_type, opted_in }

PUT updates one event type at a time. Repeat for each toggle you want to change. The full event-type set is in OptOutableEmailEventSchema in @driftstack/api-types.

Domain + sender reputation

Driftstack emails come from [email protected] with reply-to [email protected]. DKIM, SPF, and DMARC are configured on the driftstack.dev apex domain (DMARC policy p=quarantine with rua + ruf reporting). Postmark is the single sender — if you see an email claiming to come from Driftstack from any other infrastructure, it isn't us. Report it to [email protected].

Related