Add DNS records · Cloudflare
When you add a sending domain to Bird, the domain's detail page in the Bird dashboard lists every DNS record to publish, each with a copyable host and value. Keep that page open in one tab and the Cloudflare dashboard in another — every value below is copied straight from Bird, never typed by hand.
The records you'll add
| Type | Host | Value (copy from Bird) |
|---|---|---|
| TXT | <selector>._domainkey.example.com | Your DKIM key |
| CNAME | send.example.com | <region>.bounce.bird.com |
| TXT | _dmarc.example.com | Your DMARC policy |
| CNAME | links.example.com (optional) | <region>.links.bird.com |
The tracking CNAME (links) is optional — it only enables branded open and click tracking, not sending itself.
Add the records in Cloudflare
- Log in to the Cloudflare dashboard and select the account that holds your domain.
- Click your domain in the list, then choose DNS → Records in the left sidebar.
- Click Add record.
- For the DKIM record: set Type to TXT, paste the host from Bird into Name, and paste the DKIM value into Content. Leave TTL on Auto. Click Save.
- Click Add record again. For the return-path record: set Type to CNAME, enter the host (for example send), paste the target from Bird (for example <region>.bounce.bird.com) into Target, and switch Proxy status to DNS only (the cloud icon turns grey). Click Save.
- Click Add record again. For the DMARC record: set Type to TXT, enter _dmarc as the Name, and paste the DMARC value from Bird into Content. Click Save.
- If you want branded tracking, add the optional tracking record the same way as step 5: Type CNAME, Name links, Target <region>.links.bird.com, Proxy status DNS only. Click Save.
Cloudflare-specific gotchas
- Turn the orange cloud off. Cloudflare proxies CNAME records by default (orange cloud, "Proxied"). A proxied record answers with Cloudflare's IPs instead of Bird's hostnames, which breaks bounce routing and stops verification from ever succeeding. Both CNAME records must be set to DNS only (grey cloud).
- Watch the Name field. Cloudflare accepts both a bare label (send) and a fully qualified name (send.example.com) and appends the zone when needed — but if you paste a full name into a field where you already typed part of it, you can end up with send.example.com.example.com. After saving, check that the record's name reads exactly as Bird shows it.
- Propagation is fast. Cloudflare publishes changes to its nameservers within seconds, so there is rarely any waiting once the records are saved correctly.
After you publish
Bird checks your DNS automatically — verification usually completes within minutes of the records going live, and you can trigger an immediate re-check from the domain's detail page. If the domain stays pending longer than expected, see Verification delays.