SmartReach.io
Sales OutreachSmartReach.io is a multichannel cold outreach platform. Agents add prospects, manage campaigns and read their stats, work tasks, maintain the do-not-contact list, and administer teams and users.
What This Integration Enables
SmartReach.io runs multichannel sequences across email, calls, LinkedIn, WhatsApp, and SMS, and its API is deliberately narrow: sixteen operations covering prospects, campaign state, the task queue, the do-not-contact list, and the teams the account is organized into. That narrowness is the thesis. This connector is not where you compose a sequence. It is where an agent feeds the platform clean prospects, watches what stalls, keeps the suppression record honest, and moves the human task queue along.
That division of labor is exactly the one FlowRunner is built for. The sequence design stays with the person who understands the market. The agent takes the repetitive edges: repairing merge tag data before it silently fails, reading the two stats counters that mean a prospect is stuck rather than slow, and turning opt-outs that arrived somewhere else into permanent suppression. Where a call carries real consequence, the connector's human-in-the-loop gate is a step in the flow rather than a policy in a document.
Without FlowRunner
With FlowRunner
Use Case Scenarios
-
The stuck prospects nobody reports
Get Campaign Stats returns the familiar totals alongside two counters that behave differently: merge tag errors and current failed email validation. Prospects in those buckets are not progressing at all, and nothing else in the API reports them. On a schedule, the agent walks the team's running campaigns, pulls those counts, and cross references List Prospects to find the records behind them. Missing company names, blank first names, and malformed addresses go back through Add Or Update Prospects with the matching columns set deliberately so an existing prospect is updated rather than duplicated. Repairs land in a Google Sheets log, and the residue goes to the owner.
-
The opt-out that arrived somewhere else
A prospect replies "take me off this list" to a rep's personal mailbox, or says it on a call, or writes it in a HubSpot ticket. Deleting the prospect record does not solve it, because the next import puts the address back. The agent instead calls Add Emails To Do Not Contact, which blocks the address across every campaign in the team, and posts confirmation into Slack with the source of the request attached. When a whole company asks to be left alone, Add Domains To Do Not Contact covers the domain, with named exceptions kept reachable where a relationship exists on the account side.
-
A task queue that has already been triaged
Reps open SmartReach to a list of due calls and LinkedIn touches. Before they do, the agent works the queue: Change Task Status pushes tasks whose prospect has since replied to done, snoozes tasks for accounts in an active support escalation until the ticket clears, and skips tasks against addresses that appear on the do-not-contact list. Each move is logged. What is left in front of the rep is the set of touches that still need a person to judge whether they are worth making, which is a much shorter list than the one the schedule produced.
Human-in-Loop Highlight
Every action on this connector runs unattended except one. Adding to the do-not-contact list is safe in the direction it points, so the agent does it freely. Remove From Do Not Contact points the other way: it takes an entry id and makes that address or domain reachable again by future campaigns, and the list gives the agent ids, not the reasons anyone was added. A typo'd domain block and a person who explicitly asked to be left alone look identical from the API. So the sweep stops and asks: "Entry 4412 blocks the domain northgate-partners.com across this team. Removing it makes every address at that domain reachable by future campaigns. It was added on March 4 and no source is recorded. Restore it, leave it, or restore it with the three named contacts kept blocked?" A person answers, and the answer is what runs. Restoring contactability is not a data cleanup task, and the agent does not treat it as one.
Agent Capabilities
16 actionsTeams and Users
4- List Teams Returns the teams the API key's user belongs to. An API key here is user specific and a user can sit in several teams, so this is the right first call and the team id it returns scopes almost everything else.
- Get Team Reads one team along with the users in it. Used to resolve membership before assigning ownership.
- List Users Returns the users in a team with their addresses, timezones, and active state. A user id from here is what a prospect's owner is set to.
- Get User Reads one user of a team by id. Used to resolve an owner before routing a decision to them.
Prospects
2- List Prospects Returns prospects in a team. Paging walks the collection with time bounds rather than page numbers, so an incremental sweep picks up where it left off.
- Add Or Update Prospects Creates or updates prospects in a single call. The matching columns you supply decide which of the two happens, so set them deliberately when a prospect may already exist under a different address.
Campaigns
5- List Campaigns Returns a team's campaigns, filterable by status, name, sending address, or receiving address. The entry point for any sweep across active work.
- Get Campaign Reads one campaign with its sending window: the timezone it runs in, its daily start and end, and which days of the week it may send on.
- Get Campaign Stats Returns performance totals alongside the current pipeline, including how many prospects are bounced, opted out, unsent, blocked by merge tag errors, or failing email validation. The last two are the ones that mean stuck.
- Get Campaign Channel Settings Reads a campaign's multichannel configuration, with separate blocks for email, calls, LinkedIn, WhatsApp, and SMS. This is how a flow tells which channels a campaign actually uses before it acts on one.
- Change Campaign Status Starts, schedules, or stops a campaign. Starting begins sending immediately within the campaign's own daily window, so a flow that calls this is committing to a send.
Tasks
1- Change Task Status Moves a task to due, snoozed, done, or skipped. Used to triage the rep queue against what has happened elsewhere, so the list a person opens is already filtered to real decisions.
Do Not Contact
4- List Do Not Contact Returns the team's do-not-contact list, the addresses and domains no campaign may reach. Read it before enrolling anyone.
- Add Emails To Do Not Contact Blocks specific addresses across every campaign in the team. The correct way to honor an opt-out that reached you outside SmartReach, because deleting a prospect does not stop a later import from adding the address back.
- Add Domains To Do Not Contact Blocks whole domains, with an optional list of addresses to keep reachable within each. Used when an organization, not an individual, asks to be left alone.
- Remove From Do Not Contact Removes entries by their ids and makes those addresses or domains reachable again by future campaigns. The operation this page's human gate exists for.
Frequently Asked Questions
What can FlowRunner do with SmartReach.io?
FlowRunner agents can run List Teams, Get Team, and List Users in SmartReach.io, plus 13 more actions.
Does connecting SmartReach.io to FlowRunner require OAuth?
No. SmartReach.io connects to FlowRunner with an API key, no OAuth flow required.
Can SmartReach.io trigger a FlowRunner workflow automatically?
SmartReach.io doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.
Start building with SmartReach.io
Free plan, no card required. Connect in minutes.