Get started with a free trial today
Already have an account? Sign in
Stitch’s Pardot integration replicates data using thePardot API. Refer to theSchema section for a list of objects available for replication.
A high-level look at Stitch's Pardot (v1) integration, including release status, useful links, and the features supported in Stitch.
| STITCH | |||
| Release status | Released on February 12, 2020 | Supported by | |
| Stitch plan | Standard | API availability | Available |
| Singer GitHub repository | |||
| REPLICATION SETTINGS | |||
| Anchor Scheduling | Supported | Advanced Scheduling | Supported |
| Table-level reset | Unsupported | Configurable Replication Methods | Unsupported |
| DATA SELECTION | |||
| Table selection | Supported | Column selection | Supported |
| Select all | Supported | ||
| TRANSPARENCY | |||
| Extraction Logs | Supported | Loading Reports | Supported |
To set up Pardot in Stitch, you need:
A user with a preferred timezone of UTC. This is required to ensure you don’t encounter Extraction errors during Daylight Savings Time, as some Replication Key fields used by Stitch are reported in Pardot using the user’s preferred timezone. By using UTC, this ensures that time data is accurately reported during extraction. Otherwise, you might encounterExtraction errors during Daylight Savings Time.
On the Stitch Dashboard page, click theAdd Integration button.
Click thePardot icon.
Enter a name for the integration. This is the name that will display on the Stitch Dashboard for the integration; it’ll also be used to create the schema in your destination.
For example, the name “Stitch Pardot” would create a schema calledstitch_pardot in the destination.Note: Schema names cannot be changed after you save the integration.
The Sync Historical Data setting defines the starting date for your Pardot integration. This means that dataequal to or newer than this date will be replicated to your data warehouse.
Change this setting if you want to replicate data beyond Pardot’s default setting of1 year. For a detailed look at historical replication jobs, check out theSyncing Historical SaaS Data guide.
In theReplication Frequency section, you’ll create the integration’sreplication schedule. An integration’s replication schedule determines how often Stitch runs a replication job, and the time that job begins.
Pardot integrations support the following replication scheduling methods:
Advanced Scheduling using Cron (Advanced or Premium plans only)
To keep your row usage low, consider setting the integration to replicate less frequently. See theUnderstanding and Reducing Your Row Usage guide for tips on reducing your usage.
The last step is to select the tables and columns you want to replicate.Learn about the available tables for this integration.
Note: If a replication job is currently in progress, new selections won’t be used until the next job starts.
For Pardot integrations, you can select:
Individual tables and columns
All tables and columns
Click the tabs to view instructions for each selection method.
To track a table, click thecheckbox next to the table’s name. A blue checkmark means the table is set to replicate.
To track a column, click thecheckbox next to the column’s name. A blue checkmark means the column is set to replicate.
Click theTables to Replicate tab.
In the menu that displays, clickTrack all Tables and Fields:

After you finish setting up Pardot, itsSync Status may show asPending on either the Stitch Dashboard or in the Integration Details page.
For a new integration, aPending status indicates that Stitch is in the process of scheduling the initial replication job for the integration.This may take some time to complete.
Initial replication jobs with Anchor Scheduling
If using Anchor Scheduling, an initial replication job may not kick off immediately. This depends on the selected Replication Frequency and Anchor Time. Refer to theAnchor Scheduling documentation for more information.
The first seven days of replication, beginning when data is first replicated, are free. Rows replicated from the new integration during this time won’t count towards your quota. Stitch offers this as a way of testing new integrations, measuring usage, and ensuring historical data volumes don’t quickly consume your quota.
Schemas and versioning
Schemas and naming conventions can change from version to version, so we recommend verifying your integration’s version before continuing.
The schema and info displayed below is forversion 1 of this integration.
This is the latest version of the Pardot integration.
Table and column names in your destination
Depending on your destination, table and column names may not appear as they are outlined below.
For example: Object names are lowercased in Redshift (CusTomERs >customers), while case is maintained in PostgreSQL destinations (CusTomERs >CusTomERs). Refer to theLoading Guide for your destination for more info.
Thecampaigns table contains info about the campaigns in your Pardot account.
Key-based Incremental | |
Primary Key | id |
Replication Key | id |
| Useful links |
| Join campaigns with | on |
|---|---|
| opportunities | campaigns.id = opportunities.campaign_id |
| prospects | campaigns.id = prospects.campaign_id |
cost INTEGER |
id INTEGER |
name STRING |
Theemail_clicks table contains info about email click events.
Key-based Incremental | |
Primary Key | id |
Replication Key | created_at |
| Useful links |
| Join email_clicks with | on |
|---|---|
| visitor_activities | email_clicks.email_template_id = visitor_activities.email_template_id email_clicks.list_email_id = visitor_activities.list_email_id email_clicks.prospect_id = visitor_activities.prospect_id |
| list_memberships | email_clicks.prospect_id = list_memberships.prospect_id |
| prospects | email_clicks.prospect_id = prospects.id |
| visits | email_clicks.prospect_id = visits.prospect_id |
created_at DATE-TIME |
drip_program_action_id INTEGER |
email_template_id INTEGER |
id INTEGER |
list_email_id INTEGER |
prospect_id INTEGER |
tracker_redirect_id INTEGER |
url STRING |
Thelist_memberships table contains info about list memberships.
Note: To replicate this table, thelists table must also be set to replicate.
Key-based Incremental | |
Primary Key | id |
Replication Keys | id list_id updated_at |
| Useful links |
| Join list_memberships with | on |
|---|---|
| lists | list_memberships.list_id = lists.id |
| email_clicks | list_memberships.prospect_id = email_clicks.prospect_id |
| prospects | list_memberships.prospect_id = prospects.id |
| visitor_activities | list_memberships.prospect_id = visitor_activities.prospect_id |
| visits | list_memberships.prospect_id = visits.prospect_id |
created_at DATE-TIME |
id INTEGER |
list_id INTEGER |
opted_out INTEGER |
prospect_id INTEGER |
updated_at DATE-TIME |
Thelists table contains info about the lists in your Pardot account.
Key-based Incremental | |
Primary Key | id |
Replication Key | updated_at |
| Useful links |
| Join lists with | on |
|---|---|
| list_memberships | lists.id = list_memberships.list_id |
created_at DATE-TIME |
description STRING |
id INTEGER |
is_crm_visible BOOLEAN |
is_dynamic BOOLEAN |
is_public BOOLEAN |
name STRING |
title STRING |
updated_at DATE-TIME |
Theopportunities table contains info about the opportunities in your Pardot account.
Key-based Incremental | |
Primary Key | id |
Replication Keys | id updated_at |
| Useful links |
campaign_id INTEGER |
closed_at DATE-TIME |
created_at DATE-TIME |
id INTEGER |
name STRING |
probability INTEGER |
stage STRING |
status STRING |
type STRING |
updated_at DATE-TIME |
value NUMBER |
Theprospect_accounts table contains info about prospect accounts.
Key-based Incremental | |
Primary Key | id |
Replication Key | updated_at |
| Useful links |
| Join prospect_accounts with | on |
|---|---|
| users | prospect_accounts.assigned_to.user.id = users.id |
assigned_to OBJECT
| ||||||||||
created_at DATE-TIME | ||||||||||
id INTEGER | ||||||||||
name STRING | ||||||||||
updated_at DATE-TIME |
Theprospects table contains info about the prospects in your Pardot account.
Key-based Incremental | |
Primary Key | id |
Replication Key | updated_at |
| Useful links |
| Join prospects with | on |
|---|---|
| campaigns | prospects.campaign_id = campaigns.id |
| opportunities | prospects.campaign_id = opportunities.campaign_id |
| email_clicks | prospects.id = email_clicks.prospect_id |
| list_memberships | prospects.id = list_memberships.prospect_id |
| visitor_activities | prospects.id = visitor_activities.prospect_id |
| visits | prospects.id = visits.prospect_id |
address_one STRING |
address_two STRING |
annual_revenue STRING |
campaign_id INTEGER |
city STRING |
comments STRING |
company STRING |
country STRING |
created_at DATE-TIME |
crm_account_fid STRING |
crm_contact_fid STRING |
crm_last_sync DATE-TIME |
crm_lead_fid STRING |
crm_owner_fid STRING |
crm_url STRING |
department STRING |
STRING |
employees STRING |
fax STRING |
first_name STRING |
grade STRING |
id INTEGER |
industry STRING |
is_do_not_call BOOLEAN |
is_do_not_email BOOLEAN |
is_reviewed BOOLEAN |
is_starred BOOLEAN |
job_title STRING |
last_activity_at DATE-TIME |
last_name STRING |
notes STRING |
opted_out BOOLEAN |
password STRING |
phone STRING |
prospect_account_id INTEGER |
recent_interaction STRING |
salutation STRING |
score INTEGER |
source STRING |
state STRING |
territory STRING |
updated_at DATE-TIME |
website STRING |
years_in_business STRING |
zip STRING |
Theusers table contains info about the users in your Pardot account.
Key-based Incremental | |
Primary Key | id |
Replication Keys | id updated_at |
| Useful links |
| Join users with | on |
|---|---|
| prospect_accounts | users.id = prospect_accounts.assigned_to.user.id |
created_at DATE-TIME |
STRING |
first_name STRING |
id INTEGER |
job_title STRING |
last_name STRING |
role STRING |
updated_at DATE-TIME |
Thevisitor_activities table contains info about visitor activities.
Key-based Incremental | |
Primary Key | id |
Replication Key | id |
| Useful links |
| Join visitor_activities with | on |
|---|---|
| email_clicks | visitor_activities.email_template_id = email_clicks.email_template_id visitor_activities.list_email_id = email_clicks.list_email_id visitor_activities.prospect_id = email_clicks.prospect_id |
| list_memberships | visitor_activities.prospect_id = list_memberships.prospect_id |
| prospects | visitor_activities.prospect_id = prospects.id |
| visits | visitor_activities.prospect_id = visits.prospect_id visitor_activities.visitor_id = visits.visitor_id |
| visitors | visitor_activities.visitor_id = visitors.id |
campaign OBJECT |
campaign_id INTEGER |
created_at DATE-TIME |
details STRING |
email_id INTEGER |
email_template_id INTEGER |
file_id INTEGER |
form_handler_id INTEGER |
form_id INTEGER |
id INTEGER |
landing_page_id INTEGER |
list_email_id INTEGER |
multivariate_test_variation_id INTEGER |
paid_search_id_id INTEGER |
prospect_id INTEGER |
site_search_query_id INTEGER |
type INTEGER |
type_name STRING |
updated_at DATE-TIME |
visitor_id INTEGER |
visitor_page_view_id INTEGER |
Thevisitors table contains info about visitors.
Key-based Incremental | |
Primary Key | id |
Replication Key | updated_at |
| Useful links |
| Join visitors with | on |
|---|---|
| visitor_activities | visitors.id = visitor_activities.visitor_id |
| visits | visitors.id = visits.visitor_id |
campaign_parameter STRING |
content_parameter STRING |
created_at DATE-TIME |
hostname STRING |
id INTEGER |
ip_address STRING |
medium_parameter STRING |
page_view_count INTEGER |
source_parameter STRING |
term_parameter STRING |
updated_at DATE-TIME |
Thevisits table contains info about visits.
Note: To replicate this table, you must also set thevisitors table to replicate.
Key-based Incremental | |
Primary Key | id |
Replication Keys | id updated_at |
| Useful links |
| Join visits with | on |
|---|---|
| email_clicks | visits.prospect_id = email_clicks.prospect_id |
| list_memberships | visits.prospect_id = list_memberships.prospect_id |
| prospects | visits.prospect_id = prospects.id |
| visitor_activities | visits.prospect_id = visitor_activities.prospect_id visits.visitor_id = visitor_activities.visitor_id |
| visitors | visits.visitor_id = visitors.id |
campaign_parameter STRING | |||||
content_parameter STRING | |||||
created_at DATE-TIME | |||||
duration_in_seconds INTEGER | |||||
first_visitor_page_view_at DATE-TIME | |||||
id INTEGER | |||||
last_visitor_page_view_at DATE-TIME | |||||
medium_parameter STRING | |||||
prospect_id INTEGER | |||||
source_parameter STRING | |||||
term_parameter STRING | |||||
updated_at DATE-TIME | |||||
visitor_id INTEGER | |||||
visitor_page_view_count INTEGER | |||||
visitor_page_views OBJECT
|
| Related | Troubleshooting |
Did this article help? If you have questions or feedback, feel free tosubmit a pull request with your suggestions,open an issue on GitHub, orreach out to us.