Custom Email Domains

Add and verify your own sending domain through Yaplet's guided, self-checking setup — to send branded emails and unlock newsletter campaigns.

Why Use a Custom Domain?

With a custom domain, your emails come from your own address (like [email protected]) instead of a shared @yaplet.io address. This matters for three key reasons:

Brand Trust

Customers recognize and trust emails from your own domain. A @yaplet.io address may look unfamiliar and get ignored.

Better Deliverability

Custom domains build their own sending reputation, so your emails are far more likely to reach inboxes instead of spam folders.

Newsletter Access

Newsletter campaigns require a verified custom domain. This is not optional — Yaplet enforces it to protect deliverability for all users.

You cannot send newsletter campaigns from a @yaplet.io email address. When you try to create a newsletter campaign, Yaplet checks for a verified custom domain email. If none exists, the campaign cannot be created and you'll be prompted to add a custom domain first.

How Setup Works

Custom-domain setup has three parts: add the domain in Yaplet, add the DNS records it generates at your domain registrar, and let Yaplet verify them. The difference from a typical DNS setup is that the page checks your work for you — it polls your DNS automatically and shows a live status next to every record, so you're never guessing whether something propagated.

Plan for 15–30 minutes of hands-on work, plus anywhere from a few minutes to 48 hours for DNS to propagate (usually well under an hour).

Add Your Domain

Open the Custom Domains tab

Go to Settings → Organization settings → Emailing → Custom Domains and click Add domain.

Enter your domain

Type your domain — for example yourcompany.com (just the domain, no https:// or www.). Use a subdomain like mail.yourcompany.com only if you specifically want to send from a subdomain.

Click Add

Yaplet generates your DNS records, requests an SSL certificate for link tracking, and opens the Setup tab with your domain selected. You'll see the message "Domain added — configure the DNS records to verify it."

There's no "Need warmup" toggle anymore. Sending reputation is now managed automatically, per email provider — see Email Deliverability.

The Guided Setup Page

The Setup tab walks you through the records and checks them for you. A few things to know about how it behaves:

  • It re-checks your DNS automatically every 20 seconds, and again whenever you return to the tab. There's no "I'm done" button to press — just add the records and the page catches up on its own. A Re-check status button forces an immediate check.
  • Each record shows a live status so you know exactly what's left.
  • Stuck? The Ask AI for help button hands your current setup state to Yaplet's AI assistant, which reads your live DNS and tells you precisely which records are still missing and where to add them.

Sending status

At the top, a single badge tells you where the domain stands overall:

BadgeWhat it means
DNS records neededThe three DKIM records — the only required ones — aren't all in your DNS yet. Add them.
Verifying — almost thereThe three DKIM records are detected (skipped optional records don't hold this up); AWS is verifying — usually 5–60 minutes (occasionally longer).
Verified for sendingDone. You can send from this domain.

Records, grouped by what they do

Instead of one flat table, records are organized into sections, each with its own status badge. Every record row also carries a Required or Optional badge, and its description explains what the record does — and, for optional ones, why they're optional:

Sending — the records that authenticate your mail. Only the three DKIM CNAMEs are required: they alone verify the domain. The rest are optional but recommended — the SPF TXT (Amazon's own sender address already passes SPF checks, so this just adds extra trust with some inboxes), the DMARC TXT (Gmail and Yahoo expect one from bulk senders; if you already have your own DMARC record, it counts), and the MAIL FROM MX + TXT (put your own subdomain on the technical sender address — without them Amazon's fallback address works fine).
Receiving(optional) — a single inbound MX record. Add it only if you want incoming email for your domain (like customer replies) to land in your Yaplet inbox. Skip it if you only need to send — for example, newsletters. Don't add it if your domain already runs on Google Workspace or Microsoft 365, or it will reroute your existing mail. Only the addresses you added under Emailing get their mail into Yaplet — mail to any other address on the domain is dropped, and its sender gets no bounce.
Secure links(optional, recommended) — an SSL-validation CNAME (and, if your domain blocks it, a CAA record). This lets Amazon issue a certificate so your tracking links can be branded. It works in parallel with sending, so you can add it at the same time.
Gmail monitoring(optional, recommended) — a single google-site-verificationTXT record. Gmail is the one major provider that never reports spam complaints back to senders; this record connects your domain to Google's own reporting so Yaplet can watch your Gmail spam rate and protect the domain before trouble escalates. Sending works without it — add it to unlock Gmail health monitoring on the Deliverability tab. Keep it in your DNS permanently; Google re-checks it from time to time.

Per-record live status

Every record row shows a solid status badge, a short note on what the record is for, and a copy box listing every field your DNS provider's form asks for — Type, Host, Value, TTL, and Priority (for MX records) — with copy buttons for the host and value:

BadgeMeaning
Verified (green)Yaplet queried your DNS and the value matches.
Failed (red)A genuinely conflicting value is set — in practice an SPF record without include:amazonses.com (only one v=spf1 is allowed). Unrelated values at the same name never cause a Failed.
Not detected (grey)Nothing found yet. Add the record, or wait for it to propagate.
Don't add (amber)The record conflicts with your existing email setup — leave it out. Details below, under conflict detection.

If your domain already has its own DMARC record, the DMARC row shows Verified — any v=DMARC1 policy satisfies the requirement, and your own (often stricter) policy is better than Yaplet's permissive default.

Yaplet also detects your DNS provider from your nameservers and tailors the host hints — for example, telling Namecheap and GoDaddy users to enter only the host part (link, _dmarc, @) since those providers append the domain automatically.

On Cloudflare, set every CNAME (the DKIM records and the link-tracking record) to DNS only — the grey cloud, not the orange one. A proxied CNAME makes Cloudflare answer with its own addresses, so DKIM and SSL validation fail. Yaplet detects Cloudflare and shows this reminder directly on each CNAME row until the record is found.

Conflict detection

When you open the page, Yaplet scans your existing DNS for four common conflicts. Each conflict appears as a note on the record row it affects — and a record you shouldn't add is faded out with its copy buttons disabled and an amber Don't add badge, so it can't be added by accident:

  • Existing mail records — your domain already has MX records, so adding the (optional) inbound MX would reroute your existing mail to Yaplet. Skip it unless that's exactly what you want.
  • Existing SPF record — only one v=spf1 record may exist. Merge include:amazonses.com into your existing record rather than adding a second.
  • Mail subdomain in use — mail.yourcompany.com already belongs to another mail service (for example a CNAME to your mailbox provider), so the two MAIL FROM records can't be added there. Skip them: verification and sending work without them, and Amazon uses its own bounce address instead.
  • Existing DMARC record — keep yours; it already covers what Yaplet's default would add.

Export all records at once

Rather than copying each record by hand, click Export records at the top of the Setup tab to download every DNS record for this domain as a single zone file, then import it in one step at your DNS provider — for example in Cloudflare under DNS → Records → Import and Export. When the import finishes, come back and press Re-check status.

  • Format — choose Cloudflare (tuned so the DKIM and link-tracking CNAMEs are pre-set to "DNS only", the grey cloud) or Standard BIND (the portable format any BIND-based host accepts).
  • Include inbound email (MX) — off by default. Turn it on only if you want incoming mail for the domain to land in your Yaplet inbox; it reroutes the whole domain's mail, and mail to addresses you haven't added under Emailing is then dropped.
  • Conflicting records stay out — anything that conflicts with your existing setup is left commented out in the file so the import can't add it: a second SPF (merge include:amazonses.com into your existing record by hand afterward), the two mail. records when that subdomain is already in use, and a second DMARC when you have your own.
A zone file only helps providers that can import one — Cloudflare, or any BIND-based host. Some registrars, such as GoDaddy and Namecheap, can't import files; there, add the records with the per-row copy buttons instead.

Link tracking rewrites the links in your emails through a tracking subdomain (link.yourcompany.com) so Yaplet can measure clicks. It lives in its own card with a switch:

  • The switch is locked until your SSL certificate is issued (add the Secure-links records first). Until then it reads "Available once your SSL certificate is issued."
  • Once the certificate is issued, the link. CNAME appears. You can flip the switch on before that record propagates — tracking simply stays pending and activates automatically once the record resolves. Until then your links are sent untouched, so nothing breaks.
  • Turning it off reverts to plain, untracked links.

DNS records reference

All values are generated per domain and shown in your dashboard — always copy from there. This table is for reference; the Setup page is the source of truth.

GroupTypeName (host)ValuePriority
SendingCNAME{token}._domainkey.yourcompany.com (×3){token}.dkim.amazonses.com—
SendingTXTyourcompany.comv=spf1 include:amazonses.com ~all—
SendingTXT_dmarc.yourcompany.comv=DMARC1; p=none—
SendingMXmail.yourcompany.comfeedback-smtp.eu-central-1.amazonses.com10
SendingTXTmail.yourcompany.comv=spf1 include:amazonses.com ~all—
ReceivingMXyourcompany.cominbound-smtp.eu-central-1.amazonaws.com10
Gmail monitoringTXTyourcompany.comgoogle-site-verification=… (shown in dashboard)—
Secure linksCNAME(ACM validation — shown in dashboard)(shown in dashboard)—
Secure linksCNAMElink.yourcompany.com (after cert issued)(CloudFront target — shown in dashboard)—
Merging an existing SPF record: if you already have v=spf1 include:_spf.google.com ~all, change it to v=spf1 include:_spf.google.com include:amazonses.com ~all — don't add a second SPF record.

CAA records

CAA records control which certificate authorities may issue SSL certificates for your domain. If your domain already has a CAA record and it doesn't include Amazon, AWS can't issue the certificate for your link. subdomain.

Yaplet detects this automatically. If a CAA record is blocking issuance, you'll see a "CAA record blocks certificate issuance" alert and Yaplet adds the exact record you need to the Secure-links section:

TypeNameValue
CAAyourcompany.com0 issue "amazon.com"

If your domain has no CAA record at all, you don't need one — CAA only restricts issuance when it's present, and it only affects link tracking, not sending.

Verifying your domain

You don't run a manual "Verify" step anymore. After you add the records, Yaplet checks DNS for you (automatically every 20 seconds, and on demand via Re-check status — the button also sits right inside the status banner while verification is pending). Once your DKIM records are detected — they're the only required ones — AWS verifies the domain, usually within 5–60 minutes, and the status flips to Verified for sending. You can close the page and come back; it re-checks when you return.

If verification previously failed

Amazon only searches your DNS for the DKIM records for 72 hours after a domain is added. If you added or fixed the records later than that, verification used to stay failed forever — no matter how correct your DNS was. Not anymore: pressing Re-check status (or simply opening the Setup page) automatically restarts Amazon's search using the same records. Nothing needs to be re-added; verification then completes within minutes to a few hours.

Optional records never block verification

A domain verifies on its three DKIM records alone. If optional records are still missing on an already-verified domain, Re-check shows a gentle warning — "Verified — optional records not added" — and that's all: sending keeps working, and adding the remaining records only improves deliverability or unlocks extra features.

Adding Email Addresses

Once your domain is verified, create sending addresses on it from the Emails tab:

Click "Add email"

Enter the email prefix

Type the part before the @ — for example newsletter creates [email protected]. Prefixes must be 3–30 characters, lowercase letters, numbers, dots, hyphens, or underscores, and start and end with a letter or number. Because you own the domain, almost any prefix is allowed — support@, news@, admin@ and hello@ all work. Only six prefixes the mail system itself needs are reserved: no-reply, noreply, postmaster, abuse, mailer-daemon and bounce.

Select a widget

Choose which widget this address is linked to. Incoming emails to it route to that widget's inbox.

Click "Add"

The address is ready immediately — for inbox conversations and, for newsletter campaigns, as a sender option.

Incoming Emails and Threading

If you added the optional Receiving record, custom-domain addresses behave just like yaplet.io addresses for inbound mail: incoming emails create chats in the inbox (assigned to the linked widget), threading is automatic via a unique Reply-To, and email-source chats auto-send agent messages as email with an "Email" badge.

Incoming mail on a custom domain also passes the same per-brand filters as yaplet.io addresses — the spam filter (on by default) and the optional AI answer filter. See the Filtering Incoming Email section of Yaplet.io Emails.

Email behavior is identical for yaplet.io and custom-domain addresses. The difference is only branding, deliverability, and newsletter access — not how conversations work.

Deliverability

Once you're sending, Yaplet manages your domain's sending reputation automatically — ramping volume up per email provider when bounce and complaint rates stay healthy, and pulling back when they don't. The Deliverability tab on each domain shows a per-provider health score so you can see exactly how you're landing.

Email Deliverability

Read the bounce/complaint health bands, the per-provider breakdown, and what to do if a provider goes "at risk".

Send Logs

To see send statistics for the last 7 days, open the domain's actions menu (the ⋯ button next to the domain selector) and choose View send logs. The logs break volume down by type — campaign, workflow, and other (inbox replies, notifications, and transactional mail) — so you can monitor what's going out. The label still reads "workflow"; it counts the mail sent by your email automations.

Managing Domains

Switch domains using the dropdown at the top of the Custom Domains tab — each domain has its own setup, deliverability, and addresses.

Delete a domain from the actions menu. This is permanent and removes all of its email addresses; any in-flight or scheduled mail from it will fail. Make sure no active campaigns or email automations depend on its addresses first.

Want a dedicated IP?

By default all Yaplet mail goes out from a shared, pre-warmed IP pool — the right choice for almost everyone. High-volume senders who want a sending reputation entirely their own can enable a dedicated IP for the domain.