trustyourinbox

Typeform SPF and DKIM setup

Typeform can send Automation emails from your own domain once you verify it under Admin settings. The records it hands you are Mailgun records: two DKIM CNAMEs, one SPF TXT, and a tracking CNAME. Plain form notifications never use them, and that matters for what you will and will not see in your DMARC reports.

Verified 2026-09-06 against the official Typeform documentation.

What you are setting up

Typeform sends email from two very different places. Form submission notifications, and the older Messages feature, go out from notifications@typeform.com or notifications@followups.typeform.io, addresses Typeform owns. Emails built with Automations (the Contacts & Automations add-on, available on the Plus, Business, Talent, Growth Flow, Growth Custom, and Enterprise plans) can instead be sent from an address on your own domain, but only after you add and verify that domain. Until you do, Automation emails also leave from a Typeform-owned address with a Typeform sender name, and you cannot change either. Typeform's article does not print the record targets; the ones we have seen are Mailgun's, with DKIM CNAMEs into mgsend.org and an SPF include of mailgun.org, because Mailgun is the service putting the mail on the wire. So when Typeform verifies your domain, what you have really done is let a slice of Mailgun sign as you. Publish whatever your own account shows, even if the hosts differ.

Publish SPF and DKIM

In Typeform, open Admin settings under your Organization icon in the top left corner. Under Automation email domains, click Add email domain and enter the domain itself, not an address, then click Add. Typeform offers to add the records for you through Entri, a connect-to-your-registrar tool; if you would rather see and own the records, choose go to our manual setup, pick your DNS provider (or Other), and click Continue. The next step lists the records, each with a click-to-copy value. The shape is:

Type:  CNAME   (DKIM key 1)
Host:  pdk1._domainkey
Value: pdk1._domainkey.<account-id>.dkim1.us.mgsend.org   (copy the exact target Typeform shows)

Type:  CNAME   (DKIM key 2)
Host:  pdk2._domainkey
Value: pdk2._domainkey.<account-id>.dkim1.us.mgsend.org

Type:  TXT     (SPF)
Host:  @
Value: v=spf1 include:mailgun.org ~all

Type:  CNAME   (open and click tracking)
Host:  email
Value: mailgun.org

The two DKIM selectors are pdk1 and pdk2, and because they are CNAMEs, Typeform and Mailgun can rotate the keys behind them without you touching DNS again. The email CNAME is the same open-and-click tracking host Mailgun uses everywhere; it is not an authentication record, but it is on Typeform's list, so publish it. Typeform's article names MX, SPF, DKIM, TXT, and CNAME as record types you might be handed, so publish whatever your account shows, even if it is more than these four. If your domain already has an SPF record, add include:mailgun.org to it rather than creating a second one, because a zone with two SPF records fails SPF everywhere. Then go back to Admin settings and click Check status. Typeform says it can take up to 48 hours to verify, but in most cases it happens in seconds, and the domain shows a green Authorized tag. Once it does, the Send from field on any Send email action accepts an address on that domain.

Add DMARC

Standard _dmarc TXT record, nothing Typeform-specific. Start in monitor-only mode and ramp up:

Type:  TXT
Host:  _dmarc
Value: v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com

Build it with our DMARC builder and progress past p=none once your reports are clean. If you took Typeform's subdomain route and verified info.yourdomain.com, the DMARC record on your root domain already covers it under the default relaxed alignment; you do not need a second one.

The Typeform gotcha

The custom domain covers Automations only. Form submission notifications and legacy Messages keep leaving from notifications@typeform.com or notifications@followups.typeform.io no matter what you publish. They never touch your SPF or DKIM, and they will not appear in your DMARC reports at all, so a report that never mentions Typeform does not mean the setup worked; it may mean nobody has moved to Automations yet. The shared address has its own costs too: no sender name, no delivery or open metrics, and a global opt-out, so a respondent who unsubscribes from one Typeform customer no longer hears from any of them. Verifying a domain is what lifts every one of those limits.

Typeform hands you fully qualified hosts. The first box on each record reads pdk1._domainkey.yourdomain.com, and most DNS providers append your domain to whatever you type, giving you pdk1._domainkey.yourdomain.com.yourdomain.com. Typeform's own troubleshooting section says to delete the .yourdomain.com portion and enter only pdk1._domainkey, and to type @ for the SPF TXT host instead of pasting the domain again. Do that first when Check status refuses to turn green. The other thing to know is that Typeform does not document a bounce or return-path record, so do not count on SPF alignment; DKIM with d=yourdomain.com is the signal that carries alignment here, which is why both CNAMEs matter. Read the Return-Path in a test message's headers before you assume anything about SPF.

Confirm it worked

  • Check Admin settings. The domain under Automation email domains should carry the green Authorized tag. If it still does not after the host-field fix, compare each value against the records Typeform lists character by character.
  • Send a test and read the headers. Trigger an Automation that sends to you, open the message, and confirm the DKIM signature shows d=yourdomain.com with s=pdk1 or s=pdk2 and the result is dmarc=pass. Our header analyzer reads it back plainly. If the signing domain is followups.typeform.io, the Send from field is still on the shared address.
  • Watch the reports. Typeform Automation mail arrives from Mailgun's infrastructure, so it shows up in your DMARC aggregate reports as Mailgun, aligned and passing on DKIM. trustyourinbox labels it accordingly, and a Mailgun source you did not expect is often exactly this.

Let trustyourinbox publish Typeform for you.

Connect Cloudflare or AWS Route 53 once and the Typeform records are one click. We email you the exact record, wait five minutes, write it, and read it back from public DNS. Then we keep watching this sender in your DMARC reports and alert you when Typeform mail starts failing.

Was this page helpful?

Keep reading.

Start with one domain. See it with your own data.

Free for one domain, no card. Add one DNS record and the first reports usually arrive within a day.

  1. Monitoring
  2. Quarantine
  3. Reject