# Domains

> Manage email sending domains and DNS.

Source: https://docs.graph8.com/settings/domains/

Configure your sending domains to ensure reliable email delivery from graph8.

## Adding a Domain

Connect a domain you own to use it for outbound email.

1. Go to **Settings → Domains**
2. Click **Add Domain**
3. Enter your domain name (e.g., `outreach.yourcompany.com`)
4. graph8 generates the required DNS records
5. Add the records to your DNS provider
6. Click **Verify**

Using a subdomain (like `outreach.yourcompany.com`) is recommended to protect your primary domain's reputation.

## DNS Records

graph8 requires three types of DNS records for email authentication:

### SPF (Sender Policy Framework)

Tells receiving mail servers that graph8 is authorized to send email on your behalf.

- **Record type**: TXT
- **Host**: your sending domain
- **Value**: provided by graph8 during setup

### DKIM (DomainKeys Identified Mail)

Adds a cryptographic signature to outbound emails, proving they haven't been tampered with.

- **Record type**: CNAME or TXT
- **Host**: selector provided by graph8
- **Value**: provided by graph8 during setup

### DMARC (Domain-based Message Authentication)

Tells receiving servers what to do with emails that fail SPF or DKIM checks.

- **Record type**: TXT
- **Host**: `_dmarc.yourdomain.com`
- **Value**: your DMARC policy (graph8 provides a recommended starting policy)

## Verification

After adding DNS records, click **Verify** to check that everything is configured correctly.

### Verification Statuses

- **Verified** — all DNS records are correct and active
- **Pending** — records are added but DNS propagation is in progress (can take up to 48 hours)
- **Failed** — one or more records are missing or incorrect

### Troubleshooting

If verification fails:

- Confirm records are added to the correct domain/subdomain
- Check for typos in record values
- Wait for DNS propagation (up to 48 hours)
- Verify your DNS provider doesn't strip or modify record values

## Domain Health

Once verified, graph8 monitors your domain's sending reputation.

### Health Indicators

- **Reputation Score** — overall sending reputation
- **Bounce Rate** — percentage of emails bouncing
- **Spam Complaints** — reports from recipients
- **Warmup Status** — whether the domain is still in warmup

### Warmup

New domains start with a warmup period where sending volume gradually increases. This builds a positive reputation with email providers.

- Warmup runs automatically when enabled
- Sending limits increase gradually over the warmup period
- graph8 manages warmup email volume and pacing

## Placement Tests

Placement tests show where your emails land — inbox, spam, or promotions — across major email providers.

This helps you understand your deliverability and identify issues before running campaigns.

### Running a Placement Test

1. Go to **Settings → Domains**
2. Select a domain
3. Click **Run Placement Test**

graph8 sends test emails and measures where they land for each provider.

### Results

Results include:
- Inbox placement rate
- Spam placement rate
- Provider-level breakdown (e.g., Gmail, Outlook)

Use these insights to adjust your sending setup and improve deliverability before launching sequences.

## Multi-Domain Strategy

Sending outbound at scale from a single domain is risky — one deliverability issue can shut down your entire outbound operation. A multi-domain setup distributes risk and lets you scale without burning reputation.

### When to Use Multiple Domains

| Outbound Volume (emails/day) | Recommended Domains |
|-----------------------------|---------------------|
| 0–200 | 1 sending domain |
| 200–1,000 | 2–3 sending domains |
| 1,000–5,000 | 4–8 sending domains |
| 5,000+ | 10+ sending domains, rotated |

### Domain Naming Patterns

Use subdomains or lookalike domains that preserve brand association without risking your primary:

| Pattern | Example (for `acme.com`) | Notes |
|---------|--------------------------|-------|
| **Subdomain** | `go.acme.com`, `try.acme.com` | Shares some reputation with parent; usually fine |
| **Hyphenated** | `acme-team.com`, `get-acme.com` | Completely separate reputation |
| **TLD variation** | `acme.io`, `acme.co` | Fully isolated; easy to provision |
| **Product-themed** | `acmesales.com`, `hello-acme.com` | Good for multi-product orgs |

> **Caution:**
> Never send outbound from your primary company domain. A single spam complaint can affect your CEO's email deliverability.

### Per-Domain Warmup

Every new domain requires its own warmup period — reputation doesn't transfer across domains even if they look related. Warmup takes 2–3 weeks per domain. Stagger domain launches so you always have a pool of warm domains available.

See [Email Warmup →](https://docs.graph8.com/settings/email-warmup/) for the full warmup process.

## Domain Rotation

Domain rotation sends from a pool of domains so no single domain handles all your volume. graph8 can auto-rotate or you can set rotation rules.

### Rotation Modes

| Mode | Behavior |
|------|----------|
| **Round-robin** | Each email picks the next domain in the pool |
| **Volume-weighted** | Higher-reputation domains get more volume |
| **Campaign-pinned** | Each campaign uses one dedicated domain |
| **Persona-pinned** | Enterprise vs. SMB outbound use different domains |

### Configuring Rotation

1. Go to **Settings → Domains → Rotation**
2. Select the domains to include in the pool
3. Pick the rotation mode
4. Set daily caps per domain (e.g., 500/day max)
5. Save

Rotation applies to any mailbox attached to a rotation-enabled pool. Individual sequences can override the pool and pin to specific domains.

### Retiring a Domain

If a domain's reputation drops below recovery (placement score < 50% for 2+ weeks):

1. Pause all mailboxes on the domain
2. Remove the domain from active rotation pools
3. Let the domain sit for 30 days minimum (reputation partially heals)
4. Re-warm from scratch before reusing — or retire permanently

## DNS Troubleshooting

When verification fails, these are the most common root causes in order of frequency:

### SPF Issues

| Symptom | Cause | Fix |
|---------|-------|-----|
| "SPF record not found" | No `v=spf1` TXT record on the domain | Add the graph8-provided SPF record |
| "Multiple SPF records" | More than one `v=spf1` TXT record | Merge into one record with multiple `include:` directives |
| "SPF too long" | Record exceeds 255 characters | Split using `redirect=` to a dedicated SPF domain |
| "SPF include lookup limit" | More than 10 DNS lookups via `include:` | Flatten nested includes or use a professional SPF tool |

### DKIM Issues

| Symptom | Cause | Fix |
|---------|-------|-----|
| "DKIM record not found" | CNAME or TXT record missing | Add the graph8-provided DKIM record |
| "DKIM signature mismatch" | Wrong key in the DNS record | Copy the key from graph8's setup page exactly — no modifications |
| "DKIM alignment fail" | Sending domain doesn't match DKIM domain | Use the correct selector provided by graph8 |
| "DKIM selector conflict" | Another service uses the same selector | Use a unique selector like `g8._domainkey` |

### DMARC Issues

| Symptom | Cause | Fix |
|---------|-------|-----|
| "DMARC record missing" | No `_dmarc` TXT record | Add `v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com` to start |
| "DMARC too strict too early" | `p=reject` set before verification | Change to `p=none` during setup, move to `p=quarantine` then `p=reject` over time |
| "DMARC reports flooding inbox" | High `rua` report volume | Use a DMARC report aggregator instead of a direct mailbox |

### Propagation Issues

| Symptom | Likely Cause |
|---------|-------------|
| "Verified, then failed the next day" | TTL too low on an older record; DNS cache served stale data |
| "Took 48+ hours to verify" | DNS provider has slow propagation (common with some registrars) |
| "Verifies from one check tool but not another" | Records are propagating unevenly; wait 24 hours |

### DNS Provider Quirks

Some providers require extra steps:

- **Cloudflare** — if "Proxy" is enabled (orange cloud) on a CNAME, graph8 can't verify. Set to "DNS only" (gray cloud).
- **GoDaddy** — wildcard records (`*`) can interfere. Use explicit hostnames.
- **Google Domains** — recent transitions to Squarespace Domains may require re-adding records.
- **Namecheap** — "Email forwarding" can conflict with MX; disable if not needed.

## Health Alerts

graph8 actively monitors your domains and sends alerts before problems become severe.

### Alert Triggers

| Alert | Threshold |
|-------|-----------|
| **Reputation drop** | Score drops 15+ points in 7 days |
| **Bounce spike** | Bounce rate >5% on a single day |
| **Spam complaint spike** | >0.1% complaint rate (Gmail's limit is 0.3%) |
| **Placement drop** | Inbox placement drops below 80% |
| **Blacklist listed** | Domain appears on Spamhaus, SORBS, or SpamCop |
| **DNS record removed** | SPF, DKIM, or DMARC record disappears from DNS |

### Responding to Alerts

When you receive an alert:

1. **Pause outbound** for the affected mailboxes immediately
2. **Check the root cause** — recent content change? List quality issue? Volume spike?
3. **Run a placement test** to confirm severity
4. **Let warmup rebuild** for 1–2 weeks before resuming
5. **Don't "push through" alerts** — reputation damage compounds quickly

Configure alert delivery (email, Slack, webhook) at **Settings → Alerts**.

## Frequently Asked Questions

### Should I use my primary domain or a subdomain?

Always use a subdomain for outbound sales email. This protects your primary domain's reputation. If the sending subdomain's reputation drops, your main company email isn't affected.

### How long does DNS propagation take?

Most DNS changes propagate within a few hours, but it can take up to 48 hours. If verification fails, wait and try again.

### Can I add multiple domains?

Yes. Add as many sending domains as you need. Each domain requires its own DNS records, verification, and warmup. See the Multi-Domain Strategy section above for when to add more.

### What happens if my domain health drops?

graph8 alerts you when reputation metrics decline. Reduce sending volume, review your contact lists for invalid addresses, and check that your email content follows best practices. If health stays low for 2+ weeks, rotate the domain out of active sending and warm it back up.

### How do I migrate mailboxes between domains?

You can't transfer mailbox reputation between domains — each mailbox is tied to its domain. To switch domains, create new mailboxes on the new domain and start a fresh warmup. Retire the old mailboxes gradually.

### Can I send from a domain I don't own?

No. graph8 verifies domain ownership via DNS. You must control the DNS records to add a domain. If you're sending on behalf of a client, they need to add the DNS records on their end.

---

> **Tip:**
> Monitor domain health weekly and address issues early before they impact deliverability. Set up weekly placement tests across your top 3 domains — the cost is trivial compared to the cost of having a campaign go to spam for weeks before anyone notices.

## Related

- [Purchase Domains →](https://docs.graph8.com/settings/purchase-domains/) — Buy and auto-configure domains in graph8
- [Email Warmup →](https://docs.graph8.com/settings/email-warmup/) — Warm up new domains before sending
- [Mailboxes →](https://docs.graph8.com/settings/mailboxes/) — Connect email accounts to your domains
