RedPlanetHQ / RedPlanetHQ/core

New Integration: SendGrid

Open
#475 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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 SendGrid integration to sync email delivery events, campaigns, and analytics into CORE.

Reference Implementations

Existing Integrations (use as templates)
  • integrations/gmail/ - Similar email-based integration
  • integrations/slack/ - Messaging and notification patterns
  • integrations/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 email
  • GET /v3/stats - Retrieve email statistics
  • GET /v3/messages - Email activity feed
  • GET /v3/campaigns - List marketing campaigns
  • GET /v3/contactdb/recipients - Contact management
  • GET /v3/suppression/bounces - Bounce management
  • GET /v3/templates - Email templates
  • POST /v3/user/webhooks/event/settings - Configure event webhooks

Events to Track

  1. Email Delivery - Sent, delivered, bounced, deferred
  2. Engagement - Opened, clicked, unsubscribed
  3. Campaigns - Campaign created, sent, completed
  4. Suppressions - Bounces, spam reports, unsubscribes
  5. Templates - Template created, updated, deleted

Implementation Tasks

  • Set up basic integration structure following integrations/github/src/index.ts pattern
  • Implement API key authentication flow in account-create.ts
  • Create API utilities in utils.ts for v3 API
  • Implement sync logic in schedule.ts for 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

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.

Research direction

Start by comparing integrations/gmail/, integrations/slack/, integrations/linear/, and integrations/github/src/index.ts. Trace the existing account setup, scheduling, activity formatting, and webhook patterns before defining the SendGrid integration files listed in the issue. Done means the API-key flow, event and statistics synchronization, webhooks, error handling, documentation, and integrations/README.md entry are complete.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
api, backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.