Operator
← Back to blog
GuidesSales

Run automated outreach loops with OpenClaw in Operator

Operator TeamOperator Team···9 min read

Finding the right people and keeping up with follow ups are the parts of sales outreach that eat time without needing your judgment on every step. You still want to write and approve each message, but the list building, the tracking spreadsheet, and the third touch three days after the second can run on a schedule. Operator.io gives your OpenClaw agent a persistent workspace and cron jobs, so it can own that loop.

Connect Apollo for prospect data and Resend for sending from a domain you control, and the agent searches for leads, drafts a note for each, waits for your approval, sends, and keeps the cadence going until someone replies or opts out.

What you get

Two services do the heavy lifting, and the agent runs the loop between them:

  • Apollo is a B2B contact database with filters for job title, seniority, company size, industry, and location. OpenClaw calls the People API Search endpoint to find prospects matching your description, then enriches the ones you pick through the People Enrichment endpoint to pull a verified work email.
  • Resend is a transactional email API. The agent sends from an address on your verified domain, so the message arrives as mail from you rather than a relay notification.

Put them together and the agent turns a description like "heads of marketing at Series A SaaS companies in New York" into a tracked list of leads, each with a draft waiting for your review.

The follow up cadence is where most replies actually arrive. Research on B2B sequence timing consistently shows that second and third touches catch people who missed the first note.

The agent keeps a CSV in its workspace with one row per lead, including how many times it has reached out and when the next touch is due. On the weekdays you choose, it checks that file, drafts follow ups for anyone who has gone quiet, shows you the drafts, and sends the ones you approve. When a reply lands or someone asks to be left alone, the agent marks the row and stops chasing that person.

Because the pipeline lives in a plain file the agent can read and update, you can ask questions in chat that most sequencing tools bury in analytics tabs: who has gone three touches without a word, which subject line got the most replies, or who you should drop from the list.

Before you start

You need an Apollo account, a Resend account, and a domain whose DNS you can edit so Resend can verify SPF and DKIM. Apollo API access depends on your plan; check your subscription before you create a key. The free plan includes a small monthly credit pool for enrichment, and paid tiers raise both the credit allowance and the rate limits on API calls.

Resend's free tier covers 3,000 emails a month with a cap of 100 a day on one verified domain, with no credit card required. Resend counts each recipient in the To, CC, or BCC fields as a separate email toward both limits, as documented in their account quotas page. For personal outreach to a handful of leads a day, that ceiling is comfortable. The Pro plan at $20 a month lifts the daily cap and raises the monthly allowance to 50,000 emails if you outgrow the free tier.

Apollo can also send mail through its own sequences if you connect a mailbox, so Resend is optional. This guide pairs Resend because it sends from a domain you own and lets the agent compose and send each note through the send email API, rather than dropping people into a fixed Apollo sequence template.

Step 1: Create an Apollo API key

In Apollo, open Settings, then Integrations, then Connect beside Apollo API. Click API Keys and Create new key. Give it a name and description, then either toggle Set as master key or select the search and enrichment endpoints individually.

The People API Search endpoint requires a master key. Apollo passes the key in an X-Api-Key header. The full walkthrough is in the Apollo API key documentation.

Searching for people through the People API Search endpoint does not spend credits. Enriching a person to reveal their email through People Enrichment or Bulk People Enrichment spends credits based on your plan, typically one credit per email match. The agent only enriches the leads you pick, so cost scales with the people you actually contact rather than every search result Apollo returns.

Step 2: Verify a domain and create a Resend key

Resend will only send from a domain you have proven you own. In the Resend dashboard, open Domains, add yours, and copy the SPF and DKIM records into your DNS provider, then click Verify. A subdomain like mail.yourdomain.com is a common choice because it keeps outbound sending separate from inbound MX records on your root domain. The Resend domains guide walks through the records.

SPF lists the servers authorized to send for your domain, and DKIM adds a signature receivers use to verify the message was not altered in transit. After both verify, adding an optional DMARC record gives Gmail, Outlook, and other providers a clearer policy for mail that fails authentication.

If your domain is on Cloudflare, OpenClaw can add those records for you once you have connected Cloudflare. Resend also supports automatic configuration through Domain Connect on supported registrars.

Then open API Keys, create one with Sending access, and copy it. The key starts with re_ and Resend shows it only once, as described in the Resend API keys docs.

Step 3: Add both keys to Operator

In your Operator dashboard, open Environment and add two variables: APOLLO_API_KEY with your Apollo key, and RESEND_API_KEY with your Resend key. Both are encrypted and shown to you only once. OpenClaw looks each one up by name when it needs it, so the keys never appear in a chat or in OpenClaw's config. If you started from the prompts library, the card collects both keys inline before it sends the prompt, so you can do this in one place.

Step 4: Send the prompt

Connect Telegram or Discord on the channels page so the agent has somewhere to reach you, then send it the outreach prompt:

Run my sales outreach using my Apollo API key to find leads and my Resend API key to email them. Create a spreadsheet in your workspace, a CSV with columns for the person, their company, title, email, the date I first reached out, how many times I have followed up, when the next follow up is due, and the reply status. When I describe who I am trying to reach, search Apollo for people who fit and enrich the ones I pick to get their work email, then add a row for each, checking the file first so the same person never lands twice. Write a short, personal first email for every lead and show me the drafts before anything sends, then email the ones I approve through Resend from my real name and address with a clear way to opt out. Set up an automation that checks the file each weekday, follows up with the leads who have not replied on the cadence I set, stops the moment someone replies or asks to be left alone, and messages me here with what went out and who wrote back. Before you start, ask me who my ideal customer is, the from name and address to send as, how many follow ups to send and how far apart, and a daily cap so the volume stays personal rather than spammy.

The same prompt is saved in the prompts library, so you can send it to your agent without retyping it.

Using it day to day

The first thing the agent does is ask who you are after, the address to send from, and your cadence and daily cap. After that the rhythm is simple. You tell it the kind of person you want to reach, it comes back with a handful of matches from Apollo and a draft for each, and you edit or approve them in the channel you already use. From then on the follow ups run on the weekdays you chose, and the messages you see are the drafts that need a look and the replies as they land.

Each approved send goes out through Resend with your from name and address, and the prompt has the agent include a clear way to opt out. Someone who is not interested clicks it and comes off the queue, which protects your sender reputation, because recipients marking unwanted mail as spam is what drags a sending domain into the spam folder for everyone you write to after. The daily cap works the same way: a handful of considered notes a day reads as a person reaching out, which is the volume this whole setup is built around.

How the agent learns about a reply is worth being clear about, because it is not reading your inbox. It knows someone wrote back when you tell it or forward the message into the chat, and then it marks the row and stops chasing that person. If you would rather it catch replies on its own, you can connect your inbox so it reads them directly, though the default leaves your mail out of it and puts you in charge of flagging who answered.

Because the whole pipeline is a CSV the agent owns, you can ask it to summarize the list anytime: who has gone three touches without a word, which opening line got the most replies, or who you should stop chasing. Those reply numbers are only as complete as what you have reported back, so they reflect what you flagged rather than a tally pulled from your inbox.

The file itself holds the names, titles, and work emails you pulled from Apollo, which makes it a small contact database that is yours to keep and to prune. Clear the people who opted out, drop a batch that went nowhere, or hand the file to someone else when you want. You can also ask it to pull a fresh batch from Apollo when you want to expand the list, and it checks the file first so the same person never lands twice, including anyone who already asked you to stop.

Deliverability at this volume

This setup sends from one domain through Resend at the daily cap you set, typically well under the 100 emails a day limit on Resend's free tier. That is a different profile from high volume cold email platforms like Instantly or Smartlead, which rotate sends across many warmed inboxes and cap each mailbox at roughly 30 to 50 emails a day to stay inside provider thresholds. If you need that kind of volume, those tools are built for it. This workflow is built for outreach where you read every draft before it sends and keep the daily count low enough that one verified domain on Resend is sufficient.

A brand new sending domain can still land in spam until it builds reputation. Start with real messages to people who match your offer, keep volume at the cap you set with the agent, and make sure SPF, DKIM, and ideally DMARC are verified in Resend before you send the first batch. Resend's deliverability guidance covers the DNS side; the agent handles the composition and send side once the domain is green.

Good to know

Apollo's search endpoint is free, so exploring titles and companies costs nothing until you enrich a specific person for their email. Resend's free tier is enough for a steady cadence of personal outreach on one domain. Every message still comes to you before it sends, and the agent owns the list, the tracking, and the follow up schedule.

To set it up, open the prompts library and send the sales outreach prompt to your agent.

Frequently asked questions

How does automated sales outreach with the agent work?

+

You describe who you are trying to reach, like "heads of marketing at Series A SaaS companies in New York," and the agent searches Apollo for matching leads, pulls a verified work email for the ones you pick, and drafts a short personal first email for each. You approve the drafts, it sends through Resend from your own domain, and it works the follow ups on the cadence you set, stopping the instant someone replies.

What does it cost to run?

+

You need an Apollo account and a Resend account plus a domain you can edit. Apollo's free plan includes a small monthly credit pool for enrichment, and API access depends on your plan tier. Resend's free tier covers 3,000 emails a month and 100 a day on one verified domain. Searching Apollo via the People API Search endpoint does not spend credits; enriching a lead to reveal its email spends one credit per match, so cost tracks the people you choose to contact.

Can I see who replied and what is working?

+

Yes. The whole pipeline is a CSV the agent owns, with one row per lead, how many times it reached out, when the next touch is due, and the reply status, so you can ask things a sequencing tool hides behind a dashboard: who has gone three touches without a word, which message got the most replies, or who you should stop chasing. You approve every message, and the agent tracks and sends the follow ups.

Is this for high volume cold email?

+

This setup targets personal, considered outreach where you approve every send and keep daily volume low. If your plan is hundreds of cold emails a day across many inboxes, that is a different stack built on inbox rotation and warmup, and tools like Instantly or Smartlead fit that model better.