CRM
Enrichment-Assisted Tiebreak for Ambiguous Duplicates
Takes ambiguous duplicate pairs from the merge queue, enriches each company with a web lookup to confirm whether they are the same legal entity.
How it runs
The automated pipeline, trigger to output.
- TriggerSchedule pulls ambiguous queue rowsPostgres
- ActionEnrich each company via Exa web lookupExa
- ActionLLM judges same-entity vs distinctOpenAI
- LogicRoute verdict: approve, reject, or escalate
- ActionUpdate queue row with verdict and rationalePostgres
- OutputEscalate uncertain pairs to Slack threadSlack
What it does
Handles the gray-area pairs that simple name or domain matching cannot settle. For each ambiguous pair in the Postgres queue, it runs a web enrichment lookup to gather canonical company identity signals (legal name, headquarters, parent company), uses those to judge same-entity versus distinct, and either confirms or rejects the pair automatically. Pairs it still cannot call confidently are escalated to a Slack thread with the enrichment evidence attached.
When to use it
Your merge queue has a long tail of "maybe" pairs eating reviewer time. You want machine enrichment to clear the obvious ones and reserve human attention for the genuinely hard calls.
How it works
- 1A schedule pulls ambiguous rows from the Postgres queue.
- 2For each company, run an Exa web lookup to gather identity signals.
- 3An LLM reasoning step judges same-entity, distinct, or still-uncertain with a rationale.
- 4A logic branch routes the verdict: same-entity flips the row to approved, distinct flips it to rejected.
- 5Still-uncertain rows post to a Slack thread with the evidence for human escalation.
- 6Update the queue row with the verdict and rationale either way.
Set it up
What you configure once, before turning it on.
- 1Connect PostgresAny Postgres URL — query, write, migrate.
- 2Connect ExaNeural search across the web.
- 3Connect OpenAIModels, embeddings, files.
- 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.
