FlowRunner
PricingContact
Theme
Start Free

CompanyHub

CRM

Connect AI agents to CompanyHub, a customizable CRM for small and medium businesses. Agents create and update contacts, companies, and deals across custom record types without a schema migration.

25 actions API key available
A new customer record arrives from a form, a spreadsheet, or a chat message
Test Authentication confirms the subdomain and key before a batch commits
Search Contacts runs an exact field match on email to find an existing record
Create Company writes the account when no match exists
Create Contact attaches the person to that company
Create Deal opens the opportunity with its stage and amount
The owner is told what was created and what was matched to something existing
CRM admin confirms the record set before any batch delete or bulk overwrite runs

What This Integration Enables

CompanyHub's central design choice is that your schema is yours. Tables and fields are defined per account under the customization settings, and the API follows that faithfully: the record actions take a table name as a parameter, so a custom Renewal table or a custom Territory table is reachable by exactly the same calls as Contact, Company, and Deal. That is unusual and genuinely useful, and it also means this connector is as wide as whatever an account has built. An agent working here is not operating against a fixed object model that somebody documented once. It is operating against a schema the customer changed last month.

FlowRunner agents get two layers to work with. The generic record actions, List Records, Get Record, Create Record, Update Record, Delete Records, and Search Records, reach any table including custom ones, with Create and Update taking a free-form Fields object because the field set is account-specific. Dedicated actions cover the three standard sales tables so the common paths are explicit. CompanyHub provides no webhook subscription surface to this connector, so it ships no triggers and agents poll List Records or the Search actions on a schedule. Search is precise, using an exact field match with a comparison operator, while the searchText option on the List actions is broader and matches a value across every field of a record. Knowing which of those two you used is the difference between a safe cleanup and an expensive one, which is why the batch writes are where the digital andon cord hangs.

Without FlowRunner

Records created blind Contacts get added without a match check, so the same person arrives three times
Custom tables left out Integrations only reach the standard tables, so the account's real schema is stranded
Cleanup done by broad search A wide text search picks the match set and the deletes run straight off it

With FlowRunner

Match before write An exact field search runs first, so creates happen only when nothing matches
The whole schema reachable Generic record actions work against any table in the account, custom ones included
Cleanup that shows its evidence The matched records and the field that matched each one are reviewed before deletion

Use Case Scenarios

Inbound records that match before they create

Leads collect in Google Sheets from a webinar and a partner list. The agent reads each row, calls Search Contacts with an exact Equals match on the email address, and Search Companies on the domain. Rows that match nothing get Create Company and Create Contact, then Create Deal with the stage and amount from the source. Rows that match an existing record get Update Contact for the genuinely new fields only. The exact match matters here: using the broader searchText option on List Contacts would match a personal email that merely appears in another record's notes, and the agent would attach a new deal to the wrong account.

Custom tables that stop being second-class

The account carries a custom Renewal table that no off-the-shelf integration knows about. The agent calls List Records against it on a schedule, filters for renewals inside the next sixty days, and cross-references each one to its deal with Get Deal and its account owner with Get Company. Owners get a personal list in Slack naming their renewals, the amount, and the days remaining. When a renewal closes, Update Record writes the outcome back to the custom table and Update Deal reflects it on the standard one. The customer's own schema drives the automation instead of being worked around.

A revenue picture assembled from the tables that hold it

On a schedule, the agent pages through List Deals using start and limit, reading the Total property in the response to know how many pages remain, and joins each deal to its company with Get Company. The result lands in a reporting sheet with stage, amount, owner, and account. Deals whose amount changed since the last run are called out, and so are deals sitting in a stage past the team's usual dwell time. Because CompanyHub returns a Success flag with an Errors detail rather than always signalling failure through the HTTP status, the connector inspects that flag and raises the error, so a partial run does not become a quietly incomplete report.

Human-in-Loop Highlight

CompanyHub is unusually forgiving about deletion, and that is precisely what makes its batch deletes worth gating. Deleted records are recoverable for thirty days and then permanently removed, so the undo exists but it expires, and it expires silently. Now add the two things that feed a delete. The delete actions are plural, Delete Records, Delete Contacts, Delete Companies, and Delete Deals, so they operate on a set. And the easiest way to build that set is the searchText option on a List action, which matches a value across every field of every record, meaning a sweep for an old domain will also match records that only mention it in a notes field. An agent that pipes a broad search straight into a plural delete can remove correct records that nobody notices for five weeks, by which point the recovery window has closed. So the cleanup agent stops at the join. It runs the sweep, then posts to the CRM admin in Slack: "Duplicate sweep on the Contact table matched 96 records. 71 matched on an exact Equals search of the email field. 25 matched only through searchText, and 6 of those matched inside a notes field rather than on an email, including two contacts on open deals. Delete the 71, or review the 25 first?" The admin decides. The agent then calls Delete Contacts on the approved set only. Thirty days of recoverability is a safety net, not a reason to swing harder.

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

25 actions

Account

1
  • Test Authentication Confirms that the configured subdomain and API key are valid. Used as the preflight check before a batch run commits to any writes.

Records, Any Table

6
  • List Records Returns records from any table, including custom tables, using start and limit paging with a Total property in the response for page calculation. Also accepts the broader searchText option, which matches a value across all fields of each record.
  • Get Record Retrieves a single record from any table. Used to load the full field set before an update decision.
  • Create Record Creates a record in any table from a free-form Fields object, because the field set is defined per account. Used to write into custom tables that no fixed object model would cover.
  • Update Record Updates a record in any table from a free-form Fields object. Used to write outcomes back to custom tables as work completes elsewhere.
  • Delete Records Deletes a set of records from any table. Deleted records are recoverable for thirty days and permanently removed after that, so agents assemble the set and a person approves it.
  • Search Records Searches any table with an exact field match using Equals, Not Equals, Less Than, Greater Than, Less Than Or Equal, or Greater Than Or Equal. One field condition per call, so compound queries are chained or filtered afterwards.

Contacts

6
  • List Contacts Returns contacts with paging and the optional broad searchText match. Used for sweeps and reporting.
  • Get Contact Retrieves a single contact. Used to load context before an update or a merge decision.
  • Create Contact Creates a contact from a free-form Fields object matching the account's Contact table. Used when a form, spreadsheet, or chat message introduces someone new.
  • Update Contact Updates an existing contact. Used to enrich a record without rewriting fields that are already correct.
  • Delete Contacts Deletes a set of contacts, recoverable for thirty days. Used only on a set a person has reviewed.
  • Search Contacts Searches contacts with an exact field match and a comparison operator. Used as the precise duplicate check before a create, in place of the broader text search.

Companies

6
  • List Companies Returns companies with paging. Used for account sweeps and coverage reporting.
  • Get Company Retrieves a single company. Used to load account context before a deal or contact write.
  • Create Company Creates a company from a free-form Fields object. Used when a new account enters the system.
  • Update Company Updates an existing company. Used to keep account data current from an external source of truth.
  • Delete Companies Deletes a set of companies, recoverable for thirty days. Gated behind human review.
  • Search Companies Searches companies with an exact field match. Used to resolve an account by domain or name before writing to it.

Deals

6
  • List Deals Returns deals with paging. Used for pipeline reporting and stalled deal detection on a schedule.
  • Get Deal Retrieves a single deal with its stage and amount. Used to confirm state before a move.
  • Create Deal Creates a deal from a free-form Fields object. Used when a qualified opportunity opens.
  • Update Deal Updates an existing deal, including stage and amount. Used to keep the pipeline in step with a billing or quoting system.
  • Delete Deals Deletes a set of deals, recoverable for thirty days. Reserved for human-approved cleanup.
  • Search Deals Searches deals with an exact field match and a comparison operator, which makes amount and date thresholds workable. Used for targeted queries such as open deals above a value.

Frequently Asked Questions

What can FlowRunner do with CompanyHub?

FlowRunner agents can run Test Authentication, List Records, and Get Record in CompanyHub, plus 22 more actions.

Does connecting CompanyHub to FlowRunner require OAuth?

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

Can CompanyHub trigger a FlowRunner workflow automatically?

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

Start building with CompanyHub

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