RedPlanetHQ / RedPlanetHQ/core

New Integration: Attio

Open
#528 1 comment 0 reactions 1 assignee View on GitHub

@AggManik is already working on this.

Since Mar 11, 2026.

  • #659 by @AggManik — open
enhancement good first issue integration new-feature new-integration
Dominant language
TypeScript
Stars
2k
Forks
194
Avg merge
12m
Merged PRs (30d)
2

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 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

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.