How it works
Six steps. The first one is the slow one.
The critical path in cold outreach is not writing or software. It is domain warmup — three to four weeks before a fresh domain can carry real volume. Keep Your Chain starts that clock on day one and builds the rest around it.
Connect sending domains
Register two or three lookalikes per product family — tryyourproduct.com, getyourproduct.com — and point their DNS at Keep Your Chain. Root and www redirect to your real site. Cold mail never leaves your real domain.
| Record | Value | Why |
|---|---|---|
MX | Keep Your Chain inbound | Every reply becomes an event, headers intact |
TXT SPF | v=spf1 include:<relay> -all | Relay authorised; hard-fail everything else |
TXT DKIM | 2048-bit key, your selector | Aligned DKIM is what earns a full authentication pass at Microsoft and Google |
TXT DMARC | v=DMARC1; p=quarantine; rua=…; adkim=s | Reports land in the same inbound worker; the monitor reads them |
PTR | Relay IP → relay hostname | Missing reverse DNS is the tell of a burner box |
Root + www | 301 → your product site | A sending domain that resolves to nothing is a trust signal against you |
Warm up
Each sender identity — a real person, not a persona — warms on its own schedule. Mailbox providers score the address as well as the domain, so two people on one domain is two ramps. Register every domain in Google Postmaster Tools on day one; it only shows data once there is history.
Find prospects with a reason attached
The list is built from competitor presence, not from "companies in general." Public review pages for competitor apps name businesses already paying for your category — the highest-intent list there is. Storefront scraping confirms what is installed. An enrichment provider finds the person; every address is verified before it enters a sequence.
Honest caveat. Some competitor apps live where a scraper cannot see — inside a checkout or a thank-you page. Keep Your Chain shows detection coverage per product, so you know when detection is confirmation and when the review list is the real source.
Write a sequence that can only reply
Four steps, prose, one named competitor, one specific gap, one two-second ask. The editor previews every step against a real prospect. Reply-in-chain is locked. Bullets are discouraged — they turn a note into a newsletter, and newsletters go to Promotions.
Hi Dana, I noticed you have Fairing installed — it's a bit pricey and doesn't have these features:
- Feature one
- Feature two
- Feature three
We're giving away 2 months free! Click here to learn more.
Dana,
Saw Fairing on Halcyon's checkout. Solid tool, but you are paying a per-order rate for what is usually a two-question survey.
Luv Survey does the same thank-you-page ask, keeps the answers next to the order, and if you use Claude it will set the whole thing up from one prompt.
First two months are on us. Want the prompt?
Adams · Customer Luv · Manhattan Beach, CA
Send inside the ramp
Sends go out in the prospect's local business hours, weekdays, with jitter, under per-sender and per-domain caps the health monitor enforces. No open-tracking pixel. No link rewriting — a visible domain that differs from the destination is a phishing signature, and it is worse than the raw link. Steps one and two carry no links at all.
Reply from one inbox
Every reply, across every domain and both seats, in one threaded inbox with a classification and, for engaged replies, a draft. Reply from there and the chain stays intact. Your booking link only ever reaches someone who already answered — which is where it converts anyway.
The state machine
What moves a prospect, and what it triggers.
| State | Trigger | Next | Side effect |
|---|---|---|---|
| prospect | Approved in the UI, or by rule | sequenced · step 1 | Step one queued for the next send window |
| sequenced | Delay elapsed, silence | step n+1 | Threaded follow-up sent |
| sequenced | Human reply, any address in chain | engaged | Stop; push with draft; pause siblings at the company |
| sequenced | Install or signup event | installed | Stop cold track; welcome flow from your real domain |
| sequenced | Out of office with date | deferred | Next step at return + 1 business day |
| sequenced | Referral to a colleague | referred | Stop; new contact created, pending approval |
| sequenced | Bounce | bounced | Stop; address flagged; counts to domain bounce rate |
| any | Opt-out language | suppressed | Global, permanent |
| sequenced | Last step + 5 days, silence | exhausted | Company cooldown before another product track may start |
| installed | Uninstall event | churned | Surfaced for a manual note; never auto-resequenced |
Install signal
One signed request from your app.
From your install handler and your uninstall webhook, post one event, HMAC-signed with a shared secret:
POST https://app.keepyourchain.com/events/install
{ "shop": "halcyon-skin.myshopify.com", "app": "luv-survey", "ts": 1789000000 }
Keep Your Chain matches the shop to the company captured at prospecting time, ends the cold track, tags the contact installed, and emits a trigger for your welcome flow — which runs from your real domain through the transactional sender you already use. The CRM's job is over the moment they become a customer.