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 Canva integration to sync design assets, templates, comments, and brand content into CORE.
Reference Implementations
Existing Integrations (use as templates)
integrations/github/- OAuth-based API integrationintegrations/linear/- Project management integrationintegrations/slack/- For reference
Required Files Structure
integrations/canva/
├── src/
│ ├── index.ts # Main entry, OAuth spec
│ ├── schedule.ts # Sync logic
│ ├── utils.ts # Canva Connect API utilities
│ ├── account-create.ts # OAuth setup
│ └── create-activity.ts # Activity formatting
├── package.json
├── tsup.config.ts
└── README.md
Canva Connect API Integration
OAuth Setup
- Use OAuth 2.0 Authorization Code flow
- Register integration on the Canva Developer Portal (requires MFA-enabled account)
- OpenAPI spec available at:
https://www.canva.dev/sources/connect/api/latest/api.yml - Scopes:
design:read,design:write,asset:read,asset:write,folder:read,folder:write,comment:read,comment:write,brandtemplate:read
Key Endpoints
GET /v1/designs- List user designsPOST /v1/designs- Create a new designGET /v1/designs/{designId}- Get design detailsGET /v1/assets- List assets in asset libraryPOST /v1/assets- Upload assetsGET /v1/folders- List foldersGET /v1/brand-templates- List brand templatesPOST /v1/autofills- Autofill brand templates at scalePOST /v1/exports- Export designsGET /v1/comments- Get design comments
Events to Track
- Designs - Design creation, modification, and exports
- Assets - Asset uploads, updates, and organization
- Comments - Design review comments and feedback
- Brand Templates - Template creation and autofill operations
- Folders - Folder organization and content changes
Implementation Tasks
- Set up basic integration structure following
integrations/github/src/index.tspattern - Implement OAuth 2.0 flow in
account-create.ts - Create API utilities in
utils.tsfor designs, assets, folders, and comments - Implement sync logic in
schedule.tsfor polling design and asset changes - Convert design/asset events to CORE activity format
- Add error handling and rate limiting
- Create integration documentation
- Add to
integrations/README.md
Technical Notes
- Canva Developer Portal requires MFA-enabled account for creating integrations
- OpenAPI spec is publicly available for client SDK generation
- Autofill and Brand Templates APIs are currently in preview mode
- Export API is asynchronous - need to poll for completion
- Starter Kit available at: https://github.com/canva-sdks/canva-connect-api-starter-kit
Resources
- Canva Connect API Documentation
- Canva Developer Portal
- Quickstart Guide
- Canva Connect API Starter Kit
Labels
enhancement, integration, new-feature