Skip to content

New Integration: Attio #528

@AggManik

Description

@AggManik

Description

Add Attio CRM integration to sync contacts, companies, deals, notes, and CRM activity into CORE.

Reference Implementations

Existing Integrations (use as templates)

  • integrations/hubspot/ - Similar CRM integration
  • integrations/linear/ - For project management patterns
  • integrations/github/ - For webhook and event patterns

Required Files Structure

integrations/attio/
├── src/
│   ├── index.ts          # Main entry, OAuth spec
│   ├── schedule.ts       # Sync logic
│   ├── utils.ts          # Attio API utilities
│   ├── account-create.ts # OAuth setup
│   └── create-activity.ts # Activity formatting
├── package.json
├── tsup.config.ts
└── README.md

Attio API Integration

Auth Setup

  • Two authentication methods:
    1. Access Tokens - Scoped to a single workspace (simpler setup)
    2. OAuth 2.0 - Required for published integrations
  • Access tokens generated from workspace settings with scoped permissions

Key Endpoints

  • Objects API - CRUD operations on CRM objects (People, Companies, Deals, custom objects)
  • Records API - Manage records within objects
  • Lists API - Manage CRM lists and list entries
  • Notes API - Create and manage notes on records
  • Tasks API - Manage tasks associated with records
  • Webhooks API - Subscribe to real-time CRM events
  • Users API - Workspace user information
  • Attributes API - Manage object attributes/fields

SDK Support

  • Official SDKs for Node.js, TypeScript, PHP, .NET, Python, and Java

Events to Track

  1. Contacts/People - Contact created, updated, merged
  2. Companies - Company created, updated, enriched
  3. Deals - Deal created, stage changed, won, lost
  4. Notes - Note created, updated on records
  5. Tasks - Task created, completed, assigned
  6. Lists - List entries added, removed, updated
  7. Custom Objects - Custom object records created, updated

Implementation Tasks

  • Set up basic integration structure following integrations/github/src/index.ts pattern
  • Implement OAuth 2.0 flow in account-create.ts (or access token for simpler setup)
  • Create API utilities in utils.ts for Attio REST API
  • Implement sync logic in schedule.ts for contacts, companies, deals, and notes
  • Set up webhook handling for real-time CRM event notifications
  • Convert Attio events to CORE activity format
  • Add error handling and rate limiting
  • Create integration documentation
  • Add to integrations/README.md

Technical Notes

  • Attio uses a flexible data model with custom objects and attributes
  • Two auth options: access tokens (workspace-scoped) and OAuth (for published integrations)
  • Official SDKs available in 6 languages -- consider using the TypeScript SDK
  • Attio Developer Platform supports embedding TypeScript React apps within the Attio UI
  • Webhook support for real-time event notifications
  • Custom objects make the data model flexible but require dynamic handling

Resources

Labels

enhancement, integration, new-feature

Metadata

Metadata

Assignees

Type

No type

Projects

Status

Review

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions