You already run marketing on Klaviyo or Mailchimp. You already pipe events through Zapier. Adding deliverability checks to that same pipeline is a five-minute change: no new service to manage, no scheduler to build, no code to deploy. This guide walks through three concrete Zaps and where they stop making sense.
An Inbox Check API key (Settings → API keys, the key starts with ic_live_). A Zapier account on any paid tier — the free tier does not include webhooks or multi-step Zaps, both of which you need here.
What the Zapier integration exposes
Inbox Check lives in Zapier's app directory. Two building blocks:
- Action: Run placement test. Accepts
senderDomain,subject,html, optionaltags, optionalproviderssubset. Returns a test id. - Action: Wait for result. Polls the test and returns the final summary (
inboxCount,spamCount,missingCount,total,auth,spamAssassinScore). - Trigger: Test complete (webhook). Fires when any test tied to your account completes.
Supported apps in the Zapier ecosystem
You can combine Inbox Check with any of the 7,000+ Zapier apps. The integrations that come up in practice:
- Klaviyo, Mailchimp, HubSpot, ActiveCampaign, Brevo — trigger a test on campaign send.
- Gmail, Microsoft Outlook — trigger on "new email sent from this account" for transactional sanity checks.
- Slack, Microsoft Teams, PagerDuty — downstream alerting.
- Google Sheets, Airtable, Notion — log every test for later trend analysis.
Example Zap 1: new campaign → placement test
The workhorse. Every time a Klaviyo campaign is sent, Zapier runs a placement test against a throwaway copy of the subject and HTML, then logs the verdict.
- Trigger: Klaviyo – "New campaign sent".
- Action 1: Inbox Check – "Run placement test". Map
subjectfrom{{1.Subject}},htmlfrom{{1.RenderedHtml}},senderDomainhard-coded to your bulk domain,tagstoklaviyo,{{1.CampaignId}}. - Action 2: Inbox Check – "Wait for result". This blocks the Zap until the test completes (~30–90 seconds).
- Action 3: Filter – only continue if
spamCount / total > 0.2. Zapier filters accept a computed field; use a Formatter step if needed. - Action 4: Slack – post to
#deliverabilitywith campaign id, subject, spam rate, and a link to the full report.
# What the Inbox Check action sends under the hood:
POST https://check.live-direct-marketing.online/api/check
Authorization: Bearer ic_live_xxxxxxxxxxxx
Content-Type: application/json
{
"senderDomain": "mail.yourbrand.com",
"subject": "Weekly digest: August 5",
"html": "<html>...</html>",
"tags": ["klaviyo", "cmp_01J9..."]
}Example Zap 2: placement webhook → Slack
If you prefer to start tests from your own application but want Zapier to handle the alerting, flip the flow. Subscribe a Zap webhook to Inbox Check's test.complete event and let Zapier fan out.
- Trigger: Inbox Check – "Test complete". Zapier generates a webhook URL. Paste it into
Settings → Webhookson the Inbox Check side. - Action 1: Filter –
inboxCount / total < 0.8. - Action 2: Slack – post the summary, colour-coded by rate (green ≥80%, amber 50–80%, red <50%).
- Action 3 (optional): Create a Linear issue if the report also shows
auth.dkim !== 'pass'.
Example Zap 3: daily scheduled test → sheet
For a continuous baseline you can look at over time, run a scheduled Zap. This produces a single row per day per sender in Google Sheets, which turns into a trend chart with two clicks.
- Trigger: Schedule by Zapier – daily at 02:00.
- Action 1: Zapier Storage – fetch the list of sender domains (or read from a Sheet row).
- Action 2: Loop – for each sender, call Inbox Check "Run placement test" + "Wait for result".
- Action 3: Google Sheets – append a row with
date, domain, inboxRate, spamRate, spfPass, dkimPass, dmarcPass.
Zapier charges one task per step per iteration. A 10-domain daily loop with four steps is 40 tasks/day, or 1,200/month. On the Professional plan that is fine; on Starter you will burn through the quota before the end of week two.
Rate limits and Zapier task budgeting
Inbox Check allows about 5 tests/minute per API key on the standard plan. Zapier loops run at a few iterations per minute, so you are unlikely to hit our limit under normal use. Two things to watch:
- Zap task budget. A "Run placement test + Wait for result + filter + Slack" Zap is 4 tasks per trigger. Plan accordingly on the Starter tier (750 tasks/month).
- Wait-for-result latency. Tests finish in 30–90 seconds typically. If Zapier's polling granularity is 15 seconds, a "wait" step can delay downstream steps by up to a minute.
Error handling in Zapier
Inbox Check returns standard HTTP errors. Zapier catches 4xx and 5xx automatically and marks the Zap run as failed. You can wire a Path step after the test action to handle specific outcomes:
Path A: inboxRate >= 0.8 -> no-op (green)
Path B: 0.5 <= inboxRate < 0.8 -> Slack #deliverability (amber)
Path C: inboxRate < 0.5 -> PagerDuty incident (red)
Path D: status == "failed" -> email the team leadFor rate-limit errors (HTTP 429), Zapier does exponential backoff and retries up to 5 times. You do not need to handle that yourself, but you should not design Zaps that fire 100 placement tests per minute either.
When to graduate to the native API
Zapier is the right choice when (a) your volume is under ~30 tests/day and (b) you value the no-code surface more than raw control. Move to the native SDK if:
- You need >5 tests/minute sustained — you will hit Zapier's polling jitter.
- You want to run tests as part of CI/CD, where a Zap is the wrong abstraction.
- Your task cost on Zapier exceeds the cost of running a 10-line cron script on a spare VPS.
- You need webhook signature verification — Zapier cannot verify HMAC for you, and we strongly recommend it for production webhook consumers.