enhancementgood first issueintegrationnew-featurenew-integration
Repository metrics
- Stars
- (1,930 stars)
- PR merge metrics
- (Avg merge 3h 2m) (10 merged PRs in 30d)
Description
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 integrationintegrations/linear/- For project management patternsintegrations/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:
- Access Tokens - Scoped to a single workspace (simpler setup)
- 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
- Contacts/People - Contact created, updated, merged
- Companies - Company created, updated, enriched
- Deals - Deal created, stage changed, won, lost
- Notes - Note created, updated on records
- Tasks - Task created, completed, assigned
- Lists - List entries added, removed, updated
- Custom Objects - Custom object records created, updated
Implementation Tasks
- Set up basic integration structure following
integrations/github/src/index.tspattern - Implement OAuth 2.0 flow in
account-create.ts(or access token for simpler setup) - Create API utilities in
utils.tsfor Attio REST API - Implement sync logic in
schedule.tsfor 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