Sales Automation Without a Seat: Four Calls and One Receipt
The automation most teams buy is four lookups in a row. Here is each one measured, including the one that charged us for a record with a null title.

Copy this line to your agent to run the outbound chain end to end.
set up https://monid.ai/SKILL.md and use hunterio /multi-domain-search then apollo /organizations/enrich
Sales automation is sold as a platform and it is, underneath, four lookups in a row: find the companies, decide which ones matter, get the person, reach them. We have measured each of those four on live calls over the past eight days. The first is free and sized a population of 38,860 people. The third charged us for a record whose job title and email address were both null. This guide is the chain with every step's receipt attached, and it runs through Monid, the OpenRouter for agent tools.
What is sales automation, in calls?
The removal of manual steps between "we sell to companies like this" and "a named person received a message". Four of those steps are lookups and one is a send.
Step one, population
Who exists that matches the profile. Not a list of contacts, a count and a shape: how many, at how many companies, with what reachable.
Step two, qualification
Which of those companies you actually want. Size, industry, technology, growth signals. This is the step that decides how much the next one costs.
Step three, identity and contact
The named person and a way to reach them. This is where nearly all the money goes, and where the failure modes live.
Step four, the touch
An email, a call, a message. Regulated differently by channel and country, and the only step in this article we did not run.
Why the platform framing hides the shape
A sequencing platform bundles all four plus a task queue, a CRM sync and reporting. That bundle is worth buying for a team of reps. It also makes it hard to see that step one is free and step three is not, which is the single most useful fact about the chain.
📖 See also B2B Prospecting Tool by API: The List Is Free, the Name Is the Bill
What does each step actually return?
Measured, in order, with dates.
Step one, free
hunterio/multi-domain-search filtered to sales leadership at US companies of 51 to 200 people, on 2026-09-16:
meta.results 38,860 rows per page 100
distinct domains 47 decision makers 68
with LinkedIn 90 with a phone 7
names redacted, behind a 125-character reveal_handle
Thirty-eight thousand matching people, sized for nothing. And note the last two rows: ninety of a hundred have a LinkedIn profile and seven have a phone number. That is your channel strategy decided before you spend anything.
Step two, cheap
apollo/organizations/enrich on one domain, 2026-09-21, 2.5 seconds, 66 fields:
employees 580 annual_revenue 340,000,000 founded 2015
technology_names 187 entries
And hunterio/email-count on the same domain, 1.9 seconds:
total 445 personal 401 generic 44
it 150 sales 53 support 31 hr 18 finance 12 management 11
legal 10 executive 6
The department split is the underrated output. IT was 34 percent of known contacts at this software company and 6 percent at a clothing retailer we ran the same call against. That is a capability signal for free, no technology database involved.
Step three, expensive and honest
apollo/people/match on a named executive, 2026-09-17, 7.2 seconds, 35 keys:
id present organization_id present
country United States
title null
email null
email_status "unavailable"
linkedin_url null seniority null
The base charge landed. That is documented behaviour, not a fault, and it is the subject of its own section below.
A second provider on the same person, 2026-09-18, returned the correct headline and every contact array empty, along with work_email_units, phone_units and search_units counters in the body. A meter in the response is a feature.
Step four, not run
saperly/send-messages takes a number you own, an E.164 recipient and a body of 1 to 1,600 characters, splitting longer ones, and handles opted-out recipients. We read the schema and did not send anything, because an outbound message to a real person is not evidence worth manufacturing.
How do you run the chain on one key?
Four steps in this order, because the order is the cost control.
For agents
Grab an API key at app.monid.ai, then paste this to your agent and hand it the key:
set up https://monid.ai/SKILL.md
It learns the whole discover, inspect, run workflow itself. More in the agent quickstart.
For humans
npm install -g @monid-ai/cli
monid keys add -k <your-api-key> -l main
Step 1. Size it for free
monid run -p hunterio -e /multi-domain-search \
--query '{"department":"sales","seniority":"executive","headcount":"51-200","location":"US"}'
Read meta.results and the flag counts before anything else. If phone_number_exists is true on seven rows in a hundred, a calling motion is already the wrong plan.
Step 2. Disqualify before you buy people
monid run -p apollo -e /organizations/enrich --query '{"domain":"example.com"}'
monid run -p hunterio -e /email-count --query '{"domain":"example.com"}'
Two cheap calls per company. Drop the ones that fail your criteria here, because the next step is per person.
Step 3. Match without reveal flags, then reveal selectively
monid run -p apollo -e /people/match \
--query '{"first_name":"…","last_name":"…","domain":"example.com"}'
Identifiers go in the query parameters; a body is rejected outright. Read email_status and stop on unavailable. Then set reveal_personal_emails only where you will send, and reveal_phone_number only where you will call, because that tier is eight credits against one and it charges only when a number is actually returned.
Step 4. Send, carefully
The SMS endpoint needs a number you own. Email sequencing is a different product and the seat market for it is covered in the outreach tools guide. Get a legal read on the channel before the first campaign.
Give this to your agent![]()
Set up https://monid.ai/SKILL.md, and then use Monid to size the population of sales leaders at US software companies with 200 to 1000 staff, enrich the top 50 companies, drop any with fewer than 100 known contacts, then match the VP Sales at each without reveal flags and tell me how many have an available email.📖 See also Wire Up ICP Prospect Search with People Data Labs
Which step charges you for nothing?
Step three, and it tells you so in advance if you read the pricing block.
The documented behaviour
From the endpoint's own pricing note: the base is charged always; personal emails add one credit when the flag is set; a mobile adds eight credits and only when a number is actually returned, so the flag alone never charges; and a no-match consumes nothing.
Then the sentence that matters: it bills the base credit when it can attach the name to a known company, even with no email and no title.
What that looked like
Exactly as described. A named executive at a company the provider knows, returning an id, an organisation id, a country, and eleven nulls including the title and the address. The charge landed.
Three rules that follow
The expensive failure is the near miss, not the miss. A person the provider cannot find is free. A person it half-finds costs the base. Design for the second case.
email_status is a stop signal. unavailable means no reveal will succeed. Spending on it anyway is the most common avoidable cost in this chain.
Eight to one is a design constraint. Setting the phone flag by default multiplies your bill by a factor you did not choose, and the free population call already told you only seven rows in a hundred have a phone at all.
And two warnings from the same week
Two providers gave one domain 580 and 1,011 employees, a 74 percent gap, and reported revenue against capital raised in similar-looking fields. Separately, one of them returned a three-person UK recruitment agency founded in 2023 for a well-known software company's domain, with every field internally consistent. Both findings and the cheap cross-check that catches them are in the lead scoring guide.
Which endpoint should I use for which job?
| Endpoint | What it does | Input | Output | Best for | Billing |
|---|---|---|---|---|---|
hunterio/multi-domain-search | Size a population | Department, seniority, headcount, location | Redacted rows with existence flags | Step one, always | Free |
apollo/organizations/enrich | Company record | domain | 66 fields, revenue, headcount, technologies | Disqualifying before you spend | Per call |
hunterio/email-count | Contacts by department | domain | Totals and department split | Reachability and capability | Per call |
apollo/people/match | Match a person | Names plus domain, as query params | 35 fields, email_status | Step three, flags off first | Tiered, base plus reveals |
saperly/send-messages | Send an SMS from your number | fromNumberId, to, body | Delivery record | The touch, where a phone exists | Per call |
Every row was verified with monid inspect on or before 2026-09-24. The table gives billing shape rather than figures, because shape drives design and current numbers live on monid.ai/tools.
The first row is free and it is the row that decides how much the rest costs.
When should you buy the platform instead?
Four cases, and they are the majority of sales teams.
Reps are the users. If people open a tool every morning and work a queue, you are buying an interface and a workflow, not endpoints. The chain above feeds that; it does not replace it.
You need the operational surface. Sequencing, reply detection, deliverability management, CRM writeback, reporting to a VP. That is most of what a platform costs and none of it arrives with a key.
Compliance is handled for you. Suppression lists, unsubscribe handling, sending-domain warmup and regional consent rules are real work, and a platform doing them correctly is worth paying for.
Your volume is low. Under a few hundred contacts a month the integration costs more than the manual version.
And the disclosure: this is Monid's blog and we resell every endpoint here. The load-bearing advice is to run the free step first and buy fewer reveals, and to treat email_status: unavailable as a stop. Both reduce what you spend with us.
Conclusion
Sales automation as a chain is four lookups and a send, and the economics are lopsided in a way the platform framing hides. Step one is free and told us 38,860 people matched a profile, with ninety percent reachable on LinkedIn and seven percent by phone. Step two is two cheap calls per company and is where you should be doing your disqualifying. Step three is where the money goes, and it is the step that charged us a base credit for a record with a null title and a null email, exactly as its own documentation says it will.
What matters more than the tooling is the order and one field. Size for free, disqualify on a cheap call, match without reveal flags, read email_status before spending, and set the phone flag only where a call is genuinely the plan since it costs eight times an email reveal. Cross-check the company facts on a second provider too, because on the same week two of them disagreed by 74 percent on headcount and one attached the wrong company to a domain entirely.
Free next step: run the population call with your own filters and read meta.results alongside the phone and LinkedIn flags. It costs nothing and it will probably change which channel you were planning to use. Start at monid.ai.
FAQ
What does sales automation usually mean to buyers?
A platform that holds the sequence: you load contacts, it sends the steps, it stops when someone replies, and it writes the result back to your CRM. That is a legitimate product and most teams should buy one. The reason to look at the underlying calls anyway is that the platform's pricing bundles a free step with an expensive one, so a pipeline that sizes its market at no cost and disqualifies before buying contacts spends much less on the same outcome. Buy the platform for the workflow, and use the calls for the part that happens before a contact is worth loading into it.
Does this replace an email sequencer?
No. Nothing here manages deliverability, detects replies, handles unsubscribes or warms a sending domain, and those are the hard parts of sending at volume. What the chain replaces is the data acquisition that feeds a sequencer, which is where the per-contact cost lives. The clean division is to assemble and qualify the list through calls, then load only the contacts that survived into whatever sends. Doing it the other way round, loading everything and letting the platform enrich, is how teams end up paying for records they would have rejected.
Why cross-check two enrichment providers?
Because they disagree in two different ways and only one of them is obvious. The visible kind is an estimate gap: 580 against 1,011 employees for one domain on one day, which banding absorbs. The dangerous kind is entity resolution, where a provider attaches a plausible, internally consistent record for the wrong company to a domain you asked about. Nothing in that record looks broken. The cheap catch is to compare two quantities that have to be compatible, such as an employee estimate against a count of known contacts, and flag the rows where they are not.
What about the legal side of the last step?
It varies by channel and country and it is the one part of this chain where getting it wrong has consequences beyond wasted spend. Business-to-business email in the United States sits under different rules from consumer marketing but still involves identification and opt-out obligations; much of Europe requires prior consent; SMS adds carrier rules on top. An endpoint accepting your request settles none of that, and its opt-out handling is a floor rather than a defence. We read the SMS schema for this article and deliberately did not send anything. Get a legal read before the first campaign.
Last updated September 2026.


