CRM

Block duplicate Attio records when a new Stripe customer signs up

On each new Stripe customer, fuzzy-matches the customer's email domain against existing Attio companies and either links the new customer to the matched record or creates a fresh…

CategoryCRM
Enginesim
Difficultyintermediate
Triggerwebhook
Steps6
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerStripe customer.created webhookStripeStripe
  • LogicNormalize email domain
  • ActionSearch Attio for fuzzy domain matchAttio
  • LogicBranch: strong match, no match, or ambiguous
  • ActionLink or create Attio companyAttio
  • OutputQueue ambiguous ties to PostgresPostgreSQLPostgres

What it does

Acts as a real-time guard at the moment a customer starts paying. When Stripe creates a new customer, it checks whether that company already exists in Attio by fuzzy domain match, then links the billing record to the existing company instead of letting a duplicate appear.

When to use it

Use it if self-serve signups in Stripe routinely create CRM duplicates because the buyer's email domain already exists in Attio under a slightly different spelling or a sales-created record.

How it works

A Stripe `customer.created` webhook fires the flow. The workflow extracts and normalizes the customer's email domain, then searches Attio for companies with a similar normalized domain above a confidence threshold. A branch decides the outcome: a strong single match updates that Attio company with the new Stripe customer ID and billing status; no match creates a new Attio company seeded from Stripe data; multiple weak matches are written to a Postgres review queue so a human resolves the tie. The result is recorded for audit.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect StripeCustomers, subscriptions, payments.
  2. 2
    Connect AttioReal-time CRM with structured data + powerful views.
  3. 3
    Connect PostgresAny Postgres URL — query, write, migrate.
  4. 4
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  5. 5
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  6. 6
    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.