SendCanyon · what this tool does
Everything between you and the inbox.
Cold email fails in the plumbing far more often than in the copy: authentication, reputation, volume, timing, and knowing when to stop. Here is each of those, and exactly how it is handled.
Connect the mailboxes you already own
Google Workspace and Microsoft 365 over OAuth, any SMTP and IMAP server, or Amazon SES. No app passwords, no forwarding tricks.
Sending happens from addresses your recipients already recognise, on domains you control. The reputation you build stays attached to your business rather than to a pool you rent.
Credentials and tokens are encrypted before they are stored, and a mailbox can be disconnected without touching the campaigns that used it.
Add a sending mailbox
Google Workspace
OAuth, no app password
Microsoft 365
OAuth via Microsoft Graph
Any SMTP + IMAP
Host, port, credentials
Amazon SES
Your AWS account and quota
Credentials and OAuth tokens are encrypted before they are stored.
Prove the domain before anything sends
SPF, DKIM and DMARC are resolved against live nameservers, not read from a cached panel, and a campaign cannot launch on a domain that has not passed.
Most cold email that lands in spam was never authenticated properly in the first place. SendCanyon checks the records that receivers actually evaluate and tells you exactly which value is wrong.
A DMARC record without a policy tag does not count as DMARC here, because it does not count as DMARC at the receiver either.
- SPFResolving…
outbound.acme.co
v=spf1 include:_spf.google.com ~all
- DKIMResolving…
sc._domainkey.outbound.acme.co
v=DKIM1; k=rsa; p=MIIBIjANBgkq…
- DMARCResolving…
_dmarc.outbound.acme.co
v=DMARC1; p=none; rua=mailto:dmarc@acme.co
A DMARC record without a p= policy tag does not pass here. Records are re-resolved against live nameservers, not cached.
Warm new domains on a real ramp
A fresh mailbox starts small and climbs on a schedule, exchanging genuine mail with a peer pool while campaign sending stays locked.
Warmup mail is really sent over SMTP to real mailboxes in other workspaces, and the open is confirmed by reading the receiving inbox over IMAP or Microsoft Graph before it counts.
That distinction matters: a warmup that marks its own homework teaches a provider nothing, and you find out in week four.
0 / day
Warmup mail goes to real peer mailboxes and the open is confirmed by reading the receiving inbox, not simulated.
Spread volume so no single mailbox looks strange
One campaign, many senders. Sends distribute across the pool with a minimum gap per mailbox, a random extra pause, and a hard per-domain daily ceiling.
Each mailbox waits at least 75 seconds between sends plus a random extra interval, so the send log never has the machine-gun rhythm that pattern detection is built to find.
A mailbox whose bounce or complaint rate climbs is pulled out of rotation and the rest of the pool absorbs its share, before a bad afternoon becomes a blocklisting.
Each mailbox waits at least 75 seconds between sends, plus a random extra pause, so the pattern never looks machine-timed.
Keep dead addresses out of your bounce rate
Lists are validated on import, and suppressions, prior bounces and unsubscribes are applied again between every sequence step.
Invalid and risky addresses are separated at import instead of being discovered by the receiving mail server, which is the expensive way to find out.
Someone who unsubscribes at step one is gone from step two, not merely hidden from a view.
0
- Deliverable4,512
- Invalid218
- Risky82
Suppressions, prior bounces, and unsubscribes are applied at import and again between sequence steps.
Follow up on a schedule that knows when to stop
Multi-step sequences with waits measured in working days, sending windows you set, and cancellation the moment someone replies.
Waits resolve inside your send window, so a Friday step does not arrive at two in the morning on a Sunday.
Replies are read from the mailbox itself, which is what makes stop-on-reply genuinely cancel the pending sends rather than mark them read.
Intro: one specific reason
Sent immediately on enrolment
14 contacts replied here; remaining steps cancelled for them
Follow-up: the proof
3 working days later
Break-up: one line
5 working days later
Waits are working days inside your send window, so a Friday step does not arrive at 02:00 on Sunday.
Answer replies without leaving the campaign
Every reply lands in a shared inbox next to the thread that produced it, with the contact, the campaign and the step attached.
A reply is the only outcome that matters, so it is not buried behind an integration you have to configure first.
Out-of-office and bounce notifications are separated from the replies that need a human.
- Marta KowalskiInterested
Interesting timing. We're re-tendering in October. Can you send pricing?
- Daniel RhodesNot now
Not right now, try me after the new financial year.
- Aoife O'BrienAuto-reply
I am out of the office until 3 September with limited access to email.
Replies are read from the mailbox itself over IMAP or Microsoft Graph, which is what makes stop-on-reply actually stop.
Draft the whole sequence with SpirenAI
Describe the product, the audience and the tone, and SpirenAI drafts up to five steps, each with a subject, a body, and the wait before it goes.
The brief is short on purpose: what you sell, who you are writing to, what a good outcome looks like, and one of four tones. What comes back is a real sequence structure, not a paragraph you still have to break up yourself.
Every draft lands in the editor first. SpirenAI proposes and you decide: nothing it writes is sent until you send it, and credits are metered per month so a runaway generation cannot quietly cost you anything.
Your brief
- Your Rotterdam pick rateSends immediately
Noticed you run three shifts out of one dock. Most 3PLs we…
- The 40-second versionWaits 3 working days
Short follow-up with the one number that matters, no deck…
- Closing the loopWaits 5 working days
One line, easy to say no to, leaves the door open for Q1…
Every draft opens in the editor. Nothing SpirenAI writes is sent until you send it.
See which sender moved the average
Delivery, reply, bounce and complaint rates broken down by campaign, by mailbox and by domain: the granularity you need to act.
One aggregate number tells you something is wrong and nothing about where. These numbers name the mailbox.
Trends over time show the warmup paying off, and everything exports for the people who want their own spreadsheet.
- ana@outbound0.3% bounced
- sam@mail0.2% bounced
- jo@acme4.1% bounced
- ben@mail0.4% bounced
The same numbers exist per campaign and per domain, which is how you find out which sender moved the average.
Three more things, on every plan
Canyon, the assistant that knows the product
An in-app assistant for setup and deliverability questions: which record is wrong, why a campaign has not started, what to do about a bounce spike.
A REST API and outbound webhooks
Create contacts, launch campaigns and receive delivery, reply and bounce events wherever the rest of your stack lives.
CSV in, CSV out, no lock-in
Import a list exported from any prospecting tool or CRM, and export your contacts, suppressions and results whenever you want them back.
The plumbing is the product
Connect one mailbox and watch the domain checks run. It takes about ten minutes and costs nothing.