# Add DNS records

This page is the DNS step. The setup page already fetched the records. Match those rows at the host the user named. Do not invent records.

Email rows are `emailConfig.records` from `domains_getDomain`, or `records` from `domains_getReceivingConfig`. Each has `name`, `type`, `value`, `priority`, and `ttl`. `record` says what the row is for: SPF and DKIM are sending, Tracking is open and click links, Receiving is inbound mail.

Shortlink and help-center rows are a different shape. Shortlinks are `vercelVerificationDNS` on the domain `domains_enableShortlink` returns. Help-center rows are `customDomainVerificationDNS` on the help center. Each has `domain`, `type`, and `value`. `domain` is the hostname that row is for.

## Ask, then open their host

Ask which company hosts DNS for this hostname. Use that host's own docs:

- [Cloudflare](https://developers.cloudflare.com/dns/manage-dns-records/how-to/create-dns-records/)
- [Namecheap](https://www.namecheap.com/support/knowledgebase/article.aspx/767/10/how-to-add-host-records/)
- [GoDaddy](https://www.godaddy.com/help/add-a-txt-record-19232)
- [Google Cloud DNS](https://cloud.google.com/dns/docs/records)
- [Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-creating.html)
- [Vercel](https://vercel.com/docs/domains/managing-dns-records)
- [Squarespace](https://support.squarespace.com/hc/en-us/articles/360002101888)
- [Porkbun](https://kb.porkbun.com/article/68-how-to-edit-dns-records)

Any other host: add each row as a DNS record of that type. On an email row, the name is often only the left-hand label (`links`, `send`) when the host appends the domain for you. If `name` or `domain` is already a full hostname, paste it as shown. MX rows need the `priority`. Leave TTL at the host's default when `ttl` is `auto`. Shortlink and help-center rows have no TTL, so leave the host's default there too.

On Cloudflare, create the record as DNS only. An orange-cloud proxy breaks mail, link tracking, and short links.

Tell the user the exact rows, then wait until they say the records are saved. Do not verify in a loop. One check after they confirm is the step. If it is still pending, say so and stop.
