One-click setup
1
Open the Integrations page
In the SenderKit dashboard, go to Integrations and click Connect Supabase.
2
Authorize SenderKit in Supabase
You’ll be redirected to Supabase to authorize SenderKit to read your projects and
manage auth configuration.
3
Pick a project
Select the Supabase project whose auth emails you want to route through SenderKit.
Once confirmed, SenderKit automatically:
- Mints a signed inbound endpoint — a dedicated URL and signing secret that Supabase will use to deliver hook payloads.
- Seeds and publishes six auth templates — one for each Supabase auth action (see Template slugs below). Any existing template with the same slug is left untouched.
- Configures Supabase — patches the project’s Send Email Hook to point at the new endpoint, enables the hook, and increases the project’s email rate limit so SenderKit — not Supabase — governs send volume.
The one-click integration requires hosted Supabase (supabase.com) with a project
you manage. If you self-host Supabase, reach out to
support@senderkit.com for manual endpoint provisioning.
Customizing the seeded templates
After connecting, find the sixsupabase-* templates in Templates and edit them
as you would any other template. The seeded defaults are functional — update them to
match your brand.
For best inbox placement, verify a custom sending domain under Channels → Domains
so auth emails are DKIM-signed for your own domain rather than the shared
tx.senderkit.email address.
Template slugs
SenderKit maps each Supabase auth action to a template by slug:
An unsupported
email_action_type returns 200 with no send — Supabase considers
the hook handled and does not fall back to its built-in mailer or retry.
Template variables
Every auth email receives the following variables, which mirror Supabase’s own built-in template variables so you can reuse your existing email copy:
At minimum, use
{{ConfirmationURL}} for link-based flows and {{Token}} if you
display OTP codes.
Supabase’s Send Email Hook payload does not include a pre-built confirmation URL.
SenderKit reconstructs it as
{SiteURL}/auth/v1/verify?token={TokenHash}&type={action}&redirect_to={RedirectTo},
which is identical to what Supabase’s own email templates produce.Limits and notes
- 5-second timeout. Supabase requires a hook response within ~5 s. SenderKit enqueues the send asynchronously and responds immediately — this is comfortably met.
- Signature verification. Payloads with an invalid
svix-signatureheader return401. An unrecognized endpoint token returns404. - 4xx on misconfiguration, not 5xx. If a mapped template doesn’t exist or isn’t
published, or the workspace is over quota, the hook returns the real 4xx code (e.g.
404 template_not_found,402 message_limit_reached). Supabase treats 4xx as a permanent failure and will not retry, so the cause is visible in logs rather than triggering a retry storm. Only unexpected transient failures return 5xx. - Unsupported actions are silently accepted. Any
email_action_typeoutside the six above returns200with no send. - Retries are deduplicated. If Supabase retries a delivery (or a network blip means it never sees SenderKit’s response), the retry won’t send the email again.
- One endpoint per mode. The Integrations page creates a live-mode endpoint. To
test before going live, use a
sk_test_key connection with draft templates — sends are recorded but not dispatched to a provider.
What’s next
Notify on a database change
App-domain notifications from Supabase row changes — separate from auth emails.
Custom sending domains
DKIM-align auth emails with your own domain for better deliverability.
Templates
How to publish, version, and manage templates.
Logs
Track delivery status for every auth email sent.