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