ESP tools7 min read

Test HubSpot email deliverability before you send

HubSpot tells you "Sent" and an open rate. Neither proves inbox placement. Here is the quick pre-send routine to add real placement data without leaving HubSpot.

HubSpot marketing emails have a visibility problem: the platform tells you a message was Sent, and later it tells you an Open rate, and from those two numbers most teams conclude everything is fine. Neither number proves a single message made it to an actual inbox. This article is a short pre-send routine that plugs real placement data into your HubSpot workflow without replacing any of your tooling.

What this article fixes

By the end of the five minutes, you will (1) know what HubSpot "Sent" really means, (2) have Connected Sending Domain configured with both DKIM keys, (3) be using a custom tracking domain instead of hubspotlinks.com, and (4) run a three-minute placement test before you hit Send on any broadcast.

What HubSpot "Sent" actually measures

When HubSpot shows Sent: 12,405, it means their outbound MTA handed those messages to the recipient ISPs without a hard bounce during the SMTP conversation. That is all. Messages in the Spam folder count as Sent. Messages in Gmail's Promotions tab count as Sent. Messages silently dropped by Outlook's aggressive filter after initial acceptance count as Sent.

The metric HubSpot doesn't show you is inbox placement: the percentage of recipients whose Inbox folder the message actually appeared in. That number can be 95% or 30% for the same Sent count, and the gap matters more than any other number on the dashboard.

Why HubSpot's open rate is broken

The open rate you see in HubSpot is a pixel-based count. Two things have made that number unreliable since 2022:

  • Apple Mail Privacy Protection. Every Apple Mail client pre-fetches the tracking pixel whether the recipient opens the message or not. That inflates open rate without inflating real engagement. On lists heavy with iOS users, open rate looks great while the click rate is flat.
  • Outlook image loading. Outlook.com and Microsoft 365 both proxy images in ways that can either double-fire the pixel or strip it. Open-rate data from Outlook recipients is noisy enough to be close to useless.

A 45% open rate with a 0.4% click rate is the tell: the opens are MPP ghosts and the message is not actually being read. At that point, "Sent" and "Opens" are both lies. You need placement data.

Set up a Connected Sending Domain correctly

HubSpot calls its authentication flow Connected Email or Sending Domain, depending on hub. The end state is the same: HubSpot signs DKIM with your domain, your SPF record includes HubSpot's range, and DMARC alignment works.

  1. Settings → Marketing → Email → Sending Domains. Click Connect sending domain and enter your root domain.
  2. HubSpot gives you two DKIM CNAME records hs1._domainkey.yourdomain.com and hs2._domainkey.yourdomain.com. Publish both at your DNS provider. The two keys let HubSpot rotate without breaking your signatures.
  3. Update SPF: if you already have a record, add include:15870244.spf02.hubspotemail.net (the exact value HubSpot shows you — it is tenant-specific). If not, publish v=spf1 include:15870244.spf02.hubspotemail.net ~all.
  4. Wait 10–60 minutes, click Verify in HubSpot. A green tick next to both DKIM and SPF means you are done.
Why two DKIM CNAMEs

HubSpot rotates DKIM keys on a schedule. If you publish only one, the day HubSpot rotates your signatures break and every message arrives with dkim=fail. Always publish both. This is the single most common authentication error we see on HubSpot tenants.

Use a custom tracking domain

Out of the box, every link in a HubSpot marketing email goes through hubspotlinks.com. That host is massive and shared across every HubSpot customer. When a bad actor inside the HubSpot user base gets aggressive, the shared click-host reputation can drag your clean campaigns into Spam.

The fix is Link tracking subdomain (Settings → Marketing → Email → Configuration → Link subdomain). Point a subdomain like go.yourbrand.com at HubSpot via CNAME, verify, and from that point on your click URLs are on a host only you send from. You own that reputation.

The three-minute pre-send routine

Before any non-trivial HubSpot broadcast, run this exact loop. It catches template bugs, tracking-host issues, and authentication regressions before they hit your list.

  1. In HubSpot, open the campaign, click Actions → Send test email. Send to a single seed address that you control.
  2. In parallel, start a placement test — submit the same rendered HTML through /api/check on a deliverability tool that exposes a REST API. The test fans the message out to 20+ seed mailboxes across Gmail, Outlook, Yahoo, Mail.ru, Yandex, GMX, ProtonMail and others.
  3. Read the verdict. Anything under 80% inbox rate across the full set is a hold — don't send the broadcast, fix the issue first.

The cost is three minutes of your day and one test quota. The upside is you never again wake up to a campaign that quietly disappeared into Outlook Junk.

Reading HubSpot's Inbox Team report

Enterprise HubSpot tenants get the Email Health panel which shows per-ISP delivery and a rough inbox-vs-spam breakdown derived from complaint and FBL data. It is better than nothing, but it is still post-hoc — you find out your Gmail placement is 40% two days after the send. The pre-send test is what actually protects a campaign.

If you are on a lower tier, the Email Health panel is hidden. Substitute a weekly placement test on your highest-volume newsletter template as a health check.

Why marketing and sales send behave differently

HubSpot has two completely separate send paths:

  • Marketing Hub emails — batch send from HubSpot's shared infrastructure, authenticated via your connected sending domain. Reputation is a mix of HubSpot's pool and your domain.
  • Sales Hub / Sequences — sent through your connected Gmail or Microsoft 365 account via OAuth. From the ISP's point of view, these are just messages from your regular mailbox with HubSpot's tracking pixel attached.

When Marketing Hub emails go to Spam but Sales Hub sequences land fine, it points to the shared marketing pool or the shared tracking host. When both fail, the problem is domain-level authentication or content, and fixing either one fixes both.

Pre-send checklist

Before any HubSpot broadcast: (1) Connected Sending Domain shows green for SPF + DKIM, (2) link tracking subdomain is configured and live, (3) test send arrives in your own Gmail Primary (not Promotions), (4) placement test shows inbox rate above 80% across the seed set. If all four pass, send.

Frequently asked questions

Does HubSpot-recommended DMARC of p=none do anything?

Not really. HubSpot suggests p=none so you can set up without breaking anything, but p=none gives you reports without enforcement. Move to p=quarantine once you have seen two weeks of clean aggregate reports with your DKIM and SPF both aligned.

Can I use a custom tracking domain on the free HubSpot plan?

Marketing email link subdomains are available on Marketing Hub Starter and up. The free CRM plan does not include that setting. On free, your clicks are stuck on hubspotlinks.com — a real limitation for any serious sender.

Why does HubSpot say my email was delivered but the recipient says they never got it?

Most often: the ISP accepted the message at SMTP level (so HubSpot logs it as delivered) and then silently filed it into Junk or Quarantine. The recipient may genuinely never see it unless they check the spam folder. A pre-send placement test catches this before you hit Send.

How often should I re-run a placement test on the same template?

Once per template change, plus once a week as a baseline if the template is in heavy rotation. Domain and IP reputation drift slowly, so weekly catches most silent regressions before they bite.
Related reading

Check your deliverability across 20+ providers

Gmail, Outlook, Yahoo, Mail.ru, Yandex, GMX, ProtonMail and more. Real inbox screenshots, SPF/DKIM/DMARC, spam engine verdicts. Free, no signup.

Run Free Test →

Unlimited tests · 20+ seed mailboxes · Live results · No account required