CRM

Real-Time Duplicate Guard on New HubSpot Contact

Triggers the instant a contact is created in HubSpot, checks Attio for an existing match, and either links the two records or flags a conflict to Slack.

CategoryCRM
Enginesim
Difficultyintermediate
Triggerwebhook
Steps7
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerHubSpot contact-created webhookHubSpotHubSpot
  • LogicNormalize email/name/domain
  • ActionQuery Attio for matching personAttio
  • LogicBranch: exact / ambiguous / none
  • ActionLink records and backfill missing fieldsAttio
  • ActionFlag ambiguous matches to SlackSlack
  • OutputLog outcome to Postgres auditPostgreSQLPostgres

What it does

Stops duplicates before they spread. The moment a new contact lands in HubSpot, this checks whether that person already exists in Attio. If a confident match is found, it cross-links the records and copies any missing fields; if the match is ambiguous, it raises a Slack alert rather than guessing.

When to use it

When inbound forms or imports create HubSpot contacts and you want Attio to stay the single clean record of each person in real time, without waiting for a batch reconciliation pass.

How it works

  1. 1A HubSpot webhook fires on contact creation.
  2. 2Normalize the new contact's email, name, and company domain.
  3. 3Query Attio for a matching person record.
  4. 4Branch: exact match, ambiguous match, or no match.
  5. 5On exact match, link the records and backfill missing fields in both directions.
  6. 6On ambiguous match, post the conflict to Slack for a human call.
  7. 7Record the outcome (linked, flagged, or net-new) in the Postgres audit log.

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.