FlowRunner
PricingContact
Theme
Start Free

Place outbound phone calls from a registered number with OpenMic AI voice agents and manage the agents that run them. Agents handle the call and pass the transcript and outcome downstream.

1 trigger 34 actions API key available
Platform Documentation ↗ Capability data verified 2026-08-01
A pricing change lands and the inbound agent's script is now wrong
Agent captures the live configuration with Get Agent and keeps it as the rollback copy
Agent reads List Phone Numbers to see which published numbers this agent answers
Agent diffs the proposed prompt against the current one and marks what changes for a caller
Agent posts the diff, the affected numbers, and the rollback copy to the owner of the line
The owner approves, and the agent applies the change with Update Agent, holding the previous version for one-command reversal

What This Integration Enables

Most AI voice platforms sell the conversation. OpenMic is more interesting for what it hands back afterwards. An agent carries post-call summary and data extraction settings, so a finished call returns structured fields rather than a wall of transcript. Create Phone Call accepts dynamic variables that are injected into the prompt as template variables at call time, which means the same agent can open with the caller's order number, renewal date, or appointment slot without a separate agent per scenario. Every call can carry your own customer reference, so the record OpenMic returns already points at the row it belongs to in your system. And the On Call Ended trigger fires when a call reaches a chosen status, so the flow resumes on its own.

Put together, that makes OpenMic a data-collection step you can put a phone number in front of, and it is the right way to think about it. A flow supplies the context going in, the call gathers what only a conversation can gather, and the flow routes work coming out based on how it ended. The clean split between calls that produced an expected outcome and calls that did not is where automation exceptions live: the confirmed appointments and completed verifications continue on their own, while the calls where the customer said something the extraction did not anticipate go to a person with the transcript already attached.

Without FlowRunner

Script edits go straight to live A prompt is changed in the console and the next real caller is the test
No copy of what it said before Reverting means remembering the previous wording, or approximating it
Call outcomes read by hand Someone listens to recordings to find out what customers actually asked for

With FlowRunner

The live surface is known first The flow lists which published numbers the agent answers before anything is edited
Rollback is a stored artifact The previous configuration is captured and kept before the update is sent
Structured data off every call Extraction and the customer reference route follow-up work without a human transcribing

Use Case Scenarios

New Lead Called Before It Cools

A lead lands in HubSpot. The agent resolves the right OpenMic agent and caller number, then calls Create Phone Call passing the lead's product interest, source, and company size as dynamic variables so the opening line is specific rather than generic. Create Phone Call is limited to five requests per minute, so a flow with a burst of leads paces itself rather than failing half of them. When On Call Ended fires, the agent reads the extracted fields, writes the qualification result onto the lead, and books the follow-up. Calls where the extraction is incomplete or contradictory do not get written; they go to a rep with the transcript.

A Campaign That Feeds Itself from the Source of Truth

Contact lists in OpenMic are the unit campaigns dial. Rather than uploading a spreadsheet each week, a flow rebuilds the list from the system that owns the accounts: Create Contacts In Bulk loads up to 1000 records in one request, storing up to three phone numbers per contact plus metadata the agent uses during the call. Delete Contacts removes records that no longer qualify, up to 1000 identifiers at a time. The campaign's daily window, timezone, and active days are set once with Create Campaign and left alone. What changes weekly is who is in the list, and that is driven by data, not by whoever remembered to export it.

Follow-Up SMS with the Delivery Actually Checked

After a booking confirmation call, the agent sends the details by text with Send SMS. OpenMic queues the message, so the immediate response always reads as queued and tells you nothing. The flow instead reads Get SMS Log a few minutes later, which enriches the log entry with live provider detail: the body, delivery status, sent and delivered timestamps, and any failure reason. Delivered messages close the loop. Failures, and entries that come back with an unknown status because provider details were unavailable, route to a person or trigger a callback. The customer's confirmation either arrives or somebody finds out.

Human-in-Loop Highlight

Update Agent is the action on this connector with the widest gap between how small it looks and what it does. An OpenMic agent linked to a phone number answers real inbound calls, and changing its prompt takes effect immediately. There is no staging environment, no draft, and no scheduled rollout. The next customer who dials the published number is the first test of the new script. OpenMic also exposes no version history through the API, which means the previous prompt exists afterwards only if something captured it beforehand.

A FlowRunner change agent treats that as a release, not an edit. It calls Get Agent first and stores the full configuration, prompt, opening message, voice and speech providers, language model settings, and post-call processing, as a rollback artifact inside the flow. It reads List Phone Numbers to establish which published numbers the agent actually answers, because an agent that looks like an internal test agent may be linked to the main support line. Then it stops: "Agent SUPPORT-INBOUND answers +1 415 555 0180 and +44 20 7946 0311, which took 1,240 calls last month. The proposed prompt changes the refund window from 30 days to 14 and removes the escalation offer. Rollback copy saved. Apply now, apply after hours, or hold?"

The owner of the line decides, and the agent applies it. That is the whole shape of human-in-the-loop on this connector: everything that can be prepared, verified, and made reversible is done by the machine, and the single act that reaches customers with no undo is put in front of the person who owns the consequence.

Agent processes routinely
Detects exception requiring judgment
Clear match Continues automatically
Ambiguous Routes to human via preferred channel
Human decides
Agent resumes with decision

Agent Capabilities

34 actions

Calls

3
  • Create Phone Call Places an outbound call to a number from a registered number in your organization, handled by the agent linked to the from number unless a different agent is chosen. Values supplied as dynamic variables are injected into the prompt as template variables at call time. Limited to five requests per minute, so bursty flows need pacing. Returns the created call record with its identifier and status.
  • Get Call Returns the details and current status of a single call, including the from and to numbers, the agent that handled it, your customer reference, and the dynamic variables it started with. Used to check whether a call placed earlier is still running or has ended.
  • List Calls Returns a cursor-paginated list of calls, newest first, filterable by agent, status, call type, either number, your own customer reference, and a created date range. The customer reference filter is what lets a flow find the calls belonging to one order or account without a lookup table.

Agents

5
  • Create Agent Creates a voice agent from a name and system prompt and returns the uid used everywhere else in the API. Optional settings cover the opening line, voice and speech provider, language model, call handling such as recording and voicemail detection, conversation behaviour, and post-call summary and data extraction. First Message and Auto First Message are mutually exclusive.
  • Get Agent Retrieves a single agent by uid with its full configuration. Worth calling before any change, because this is the only way a flow holds a copy of the previous prompt.
  • List Agents Returns a cursor-paginated list of the agents in your organization, filterable by a partial name match and a created date range. Each record carries the uid needed to place calls, link numbers, or build campaigns.
  • Update Agent Partially updates an agent, changing only the fields supplied. Every creation setting can be changed here, including the prompt, voice, language model, and the call, conversation, and post-call setting groups. Enabling Detach Knowledge Base removes the knowledge base currently attached. Changes to a number-linked agent reach the next live caller immediately.
  • Delete Agent Permanently deletes an agent. The request is rejected with a conflict when the agent is still linked to a phone number or used by a campaign, so a flow unlinks first, which also means a conflict here is a useful signal that the agent is live.

Campaigns

5
  • Create Campaign Creates an outbound dialing campaign that calls every contact in the selected list using the selected agent and caller number, running between the start and end times on the chosen days. Campaign status is set by OpenMic and cannot be changed through the API.
  • Get Campaign Retrieves one campaign with its current status, agent, caller number, contact list, daily window, timezone, and active days.
  • List Campaigns Returns a cursor-paginated list of campaigns, newest first, filterable by status and created date range. Status is available here as a filter and an output field only.
  • Update Campaign Partially updates a campaign's name, caller number, contact list, daily window, timezone, or active days. The agent, the campaign type, and the status cannot be changed through the API, so swapping the agent means building a new campaign.
  • Delete Campaign Permanently deletes a campaign. The contact list it dialled is left in place, so the audience survives the campaign.

Contact Lists

5
  • Create Contact List Creates an empty list that campaigns dial through. Contacts are added afterwards, then a campaign is pointed at it.
  • Get Contact List Retrieves a list with its name and current contact count. Used as a sanity check before a campaign starts.
  • List Contact Lists Returns a cursor-paginated list of the contact lists in your organization, each with its contact count, filterable by created date range.
  • Update Contact List Renames an existing list. The contacts it holds and any campaign pointing at it are unaffected.
  • Delete Contact List Permanently deletes a list together with the contacts it holds. The request is rejected with a conflict when the list is still in use, but where it is not in use the contacts go with it, so this deserves a confirmation step.

Contacts

5
  • Create Contact Adds a single contact to a list used by a campaign. Up to three phone numbers can be stored, and any additional key and value metadata is kept in the contact info object for the agent to use during the call.
  • Create Contacts In Bulk Adds up to 1000 contacts to a list in one request. The response reports how many were created and how many were rejected rather than returning the individual records, so a flow that needs per-record certainty reads the list back afterwards.
  • List Contacts Returns a cursor-paginated list of the contacts in a list, each with its stored numbers and metadata. The identifiers returned here are what Update Contact and Delete Contacts take.
  • Update Contact Partially updates a single contact, changing only the fields supplied. Used to correct a number or refresh the metadata the agent reads during the call.
  • Delete Contacts Removes contacts from a list by identifier, up to 1000 per request. Deletion is permanent and the list itself is left in place.

Phone Numbers

4
  • List Phone Numbers Returns a cursor-paginated list of the numbers in your organization, each with its record identifier, E.164 number, and the agents linked to it for inbound and outbound calls. This is how a flow establishes what is actually live before changing an agent.
  • Get Phone Number Retrieves a single number by record identifier with the agents currently linked for each direction. Used to confirm which agent answers a number before changing the linkage.
  • Link Agent To Phone Number Associates an agent with a number for a chosen direction. Inbound makes the agent answer incoming calls, outbound makes it the default agent for calls placed from the number, and both applies it either way. Takes the number's record identifier, not the number itself.
  • Unlink Agent From Phone Number Removes the agent association for a chosen direction, leaving the number in your organization. Choosing both clears the inbound and outbound agent at once, which means inbound callers reach nothing, so this belongs in a sequence that links a replacement.

SMS

3
  • Send SMS Sends a text message to a number and returns the queued message with its identifier. The response status is always queued, so delivery has to be read later with Get SMS Log. When no sender number is given, the account SMS number is used.
  • List SMS Logs Returns a cursor-paginated list of SMS log entries, newest first, with delivery metadata such as direction, numbers, the linked session, and the logged time. Message bodies are not stored on these entries.
  • Get SMS Log Retrieves a single SMS log entry enriched with live provider detail: the message body, delivery status, sent and delivered timestamps, and any failure reason. When provider details are unavailable the entry returns with an unknown status and empty fields, which a flow should treat as unconfirmed rather than delivered.

Voices

2
  • List Voices Returns a cursor-paginated catalogue of the voices available to your organization, each with its provider, gender, language, accent, and preview URL, searchable and filterable. The catalogue covers six providers while an agent voice can only be set for four of them, so a flow validates the provider before assigning.
  • Get Voice Retrieves a single catalogue voice by numeric identifier with its name, provider, gender, language, accent, and preview URL.

Account

2
  • Get Account Info Returns the name and email of the account the API key belongs to. Useful as a connection health check before running calls or campaigns.
  • Get Usage Returns call minutes and sent SMS totals for your organization with a breakdown grouped by day, week, or month. Buckets are measured in UTC and weekly buckets start on Monday. Used for budget alerts and for spotting a campaign that is consuming more than it should.

Triggers

1 triggers

Event Triggers

1
  • On Call Ended Polls for calls that reach a chosen status and fires as each one lands, which is how a flow resumes after a conversation without waiting on a person to check. Used to read the extracted fields and transcript, write the outcome onto the record named by the call's customer reference, and route the calls whose outcome did not match any expected branch to a human with the transcript attached.

Frequently Asked Questions

What can FlowRunner do with OpenMic?

FlowRunner agents can run Create Phone Call, Get Call, and List Calls in OpenMic, plus 31 more actions.

Does connecting OpenMic to FlowRunner require OAuth?

No. OpenMic connects to FlowRunner with an API key, no OAuth flow required.

Can OpenMic trigger a FlowRunner workflow automatically?

Yes. OpenMic supports 1 trigger that can start a FlowRunner workflow automatically.

Start building with OpenMic

$100 in credits. No card required. Connect in minutes.