Attio is a CRM built around a flexible data model and a developer-friendly API. Replicated’s revenue team moved to it in early 2026 after replacing a Salesforce instance that had been built for a bigger team than they ever became. Once the migration was done, the CRM was a clean slate. Rather than recreate what Salesforce had, the goal was to build workflows the team never had — ones that fit how they actually worked and took advantage of what Attio could do. The agents helped design and build them.

The Attio App SDK hosts custom TypeScript code directly on Attio’s infrastructure — no separate server, no middleware. That made it practical to move workflow logic out of click-built automations and into version-controlled code. Two workflows handle revenue capture: one creates a deal automatically when a customer purchases Compatibility Matrix credits, so the revenue hits the pipeline without a rep remembering to log it; another syncs forecast categories when a deal moves to a closed stage, fixing a quiet data quality problem that was making forecast reporting unreliable.

The contracts workflow was new entirely. Contract tracking had lived in a spreadsheet. The new version is a custom Contracts object in Attio with an eight-status pipeline, a setup action to scaffold a new contract directly from the app, and Slack notifications to the finance channel when status changes. The spreadsheet didn’t do any of that — it just held the data.

That’s the pattern the whole project represents. The migration was an opportunity to stop carrying forward the accumulated complexity of the old system and build something that fit the team instead.

  • typescript
  • attio
  • crm
  • workflows
  • revenue-ops