iClosed
SchedulingConnect AI agents to iClosed, a sales-focused appointment scheduling platform. Agents book and reschedule event calls, manage contacts and deals, record call outcomes, and sync transactions so the sales pipeline reflects every booked call.
What This Integration Enables
Most scheduling APIs stop at the booking. iClosed does not, and that is the whole reason to build on it. A contact, the event type they booked, the event call itself, the outcome of that call, the deal it produced, the transactions that paid for the deal, and the product the deal was against are one connected graph, reachable from a single connection. Agents push leads in as contacts with lead status, tags, and UTM attribution intact, present real availability with Get Event Dates and Times, book the call, reschedule or cancel it, release a held slot back into availability, and then keep going into the revenue side: outcomes, deals, transactions, and products.
For a sales operations team, that closes the gap where reporting normally breaks. The question is not whether calls got booked, it is which source, which closer, and which event type produced revenue, and the attribution needed to answer it is already attached to the objects rather than joined together afterward. Custom fields are addressable too, so the answers an invitee gave at booking can be read and written by an agent rather than sitting in a form export. Rate limits apply per plan, so bulk syncs are paced rather than fired at once. Every action is built and verified against the iClosed API.
Without FlowRunner
With FlowRunner
Use Case Scenarios
Lead to Booked Discovery Call
An inbound form submission lands with a name, an email, and the campaign it came from. The agent runs Create Contact, which upserts on the email or phone, carrying the lead status, tags, and UTM attribution through so the source survives into reporting. It then runs Get Event Dates and Times for the discovery event's link prefix in the lead's time zone, picks the earliest slot that fits the routing rules, and books it with Book Event Call, attaching answers to the event's secondary custom fields. A confirmation goes out through Gmail and the assigned closer is told in Slack. The lead is on a calendar within minutes of raising their hand, with the attribution intact.
No Shows and the Slots They Waste
Fifteen minutes after a call was due to start, the agent runs Get Event Calls for the window and identifies the ones with no outcome recorded. For each, it reads the contact with Get Contact by ID, logs the attempt with Create Contact Note, and starts a recovery sequence. Where the closer confirms the invitee is not coming, the agent runs Mark Booked Slot as Free so the time returns to availability instead of sitting blocked for the rest of the afternoon, then offers the contact the next open slots and rebooks with Reschedule Event Call when they answer. The closer's day refills itself rather than emptying out.
Reconciling Payments Against the Pipeline
Payments arrive in Stripe and the pipeline needs to know which deal each one belongs to. The agent runs Get Transactions filtered by synced status and time range, matches each against a deal through Get Deals using the contact and product, and links the ones that match. Payments with no corresponding deal are recorded with Create Transaction so nothing is lost, then routed to revenue operations as an automation exception with the contact and amount attached. A weekly roll-up lands in Google Sheets, broken out by closer, product, and source, using the attribution that was captured at booking.
Human-in-Loop Highlight
Upsert Call Outcome is a small operation with a long reach. It records whether a call was Won, No Sale, Approved, or Rejected, a No Sale requires a reason, and a Won can create or update a linked deal, which means a single call writes into revenue reporting and, in most sales organizations, into what somebody gets paid. It is an upsert, so running it a second time replaces the first verdict without keeping the old one. An agent can read a transcript and form a confident view of how a call went, and it will often be right, but the judgment of whether a prospect is genuinely closed is the closer's to make and the closer's to defend. So the agent drafts and routes. It assembles the call from Get Event Calls, the history from Get Contact Notes, and any existing deal from Get Deals, then asks the assigned closer in Slack: "Call with [contact] on [date]. Proposed outcome Won, deal value [amount] against product [name], based on [evidence]. Confirm, change the outcome, or set No Sale with a reason?" The closer answers, and the agent runs Upsert Call Outcome and Create Deal with the confirmed values. The same rule covers Delete Transaction, which permanently removes a payment record and cannot be undone. Booking, rescheduling, note logging, and contact syncing all run unattended. Writing the verdict on a human conversation does not.
Agent Capabilities
30 actionsContacts
6- Get Contacts Lists contacts with pagination, free text search, status filtering, and time range filtering on the joined date, returning core profile fields, linked events, and the assigned user.
- Get Contact by ID Retrieves the full record for a single contact, including profile fields, custom field answers, and related activity. The complete contact card behind a summary row.
- Create Contact Creates or upserts a contact. An email or a phone number is required to identify them. Supports lead status, tags, UTM attribution, and time zone, so campaign source survives into reporting.
- Update Contact Updates a contact by ID, changing only the fields supplied. Covers names, primary and secondary email and phone, lead status, and referrer URL.
- Get Contact Notes Lists the notes on a contact, most recent first. Used to read the running history on a lead before an agent acts or a closer picks up.
- Create Contact Note Adds a note to a contact, in plain text or HTML. Used to log call summaries, outreach attempts, and context arriving from other systems.
Events
4- Get Events Lists the event types, the booking templates configured on the account, with their scheduling settings, location type, duration, and public link prefix.
- Get Event by ID Retrieves a single event type by numeric ID or by its public link prefix, returning the complete scheduling configuration.
- Update Event Status Activates or deactivates an event type. A deactivated event stops accepting new bookings while existing calls stay intact, which is how a booking calendar is closed without disturbing what is already on it.
- Get Event Dates and Times Returns the available booking dates and time slots for a public event, resolved by link prefix and target time zone. Run this before Book Event Call so the options offered are real.
Event Calls
5- Book Event Call Books an event call for an invitee, identified by contact ID or by email or phone, against an event ID or link prefix. The date and time must be ISO 8601 UTC with a time zone supplied, and answers to secondary custom fields and extra guests can be attached.
- Get Event Calls Searches booked calls by time window, date range, free text, assigned user, event, call type, outcome, and UTM attribution, with sorting and pagination. The read behind dashboards and post-call automation.
- Reschedule Event Call Moves a booked call to a new date and time with a required time zone. Optionally reassigns the closer, records a reschedule reason and internal notes, and replaces the guest list.
- Cancel Event Call Cancels a booked call with an optional reason. The contact and the call history are preserved.
- Mark Booked Slot as Free Releases a booked call's time slot back into availability, or re-holds it, without canceling the call. The right move when a no show should not cost the closer the rest of the afternoon.
Deals
3- Get Deals Lists deals filtered by contact, user, product, transaction type, contact status, event, and time range, with search, sorting, and pagination.
- Create Deal Creates a deal from an existing event call, attached to a product by ID or created inline by name, with optional value, transaction type, deal time, and linked transactions.
- Update Deal Updates a deal by ID, changing only the fields supplied: value, recurring flag, transaction type, product, closer, deal time, and linked transactions.
Transactions
4- Get Transactions Lists standalone payments filtered by ID, synced-to-deal status, source, and time range, with search and sorting by date or amount. The basis for reconciling a processor against the pipeline.
- Create Transaction Creates a standalone payment record with a required value and optional contact details, description, and source. Used to capture payments from external processors before they are linked to a deal.
- Update Transaction Updates a transaction by ID, changing only the fields supplied: name, contact details, description, value, and source.
- Delete Transaction Permanently removes a transaction. This cannot be undone, and deals are not deleted by it, so the operation is routed for human approval.
Products
3- Get Products Lists the products on the account with case insensitive name search, sorting, and pagination. Products categorize deals and revenue.
- Create Product Creates a product with a required name and an optional description.
- Update Product Updates a product by ID, changing the name or description.
Outcomes
1- Upsert Call Outcome Adds or updates the outcome of an event call, such as Won, No Sale, Approved, or Rejected. A No Sale requires a reason and a Won can create or update a linked deal. Because it overwrites a prior verdict and feeds revenue reporting, it is routed to the assigned closer for confirmation.
Users
2- Get Users Lists the closers and setters on the account with contact details, role, and connected integrations. Used to resolve user IDs for assignment and routing.
- Get User Availabilities Retrieves a user's configured availability schedules, describing the hours and days they are open for bookings.
Custom Fields
2- Get Object Fields Lists the custom fields defined for a given object type, whether Contact, Call, Event, Deal, User, or iScore, with filtering by input type and search. Run this to discover field IDs before writing answers.
- Upsert Field Answer Sets the answer for a custom field on a contact or a call, identified by field ID or identifier. Answers are always arrays of strings, with one element for single value fields and several for multi-select.
Frequently Asked Questions
What can FlowRunner do with iClosed?
FlowRunner agents can run Get Contacts, Get Contact by ID, and Create Contact in iClosed, plus 27 more actions.
Does connecting iClosed to FlowRunner require OAuth?
No. iClosed connects to FlowRunner with an API key, no OAuth flow required.
Can iClosed trigger a FlowRunner workflow automatically?
iClosed doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.
Start building with iClosed
$100 in credits. No card required. Connect in minutes.