SendGrid
Renta exports three SendGrid objects to your data warehouse: marketing contacts, contact lists, and segments.
A contact row holds the reserved fields of the profile together with every custom field defined in your SendGrid account. Lists and segments arrive as metadata rows: identifier, name, and the number of contacts each one holds.
Authentication
Renta connects to SendGrid with an API key that has read access to Marketing. Renta reads contact lists, segments, and contact exports with it.
Create the key in SendGrid under Settings > API Keys > Create API Key. Pick Restricted Access and give the Marketing section read access, or use a Full Access key. SendGrid shows the key once, right after creation, so copy it before closing the page.
When you save the connection, Renta requests the contact lists of the account, so a mistyped key or a key without Marketing access returns an error immediately instead of failing on the first pipeline run.
Connect SendGrid source
Follow these steps to add SendGrid as a source in Renta using an API key.
- Navigate to the Connections > Catalog section in the left sidebar.
- Open the Email marketing category and click the SendGrid card marked Source. The SendGrid card marked Destination belongs to Reverse ETL and writes data back into SendGrid instead of loading it into a warehouse.

- Source name.
A name for this data source. It is used exclusively in the Renta interface. - API key.
The SendGrid API key with read access to Marketing.

Fill in both fields and click Save. Renta checks the key against SendGrid before creating the connection.

The new source appears in the Sources list with the Active status. You can now use it in pipelines.

Create a pipeline
Once the source is connected, create a pipeline to sync your SendGrid data into your destination.
Create a SendGrid pipeline
Link your SendGrid source to a destination and configure the pipeline.
In the left sidebar, click New pipeline. On the Source step, select SendGrid under Already connected and click Next step.

Choose the SendGrid connection you created earlier and click Next step. If your account has several API keys in use, the creation date on the card helps you pick the right connection.

On the Destination step, select your destination (for example, Google BigQuery) and click Next step.

Choose the destination connection you want to load data into and click Next step. The card shows the dataset and project the data will land in.

Pipeline configuration
On the final step, choose the report, pick its fields, and set the schedule.
Report type
In the Report type dropdown, choose which SendGrid object the pipeline exports. One pipeline loads one report type, so create a separate pipeline for each object you need.

| Report type | Description |
|---|---|
| Contacts | The contacts of the selected list with the reserved fields of their profiles and the custom fields of your account. |
| Lists metadata | The contact lists of the account: identifier, name, and the number of contacts in the list. |
| Segments metadata | The segments of the account: identifier, name, parent list, number of contacts, query version, the dates the segment was created and updated, and the times its sample was refreshed and is due to refresh next. |
Contact list
The Contacts report loads one list at a time. In the Contact list dropdown, pick All lists or a single list of the account.
Renta orders a separate contact export from SendGrid for every list. A contact that belongs to several lists therefore arrives as several rows, one per list, and the List ID parameter tells them apart. A contact that belongs to no list never reaches the table.
With All lists the run covers every list of the account in turn, so the more lists there are, the longer the run takes.
You cannot filter contacts by segment here. The Segments metadata report loads segment definitions, not the contacts inside them.
Parameters
Check the SendGrid fields to load into the destination table.

Under each field the picker shows the name of its future column. Select All checks the whole list at once, and the Selected Parameters list below the picker removes what you no longer need.
For the Contacts report Renta reads the field definitions from your account when you open the picker, so the list repeats the reserved and custom fields you have in SendGrid, plus the List ID of the list a row came from. Columns keep the type SendGrid assigns to the field, and alternate_emails loads as a list of values inside one column.
The Lists metadata and Segments metadata reports have a fixed field set that does not depend on the account.
Table name
Name the pipeline and the destination table.

- Integration name.
The name of the pipeline. It is used exclusively in the Renta interface. - Table name.
The destination table name. You can keep the auto-generated name or enter your own.
Schedule
Choose how often the pipeline runs.

| Schedule type | Description |
|---|---|
| Manual | The pipeline runs only when triggered manually through the interface or via API. |
| Daily | The pipeline runs once a day at the specified update time. |
| Interval | The pipeline runs at specified time intervals. |
| Cron Expression | The pipeline runs on a schedule defined by a cron expression. |
For Daily schedules, set the Update time, the exact time each run starts, then click Create pipeline.

Renta also supports API triggers and integration with external orchestrators such as Apache Airflow, Dagster, and Prefect. See the full scheduling documentation for details.
The new pipeline appears in the Pipelines section under the ETL tab, where you can track its runs, progress, and the destination table name.

Sync strategy
Renta synchronizes every SendGrid report type the same way.
| Strategy | Supported report types | Description |
|---|---|---|
| Full reload | Contacts, Lists metadata, Segments metadata | Renta reads the object in full on every run and replaces the contents of the destination table. The table matches SendGrid at the time of the run, so a record you delete in SendGrid, or a contact you remove from a list, disappears from the table on the next run. |
Because every run reads the object in full, the pipeline has no date range or overwrite period settings, and destination tables stay unpartitioned.
Ready to get started?
Build your data pipeline today or get a personalized demo. Start free!
Need help?
Get expert support to ensure your project succeeds. We're here to help!
Feature requests?
Help shape our product! Share your ideas for new features and integrations.