RedPlanetHQ / RedPlanetHQ/core

New Integration: Trello

Open
#489 0 comments 0 reactions 1 assignee View on GitHub

@harshithmullapudi is already working on this.

Since Mar 9, 2026.

  • #624 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 Trello integration to sync boards, cards, lists, and activity into CORE.

Reference Implementations

Existing Integrations (use as templates)
  • integrations/linear/ - Similar project management system
  • integrations/github/ - OAuth-based integration
  • integrations/slack/ - For reference
Required Files Structure
integrations/trello/
├── src/
│   ├── index.ts          # Main entry, OAuth spec
│   ├── schedule.ts       # Sync logic
│   ├── utils.ts          # Trello API utilities
│   ├── account-create.ts # OAuth setup
│   └── create-activity.ts # Activity formatting
├── package.json
├── tsup.config.ts
└── README.md

Trello API Integration

OAuth Setup
  • Use OAuth 1.0a (Trello uses legacy OAuth 1.0a) or API Key + Token
  • API Version: v1
  • Base URL: https://api.trello.com/1/
  • Authorization URL: https://trello.com/1/authorize
  • Request Token URL: https://trello.com/1/OAuthGetRequestToken
  • Access Token URL: https://trello.com/1/OAuthGetAccessToken
  • Required scopes:
    • read - Read access to boards, cards, lists, members
    • write - Write access to boards, cards, lists
    • account - Read access to member account information
  • Note: API keys are obtained by creating a Trello Power-Up
Key Endpoints
  • GET /1/members/me - Get current member info
  • GET /1/members/me/boards - Get member's boards
  • GET /1/boards/{id} - Get board details
  • GET /1/boards/{id}/lists - Get lists on a board
  • GET /1/boards/{id}/cards - Get cards on a board
  • GET /1/boards/{id}/actions - Get board activity/actions
  • GET /1/boards/{id}/members - Get board members
  • GET /1/cards/{id} - Get card details
  • GET /1/cards/{id}/actions - Get card activity
  • GET /1/lists/{id}/cards - Get cards in a list
  • GET /1/boards/{id}/checklists - Get board checklists
  • GET /1/boards/{id}/labels - Get board labels

Events to Track

  1. Cards

    • Card created, updated, moved between lists
    • Card archived/unarchived
    • Comments added to cards
    • Checklist items completed/uncompleted
    • Due date changes
    • Label additions/removals
  2. Boards & Lists

    • Board created/updated/closed
    • List created/moved/archived
    • Member added/removed from board
  3. Assignments & Activity

    • Member assigned/unassigned from cards
    • Attachment uploads
    • Custom field updates

Implementation Tasks

  • Set up basic integration structure following integrations/linear/src/index.ts pattern
  • Implement OAuth 1.0a or API Key + Token flow in account-create.ts
  • Create Trello API utilities in utils.ts
  • Implement sync logic in schedule.ts using board actions endpoint
  • Convert Trello actions/events to CORE activity format
  • Add error handling and rate limiting
  • Create integration documentation
  • Add to integrations/README.md

Technical Notes

  • Trello uses OAuth 1.0a (not OAuth 2.0). Consider using a library like oauth-1.0a for Node.js.
  • Rate limit: 100 requests per 10-second window per API key, and 300 requests per 10 seconds per token.
  • Board actions endpoint supports since parameter for incremental sync.
  • Trello webhooks require a callback URL and are registered per model (board/card/etc.).
  • The API is owned by Atlassian; API keys are tied to Power-Up creation.
  • Pagination uses limit and before/since parameters on action endpoints.

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.