FlowRunner
PricingContact
Theme
Start Free

Automate calls, users, virtual numbers, and calling lists on FreJun. Agents supply the day's call list from live pipeline data and log outcomes against the right record.

23 actions OAuth available
FreJun website ↗ Platform Documentation ↗ Capability data verified 2026-08-02
A scheduled run at the end of the recruiting day
Agent runs List Calls filtered by recruiter and date range, pulling recordings, transcripts and AI insights
Agent reads Get Organization Details to confirm the outcome and reason it intends to write actually exist on this organization
Agent writes disposition, notes, tags and the candidate, job and transaction identifiers with Update Call Log
Agent posts the calls it could not confidently classify to the recruiting channel with the transcript attached
Before tomorrow's calling lists are rebuilt, the recruiting lead confirms the removals, because Delete Contact List with no list ID clears every list that user owns

What This Integration Enables

FreJun is built on the assumption that the phone is not the system of record. Its call logs carry candidate, job, recruiter and transaction identifiers, its dispositions are an organization-defined vocabulary rather than a fixed enum, and its calling lists belong to individual users. That is a dialler designed to be embedded in a recruiting or sales platform, which makes the writeback path the most valuable thing an agent can own here.

An agent reads List Calls with recordings, transcripts and AI insights already attached, decides what the call actually was, and writes that back with Update Call Log along with the identifiers that connect the call to the candidate and the requisition. The validation step in between matters more than it looks: Get Organization Details returns the call outcomes, reasons and tags configured for this specific organization, capped at 15 outcomes and 10 reasons, so a flow that writes a value nobody defined will be rejected. Around the writeback sit the operational pieces recruiting teams actually need automated, seat and licence management with Create User and Update User, virtual number assignment so a new recruiter can dial from a local number on day one, and calling lists built with per-entry add and delete operations so a single call can both extend a list with new prospects and drop the ones that already converted. Get Call Analytics closes the loop with per-user totals over a range of up to 31 days.

Without FlowRunner

Dispositions logged from memory Outcomes are typed at the end of the day, or left blank when the day runs long
Calls disconnected from the pipeline The call log knows a call happened; the ATS does not know which candidate or job it was about
Lists rebuilt by hand Tomorrow's calling list is exported, deduplicated and re-uploaded every evening

With FlowRunner

Dispositions written from the call Outcome, reason and notes come from the transcript and the AI insights on the record
Calls tied to the record Candidate, job and transaction identifiers are written onto the call log itself
Lists rebuilt from live data The next day's list is composed from current pipeline state, with removals approved first

Use Case Scenarios

Dispositions written from what was said

At the end of the recruiting day the agent pulls the day's calls for each recruiter, complete with the transcript and the AI insights FreJun already produced. It reads Get Organization Details first so it is working from this organization's actual outcome and reason lists rather than a generic taxonomy, classifies each call, and writes back with Update Call Log: the outcome, the reason, free-text notes, the tags, and the candidate, job and transaction identifiers that tie the call to the requisition it belongs to. Calls it cannot classify with confidence are not guessed at. They go to the recruiting channel with the transcript attached and a specific question, which is how automation exceptions should behave: fewer decisions reaching a person, and each one arriving already researched.

Tomorrow's calling list, composed from live pipeline state

Overnight the agent rebuilds each recruiter's calling list from current pipeline state rather than from last night's export. It runs List Contact Lists to read what is on the list today, works out the difference against the candidates who are genuinely due a call, and uses Update Contact List, where each entry carries its own operation, to extend the list with new prospects and drop the ones already placed or withdrawn in a single call. Custom data travels with each contact so the recruiter sees the requisition and the last touchpoint on screen when the call connects. The additions run unattended. The removals wait, for the reason described below.

A recruiter who can dial on their first morning

A new recruiter is approved in the HR system. The agent runs List Roles to resolve the role identifiers FreJun requires, then Create User with the email, first name, roles, licence type and E.164 phone number, suppressing the FreJun invitation email because the onboarding flow sends its own. It runs List Virtual Numbers to find a number in the right market and Assign Virtual Numbers to grant it both as an outbound caller ID and for inbound routing. When someone leaves, the order reverses and matters: Assign Virtual Numbers removes their numbers and reassigns them first, then Update User deactivates the seat, and only a deliberate decision runs Delete User, which frees the licence permanently.

Human-in-Loop Highlight

Delete Contact List has a parameter shape that deserves a person on it. Supply a list ID and it removes that one list. Omit the list ID and it clears every calling list belonging to that user, contacts and all, with no undo. In a flow that rebuilds lists nightly, the difference between those two calls is a single field that may or may not have been populated by an upstream lookup, and the failure mode is a recruiter arriving to an empty dialler on the morning of a placement deadline. So the agent never issues a removal unattended. It composes the change, then puts the specific numbers in front of the recruiting lead in Slack: "Rebuilding calling lists for 6 recruiters. Adding 214 candidates. Removing 3 lists by ID: Q3 Backfill, Contract Renewals, Lapsed Applicants, holding 96 contacts between them. No user-wide clear is included. Approve the removals?" Additions proceed on their own because they are recoverable. Deletions wait for a yes, and the message states plainly that no user-wide clear is in the batch, because the absence of the dangerous call is the thing the approver most needs to see.

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

Agent Capabilities

23 actions

Calls and Analytics

3
  • List Calls Retrieves call logs with both numbers, the virtual number used, direction, duration, cost, disposition, notes, tags, the recording URL, the transcript and any AI insights. Filterable by call, job, candidate, transaction, recruiter or user, or by date range. The read side of every writeback flow.
  • Get Call Analytics Retrieves per-user analytics for a date range with total calls, answered calls and total talk minutes. Ranges must not exceed 31 days, so longer reports are split into monthly chunks.
  • Update Call Log Enriches a completed call with CRM or ATS context: contact name, the call reason and outcome from the organization's configured lists, free-text notes, candidate, job and transaction identifiers, and tags. Run right after a call ends so reporting and analytics stay accurate.

Users and Roles

6
  • List Users Retrieves every user in the organization with name, email, active flag, availability status, roles, licences, personal number and assigned virtual numbers. Used to audit seats and licences.
  • Create User Invites a new user and consumes a licence seat, taking the creating administrator, the new user's email and first name, roles, licence type and an E.164 phone number. The invitation email can be suppressed when the onboarding flow sends its own.
  • Get User Retrieves one user by email address with roles, licences, availability status, active flag, join date and assigned virtual numbers. Used to check a seat before updating or deleting it.
  • Update User Updates a user by email: name, phone number, roles, licence tier, add-on licences, browser calling, seat activation and availability. Setting the status to Away stops FreJun routing incoming calls to that user.
  • Delete User Permanently removes a user and frees their licence seat. Virtual numbers assigned to them stop routing, so numbers are reassigned first. Cannot be undone.
  • List Roles Retrieves the roles defined in the organization with IDs and titles. Role IDs are required when creating or updating a user, so this is read first when building the payload.

Virtual Numbers

2
  • List Virtual Numbers Retrieves the organization's virtual numbers with display name, country code, timestamps, the user who receives inbound calls on them and the users allowed to dial out from them. Used to audit number routing or pick a caller ID.
  • Assign Virtual Numbers Adds or removes virtual numbers for one user, separately for outbound caller IDs and inbound routing. Used to give a new recruiter the right local number on day one, and to reclaim numbers before a seat is removed.

Calling Lists

4
  • List Contact Lists Retrieves a user's calling lists with the contacts they hold, narrowable to one list and paged for large lists. Used to reconcile a list against the pipeline before rebuilding it.
  • Create Contact List Creates a named calling list for a user and fills it with contacts in one call. Each contact carries a number, optional name, country code, notes and custom data available to the recruiter during the call. Returns the new list ID.
  • Update Contact List Adds contacts to or deletes contacts from an existing list, with each entry carrying its own operation, so a single call can extend the list and drop converted prospects at once.
  • Delete Contact List Deletes a calling list owned by a user. Supplying a list ID removes that one list; omitting it clears every list belonging to that user. The contacts inside go with the list and this cannot be undone, so it runs only after a person approves the specific lists named.

Organization Settings

3
  • Get Organization Details Retrieves the call outcomes, call reasons and call tags configured for the organization. These are defined per organization rather than fixed by FreJun, so this is read before writing a disposition to be sure the value is accepted.
  • Add Organization Settings Adds new call outcomes, reasons or tags so agents and flows can use them as dispositions. FreJun caps an organization at 15 outcomes and 10 reasons in total, so the current set is checked first.
  • Remove Organization Settings Removes outcomes, reasons or tags from the organization. Historic calls keep the value already stored, but the option disappears from the interface and from new call log updates, so values are retired only once flows have stopped writing them.

Webhooks

5
  • List Webhooks Retrieves the organization's webhook subscriptions with event name, callback URL, custom headers and notification contacts. FreJun publishes neither the event names nor the delivered payload schema, so this is how a flow discovers what is already configured.
  • Create Webhook Registers a subscription that posts a FreJun event to a callback URL, with optional custom headers for authenticating the delivery and up to five contact emails notified about delivery problems. Rejected with a 400 when a subscription for the same application and event already exists.
  • Get Webhook Retrieves one subscription by hook ID with the subscribed event, callback URL, custom headers and notification contacts. Used to confirm a subscription still points at the right endpoint.
  • Update Webhook Changes an existing subscription: a new callback URL, a different event, replacement headers or updated notification contacts. Only the fields supplied are changed.
  • Delete Webhook Removes a subscription so FreJun stops posting that event. Run when retiring an endpoint to avoid retries against a dead URL. Cannot be undone, only recreated.

Frequently Asked Questions

What can FlowRunner do with FreJun?

FlowRunner agents can run List Calls, Get Call Analytics, and Update Call Log in FreJun, plus 20 more actions.

Does connecting FreJun to FlowRunner require OAuth?

Yes. FreJun connects to FlowRunner with OAuth 2.0, so agents authenticate without handling raw credentials.

Can FreJun trigger a FlowRunner workflow automatically?

FreJun doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.

Start building with FreJun

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