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 SendGrid integration to sync email delivery events, campaigns, and analytics into CORE.
Reference Implementations
Existing Integrations (use as templates)
integrations/gmail/- Similar email-based integrationintegrations/slack/- Messaging and notification patternsintegrations/linear/- For reference
Required Files Structure
integrations/sendgrid/
├── src/
│ ├── index.ts # Main entry, API key spec
│ ├── schedule.ts # Sync logic
│ ├── utils.ts # SendGrid API utilities
│ ├── account-create.ts # API key setup
│ └── create-activity.ts # Activity formatting
├── package.json
├── tsup.config.ts
└── README.md
SendGrid API Integration
Auth Setup
- Use API Key authentication
- API Key sent in
Authorization: Bearer <API_KEY>header - Base URL:
https://api.sendgrid.com/v3/ - All requests must be over HTTPS (HTTP not supported)
Key Endpoints
POST /v3/mail/send- Send emailGET /v3/stats- Retrieve email statisticsGET /v3/messages- Email activity feedGET /v3/campaigns- List marketing campaignsGET /v3/contactdb/recipients- Contact managementGET /v3/suppression/bounces- Bounce managementGET /v3/templates- Email templatesPOST /v3/user/webhooks/event/settings- Configure event webhooks
Events to Track
- Email Delivery - Sent, delivered, bounced, deferred
- Engagement - Opened, clicked, unsubscribed
- Campaigns - Campaign created, sent, completed
- Suppressions - Bounces, spam reports, unsubscribes
- Templates - Template created, updated, deleted
Implementation Tasks
- Set up basic integration structure following
integrations/github/src/index.tspattern - Implement API key authentication flow in
account-create.ts - Create API utilities in
utils.tsfor v3 API - Implement sync logic in
schedule.tsfor email events and statistics - Set up webhook handling for real-time delivery events
- Convert SendGrid events to CORE activity format
- Add error handling and rate limiting
- Create integration documentation
- Add to
integrations/README.md
Technical Notes
- SendGrid is owned by Twilio; API docs are hosted on Twilio's domain
- SDKs available for 7 languages (Node.js, Python, Ruby, Go, Java, C#, PHP)
- Event webhooks provide real-time delivery and engagement notifications
- Postman collections available for interactive API exploration
- API key must be included in the Authorization header as a Bearer token
Resources
- SendGrid v3 API Reference
- Getting Started with SendGrid API
- SendGrid API Requests
- SendGrid API Responses
- SendGrid Python SDK (GitHub)
Labels
enhancement, integration, new-feature