CRM

Fuzzy Duplicate Contact Detector with Human Approval Queue

Scans HubSpot and Attio for likely-duplicate contacts that share no exact email match, scores each candidate pair.

CategoryCRM
Enginesim
Difficultyadvanced
Triggerschedule
Steps7
Setup~25 min

How it runs

The automated pipeline, trigger to output.

  • TriggerScheduled scan starts
  • ActionPull unmatched contacts from both CRMsHubSpotHubSpot
  • LogicScore candidate pairs on name/domain/phone
  • LogicBranch by confidence (auto / review / discard)
  • ActionPost review pairs to Slack approval queueSlack
  • ActionMerge approved pairs in Attio + HubSpotAttio
  • OutputWrite decision + merge to Postgres auditPostgreSQLPostgres

What it does

Catches the duplicates exact-email matching misses: typo'd addresses, personal vs work email, or the same person across both CRMs under different addresses. It scores candidate pairs on name, domain, phone, and company similarity, auto-confirms only the highest-confidence matches, and routes the rest to a Slack approval queue so a human decides before anything is merged.

When to use it

When your contact base has messy, human-entered data and you want dedup safety: never silently merge two real people, but don't make ops eyeball thousands of rows.

How it works

  1. 1A schedule kicks off the scan.
  2. 2Pull contacts from HubSpot and Attio that lack a clean cross-system email match.
  3. 3Generate candidate pairs and score similarity across name, domain, phone, and company.
  4. 4Branch by score: high-confidence auto-merge, mid-confidence to review, low discarded.
  5. 5Post mid-confidence pairs to Slack with Approve/Reject actions.
  6. 6On approval, merge the records in Attio and HubSpot.
  7. 7Append the decision and merge result to the Postgres audit table.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect HubSpotCRM, deals, marketing, support.
  2. 2
    Connect AttioReal-time CRM with structured data + powerful views.
  3. 3
    Connect SlackChannels, DMs, threads, mentions.
  4. 4
    Connect PostgresAny Postgres URL — query, write, migrate.
  5. 5
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  6. 6
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  7. 7
    Test, then turn it onRun once against a sample, confirm the output, then enable the trigger.

Run this workflow in your colony.

14-day trial. No DevOps. No Sales call. Provisioned in under a minute.