CRM
Reconcile duplicate Attio companies against Stripe by domain
Scans Attio companies on a schedule, fuzzy-matches their domains to one another and to Stripe customers.
How it runs
The automated pipeline, trigger to output.
- TriggerNightly schedule fires
- ActionFetch all companies from AttioAttio
- LogicNormalize domains and fuzzy-group duplicates
- ActionMatch groups to Stripe customers by domainStripe
- LogicPick canonical keeper or flag ambiguous
- ActionWrite merge plan to Postgres tablePostgres
- OutputPost merge plan summary to SlackSlack
What it does
Finds Attio company records that are almost certainly the same business (e.g. "acme.com" and "www.acme.io", or two records for the same parent domain) and cross-references them against Stripe customers so billing and CRM agree on one canonical company.
When to use it
Run this when your Attio workspace has accumulated duplicates from form fills, imports, and sales reps creating records by hand, and you want a safe, reviewable cleanup rather than a blind auto-merge.
How it works
On a nightly schedule the workflow pulls all Attio companies and normalizes each domain (strips www, lowercases, collapses common TLD variants). A fuzzy-match step groups records whose normalized domains exceed a similarity threshold. Each candidate group is checked against Stripe customers by email domain to pick the record tied to active billing as the canonical keeper. Groups with a confident single keeper are written to a Postgres reconciliation table as an approved merge plan; ambiguous groups are flagged for human review. A summary of proposed merges and conflicts is posted to Slack.
Set it up
What you configure once, before turning it on.
- 1Connect AttioReal-time CRM with structured data + powerful views.
- 2Connect StripeCustomers, subscriptions, payments.
- 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
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.
Weekly Dormant-Anniversary Cohort Digest
Every week, groups dormant Attio accounts by which last-touch anniversary they hit that week, builds a prioritized digest.
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.
Backfill Intercom conversation topics onto stale HubSpot contacts
Finds HubSpot contacts with no recent Intercom topic, pulls their conversation history from Intercom, classifies the dominant topic with OpenAI.
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.
Tag closed Intercom conversations onto Salesforce contacts in real time
On each Intercom conversation close, classifies the topic with OpenAI and appends it to the matching Salesforce contact's activity timeline so the topic never goes stale…
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.
