Add DNS records · Azure DNS
If your domain's DNS is hosted in an Azure DNS zone, this page walks you through publishing the records Bird asks for on a sending domain: a DKIM TXT record, a return-path CNAME, an optional tracking CNAME, and a DMARC TXT record. Bird does not ask you to add an SPF record at your domain's apex — see DKIM, SPF & DMARC for why.
Before you start, open your domain's detail page in the Bird dashboard and keep it visible — every host and value below is copied from there, not typed by hand.
Find your DNS zone
- Sign in to the Azure portal.
- In the search bar at the top, type DNS zones and select it from the results.
- Click the zone that matches your sending domain (for example example.com).
- You land on the zone's overview, which lists the existing record sets. Each record below is added with the + Record set button at the top.
Add the records
For each record, click + Record set and fill in the pane that opens on the right. The Name field is relative to the zone — enter only the part before your domain name (and @ would mean the zone apex itself, which none of Bird's records use).
DKIM (TXT)
- Click + Record set.
- Name: paste the DKIM host from Bird, but remove your domain from the end — for example.com you enter <selector>._domainkey, not the full hostname.
- Type: select TXT from the dropdown.
- Value: paste the DKIM value exactly as shown in Bird (v=DKIM1; k=rsa; p=...).
- Leave TTL at the default and click OK (or Add in the newer portal experience).
Return-path (CNAME)
- Click + Record set.
- Name: send (or whatever subdomain your Bird dashboard shows before your domain name).
- Type: select CNAME.
- Alias: paste the value from Bird, for example <region>.bounce.bird.com.
- Click OK.
Tracking (CNAME, optional)
This record only enables branded open and click tracking — your domain can verify and send without it.
- Click + Record set.
- Name: links (or the subdomain shown in Bird).
- Type: select CNAME.
- Alias: paste the value from Bird, for example <region>.links.bird.com.
- Click OK.
DMARC (TXT)
- Click + Record set.
- Name: _dmarc.
- Type: select TXT.
- Value: paste the DMARC value from Bird, for example v=DMARC1; p=none; rua=mailto:example.com@dmarc.bird.com;.
- Click OK. If you already have a DMARC record at this domain or a parent domain, you can keep it — Bird only requires that a valid DMARC record exists.
Azure gotchas
- Names are relative to the zone. Azure appends the zone name to whatever you type in the Name field — entering send.example.com in the example.com zone creates send.example.com.example.com. Enter only the leading label(s); @ is reserved for the zone apex.
- Pick the type before you fill in values. The pane's value fields change with the record type dropdown — if you do not see an Alias field for a CNAME or a Value box for a TXT record, check the type selection first.
- A CNAME record set holds exactly one value. TXT and most other Azure record sets accept multiple values, but a CNAME record set cannot — and Azure will also refuse a CNAME at a name where other records already exist. If the portal rejects the record, check for a conflicting record set at the same name.
- The zone only matters if it is delegated. An Azure DNS zone answers queries only when your registrar's name servers point at it. On the zone's overview, copy the four *.azure-dns.* name servers and confirm they match the NS records set at your registrar — otherwise the records you add here are invisible to the rest of the internet.
After you publish
There is nothing to click in Bird — verification is automatic. Bird starts checking your DNS within seconds of the domain being added and re-checks frequently, so most domains flip to verified within minutes of the records going live. You can also trigger an immediate re-check from the domain's detail page in the dashboard. If the domain stays pending longer than you expect, see Verification delays.
Related
- Sending domains — adding and managing domains end to end
- DKIM, SPF & DMARC — what each record proves and why there is no apex SPF record
- Verification delays — what to check when a domain stays pending