enhancementgood first issueintegrationnew-featurenew-integration
倉庫指標
- 星標
- (1,930 顆星)
- PR 合併指標
- (PR 指標待抓取)
描述
Description
Add Monday.com integration to sync boards, items, updates, and work activity into CORE.
Reference Implementations
Existing Integrations (use as templates)
integrations/linear/- Similar project management integrationintegrations/todoist/- Task management integrationintegrations/github/- For webhook and event patterns
Required Files Structure
integrations/monday/
├── src/
│ ├── index.ts # Main entry, OAuth spec
│ ├── schedule.ts # Sync logic
│ ├── utils.ts # Monday.com API utilities
│ ├── account-create.ts # OAuth setup
│ └── create-activity.ts # Activity formatting
├── package.json
├── tsup.config.ts
└── README.md
Monday.com API Integration
OAuth Setup
- Use OAuth 2.0 for authorization
- Access token sent in
Authorizationheader - API endpoint:
https://api.monday.com/v2 - API is built on GraphQL (single endpoint for all operations)
Key Queries/Mutations (GraphQL)
boards- List and query boardsitems- List and manage items (tasks)updates- Get updates/comments on itemsusers- List workspace usersgroups- Board groups/sectionscolumns- Board column definitionsworkspaces- List workspacescreate_item- Create new itemschange_column_value- Update item column valuescreate_update- Add comments/updates to items
API Architecture
- GraphQL-based (not REST) - single endpoint for all operations
- Provides flexibility for querying exactly the data needed
- API playground available for testing queries
Events to Track
- Items - Item created, updated, status changed, moved, deleted
- Boards - Board created, updated, archived
- Updates - Comments/updates posted on items
- Groups - Groups created, items moved between groups
- Status Changes - Column value changes (especially status columns)
- Assignments - People column changes (task assignments)
Implementation Tasks
- Set up basic integration structure following
integrations/github/src/index.tspattern - Implement OAuth 2.0 flow in
account-create.ts - Create GraphQL query utilities in
utils.ts(note: Monday uses GraphQL, not REST) - Implement sync logic in
schedule.tsfor boards, items, and updates - Set up webhook handling for real-time item and board updates
- Convert Monday.com events to CORE activity format
- Add error handling and rate limiting (complexity-based limits)
- Create integration documentation
- Add to
integrations/README.md
Technical Notes
- Monday.com uses GraphQL, not REST -- all requests go to a single endpoint
https://api.monday.com/v2 - Rate limiting is complexity-based rather than request-count based
- The API playground at
monday.com/developers/v2/try-it-yourselfis useful for testing - Column types are flexible and custom, requiring dynamic handling
- Webhooks are available for real-time notifications on board and item changes
Resources
- Monday.com API Reference
- Getting Started Guide
- Authentication Guide
- API Playground
- Monday.com Apps Framework
Labels
enhancement, integration, new-feature