Channels
Voice & TelephonyManage calls, contacts, and do-not-call lists on the Channels phone system. Agents log call activity against the right record and keep suppression lists honored before any outbound dial.
What This Integration Enables
Most phone systems treat the do-not-call list as a checkbox buried in a contact record. Channels treats it as a first-class object with its own list, lookup and batch write endpoints, and that changes what you can build on top of it. Suppression stops being a setting somebody maintains by hand and becomes a live surface an agent can enforce against, from wherever the opt-out actually arrived.
FlowRunner agents use that surface in both directions. On the way in, an opt-out from any connected system becomes a batched Block Numbers call with an Add Contact Note explaining itself. On the way out, Get Blocked Number is a compliance check a flow runs before a dial rather than a report someone reads afterwards. Around that core the connector covers the rest of the account: contacts and their detail fields for CRM sync, alternative numbers so one person resolves to every number they call from, call detail records and recordings for quality review, public recording links with the ability to revoke them, and seat management gated on Get User Stats so an onboarding flow never invites into a full plan. Suppression writes and Delete Contact are immediate and cannot be undone, which is exactly why the decision to reverse one belongs to a person.
Without FlowRunner
With FlowRunner
Use Case Scenarios
Suppression that keeps up with opt-outs
A customer replies to a campaign asking not to be called again. The reply lands in the helpdesk, which is not the dialler. An agent picks it up, resolves the sender to a Channels contact, runs List Contact Alternative Numbers to gather every number that resolves to that person, checks each against Get Blocked Number, and adds the ones that are not yet suppressed with a single Block Numbers batch. It then writes an Add Contact Note recording the ticket ID and the wording of the request, so the reason for the block survives long after the ticket is closed. The next outbound flow that reaches this contact runs Get Blocked Number first and stops.
Quality review without leaving audio exposed
A quality lead wants last week's answered calls for a specific team reviewed. An agent runs List Calls for the window, filters to the calls flagged as recorded, and runs Download Call Recording to bring the audio into FlowRunner file storage for transcription. Where a reviewer needs to hear the call inside a support ticket, the agent runs Create Recording Link to produce a credential-free URL and drops it into the ticket. Retention is the other half of that job: on a schedule the agent runs List Recording Links to see what audio is currently publicly reachable and runs Delete Recording Link on anything past the retention window, leaving the recording itself on the account.
Seat management that respects the plan
A new sales hire is approved. The agent runs Check User Exists on their email so the same person is not invited twice, then Get User Stats and Get Subscription to confirm there is a free seat before it consumes one. If the plan is full it raises the shortfall rather than silently failing. When someone leaves, the agent runs Disable User instead of deleting, which revokes access and stops routing calls to them while keeping their call history intact for reporting, and reverses cleanly with Enable User if they come back.
Human-in-Loop Highlight
Blocking a number is cheap to get wrong. Unblocking one is not. Unblock Numbers takes a batch and removes those numbers from the do-not-call list immediately, and the dial that follows cannot be un-made. So when an agent sees a signal that looks like a genuine opt-in, a reply saying "you can call me on the new number" or a fresh consent captured on a form, it does not write to the list. It assembles the case and asks: it posts the contact, the number, the original suppression note from Add Contact Note showing who blocked it and why, and the new consent evidence, then asks the compliance owner in Slack, "This number was suppressed on 12 March after a helpdesk request. New consent captured today on the renewal form. Unblock and return it to the calling list?" The batch only runs on an explicit yes. Everything else stays blocked, which is the safe direction to fail in.
Agent Capabilities
36 actionsDo Not Call
4- List Blocked Numbers Retrieves the account's do-not-call list page by page, with the number, the user who changed it, the event date and whether it is currently blocked. Used to reconcile the suppression list against another system's opt-out register, or to produce an audit extract.
- Get Blocked Number Checks the do-not-call status of one number. Used as the compliance gate immediately before an outbound step dials a lead.
- Block Numbers Adds one or more numbers to the do-not-call list in a single batched call. Used as the sink for opt-out and unsubscribe events arriving from any connected system.
- Unblock Numbers Removes one or more numbers from the do-not-call list so Channels may dial them again. Used only after a person has confirmed the opt-in is genuine.
Contacts
13- List Contacts Retrieves contacts page by page, narrowable server-side by phone number or a modification-date floor. Used as the read side of an incremental CRM sync.
- Get Contact Retrieves one contact with name, phone number, status and source. Used to resolve a call record or an opt-out signal to a known person.
- Update Contact Edits an existing contact in place, changing only the fields supplied. Used to keep Channels in step with the system of record.
- Delete Contact Permanently removes a contact along with its details and notes. Irreversible, so used only behind an explicit condition in a flow.
- Import Contacts Imports contact data, merging into a matching existing contact by default. Used for bulk loads where alternative phone-number columns should become alternative numbers rather than plain fields.
- Get Contact Details Retrieves the detail fields where Channels holds custom and imported data beyond the core record. Used to enrich a screen pop or a CRM sync.
- Add Contact Details Appends detail fields to a contact, leaving unmentioned fields untouched. Used to record something newly learned on a call, such as a company name.
- Update Contact Details Overwrites the detail fields named in the payload. Used when the CRM owns the master record and Channels should mirror it.
- Get Contact History Retrieves the calls and events logged against a contact. Used to build a relationship timeline before an agent picks up, or to summarise the account when a ticket opens.
- Add Contact Note Attaches a free-text note to a contact. Used to write back a call summary, a ticket reference, or the reason a number was suppressed.
- List Contact Alternative Numbers Retrieves the extra numbers stored against a contact. Used to find every number that resolves to one person before suppressing or dialling.
- Add Contact Alternative Number Adds an extra number to a contact so calls from it match the same person. Used when a customer calls from a mobile that differs from the number on file.
- Delete Contact Alternative Number Removes one alternative number from a contact, leaving the contact itself untouched.
Calls and Recordings
8- List Calls Retrieves call detail records with timings, duration, direction, both parties, the handling agent, the matched contact and whether a recording exists. Used as the polling surface for post-call workflows, since Channels registers no webhook subscription API.
- Get Call Retrieves one call detail record by identifier. Used to expand a call referenced from a contact's history.
- Download Call Recording Downloads the audio of a recorded call into FlowRunner file storage and returns a URL a transcription or archiving step can read. Used after checking the recording flag on the call record.
- Create Recording Link Creates a publicly accessible link to a call's recording and returns its token. Used to embed audio in a ticket or CRM note where the reviewer has no Channels credentials.
- List Recording Links Retrieves the public recording links currently live on the account with their tokens. Used to audit which call audio is publicly reachable.
- Delete Recording Link Revokes a public recording link by token while leaving the recording on the account. Used to enforce a sharing retention policy.
- Request Call Archive Requests an archive of recordings for a date window, optionally narrowed to numbers or users. Prepared asynchronously.
- List Call Archives Retrieves requested archives with their state and download location. Used to poll for completion after Request Call Archive.
Numbers
2- List Numbers Retrieves every number on the account with its label, country, European Economic Area flag and SMS capability. Used to pick a caller ID or audit inventory.
- Set Number Forwarding Points a Channels number's inbound calls at an external number. This changes live inbound routing immediately, so the destination is verified before it runs unattended.
Users and Seats
5- List Users Retrieves every user on the account with role, enabled flag, incoming-call preferences and assigned numbers. Used to reconcile seats against an identity system.
- Check User Exists Checks whether a user with a given email already exists. Used before an onboarding flow provisions a seat.
- Get User Stats Retrieves how many seats are purchased and how many are taken. Used to gate an automated invitation on there being a free seat.
- Enable User Re-enables a disabled user so they can sign in and take calls. Consumes a seat.
- Disable User Disables a user, revoking access and stopping call routing while keeping their history. The safe way to offboard an agent.
Account and Reporting
4- Get Balance Retrieves the calling credit balance from a given date onwards. Used to alert a team before credit runs out and outbound calls start failing.
- List Plan Destinations Retrieves the destinations included in the plan with their rates. Used to check a country is covered before a flow dials it.
- Get Subscription Retrieves the current plan, billing period and seat entitlement. Combined with Get User Stats to detect an account outgrowing its plan.
- Get Reports Generates account reports over a date window, covering daily contact status, billings, last contact events and script answers. Used for scheduled reporting with a timezone offset that matches the team's working day.
Frequently Asked Questions
What can FlowRunner do with Channels?
FlowRunner agents can run List Users, Check User Exists, and Get User Stats in Channels, plus 33 more actions.
Does connecting Channels to FlowRunner require OAuth?
No. Channels connects to FlowRunner with an API key, no OAuth flow required.
Can Channels trigger a FlowRunner workflow automatically?
Channels doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.
Start building with Channels
$100 in credits. No card required. Connect in minutes.