CRM
Cross-CRM Company Dedupe with Human Merge Queue
Scans Salesforce and HubSpot on a schedule, fuzzy-matches company records across both systems.
How it runs
The automated pipeline, trigger to output.
- TriggerNightly schedule fires
- ActionFetch updated companies from SalesforceSalesforce
- ActionFetch updated companies from HubSpotHubSpot
- LogicFuzzy-match pairs and drop already-resolved
- ActionInsert candidate pairs into Postgres merge queuePostgres
- OutputPost Slack approval card per pairSlack
What it does
Pulls company records from both Salesforce and HubSpot, scores candidate duplicate pairs using normalized name and domain matching, and writes each high-confidence pair into a Postgres merge queue. A reviewer gets a Slack card with both records side by side and Approve / Reject buttons — nothing is merged automatically.
When to use it
You run two CRMs (sales on Salesforce, marketing on HubSpot) and the same company exists in both under slightly different names. You want a steady, auditable stream of merge proposals instead of a risky one-time bulk dedupe.
How it works
- 1A nightly schedule fires the run.
- 2Fetch companies updated since the last watermark from Salesforce and HubSpot.
- 3Normalize names and domains, then score every cross-system pair; keep pairs above the match threshold.
- 4A logic step drops pairs already resolved or already queued.
- 5Insert surviving candidates into the Postgres `merge_queue` table with a status of pending.
- 6Post a Slack approval card per pair showing both records and their match score.
Set it up
What you configure once, before turning it on.
- 1Connect SalesforceAccounts, opportunities, cases.
- 2Connect HubSpotCRM, deals, marketing, support.
- 3Connect PostgresAny Postgres URL — query, write, migrate.
- 4Connect SlackChannels, DMs, threads, mentions.
- 5Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
- 6Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
- 7Test, then turn it onRun once against a sample, confirm the output, then enable the trigger.
More CRM workflows
Spin up a Monday handoff board for a departing rep's deals
When a rep is deactivated in Salesforce, this creates a Monday.com board with one item per open opportunity so the manager can manually triage and assign each handoff.
Dormant Account Check-In Call Scheduler
On the anniversary of an account's last touch, books a tentative check-in call on the owner's Google Calendar and emails the contact a scheduling invite.
Daily orphaned-opportunity sweep with manager Slack digest
Each morning this scans Salesforce for open opportunities owned by inactive users and posts a per-manager digest in Slack listing the orphaned deals that need a new owner.
Reassign a departed rep's open pipeline by territory
When a Salesforce user is deactivated, this finds all of their open opportunities and reassigns each one to the active rep who owns its territory, then logs the moves.
Escalate opportunities still owned by an inactive rep after grace period
Checks daily for open opportunities that have stayed with an inactive owner past a grace window and escalates each to the regional director by email and Slack with deal context.
AI-Personalized Dormant Account Win-Back
On a dormancy anniversary, an agent researches the account's history and recent public signals, drafts a genuinely personalized win-back email.
Run it inside a business
This workflow drops into a full company template. Import the org, and this is one of the playbooks its agents run.

Run this workflow in your colony.
14-day trial. No DevOps. No Sales call. Provisioned in under a minute.
