The SendGrid is a communication platform for transactional and marketing emails.
User Expectations
- User will retrieve API Keys (Restricted Access) from their SendGrid account for Event Notification, Marketing Campaigns, Suppressions and Tracking.
- User will enable Active Tracking in their account - Click, Open and Subscription tracking is enabled.
- Uses SendGrid v3 REST API and Webhooks to sync your data.
- Retrieves
- Marketing Campaigns
- Automation
- Single Sends
- Senders
- Contacts
- Segments
- Schedule *
- Stats
- Global Stats
- Category Stats
- Advanced Stats
- Suppressions
- Bounces
- Global Unsubscribes
- Group Unsubscribes
- Spam Reports **
- Blocks **
* is present as state in the list of Automation/Single Send, but could be parsed as separate list of both entities to represent the current schedule and be a dynamic entity
** currently no way to test or get info about those endpoints as for that, test account should have been reported for spam and have some blocks - Marketing Campaigns
User Configurations
Section | User Configuration Label | Label Description | Options | Default | Variable | User Widget |
---|---|---|---|---|---|---|
Standard | API Key | The SendGrid API Key taken from the SendGrid account of choice | sendgrid-api-key | Text Box | ||
Username | Login name for Sendgrid | username | Text Box | |||
Password | Login password for the username specified above | password | Text Box | |||
Data Source | One of the above sources picked from list | data-source | List Box | |||
Data Source Fields | List of fields to be retrieved | data-source-fields | Text Box | |||
Start Date | (required by some SG API Endpoints) The date in format YYYY-MM-DD, starting from which the data is requested. | not set | start-date | TODO | ||
End Date | (required by some SG API Endpoints) The date in format YYYY-MM-DD, the end date for the requested data | not set | end-date | TODO | ||
Error Handling | On Record Error | How to handle error in record processing |
| Skip error | on-error | Radio Button (layout: block) |
Plugin Type
- Batch Source
- Batch Sink
- Real-time Source
- Real-time Sink
- Action
- Post-Run Action
- Aggregate
- Join
- Spark Model
- Spark Compute
Design Tips and references
SendGrid v3 API:
- https://sendgrid.api-docs.io/v3.0/
- https://sendgrid.com/docs/API_Reference/api_v3.html
SendGrid supports API v2 and v3 legacy and and SendGrid v3 API . As v2 and v3 legacy are outdated, we going to support and use the latest SendGrid v3 API.
Data source reference
Data sources description (WIP)
Field name | Type | Description |
---|---|---|
Automation | ||
id | ||
name | ||
status | ||
type | ||
message_count | ||
created_at | ||
updated_at | ||
live_at | ||
SingleSends | ||
id | ||
name | ||
status | ||
created_at | ||
updated_at | ||
is_abtest | ||
Senders | ||
id | ||
nickname | ||
address | ||
address_2 | ||
city | ||
country | ||
state | ||
zip | ||
locked | ||
created_at | ||
updated_at | ||
from_email | ||
from_name | ||
verified_status | ||
verified_reason | ||
reply_to_name | ||
reply_to_email | ||
Contacts | ||
id | ||
first_name | ||
last_name | ||
list_ids | ||
created_at | ||
updated_at | ||
Segments | ||
GlobalStats | ||
CategoryStats | ||
name | ||
type | ||
date | ||
metrics_blocks | ||
metrics_bounce_drops | ||
metrics_bounces | ||
metrics_clicks | ||
metrics_deferred | ||
metrics_delivered | ||
metrics_invalid_emails | ||
metrics_opens | ||
metrics_processed | ||
metrics_requests | ||
metrics_spam_report_drops | ||
metrics_spam_reports | ||
metrics_unique_clicks | ||
metrics_unique_opens | ||
metrics_unsubscribe_drops | ||
metrics_unsubscribes | ||
AdvancedStats | ||
name | ||
type | ||
date | ||
metrics_clicks | ||
metrics_opens | ||
metrics_unique_clicks | ||
metrics_unique_opens | ||
Bounces | ||
created | ||
reason | ||
status | ||
GlobalUnsubscribes | ||
GroupUnsubscribes | ||
id | ||
name | ||
description | ||
is_default | ||
last_email_send_at | ||
unsubscribes | ||
SpamReports (TODO) | ||
Blocks (TODO) | ||
Schedule (TODO) | ||
Authorization
Plugin supporting Basic and API Key authorization, with using API Key by default when provided.
Approach
TODO
UI Impact or Changes
TODO
Test Case(s)
TODO
Sample Pipeline
TODO