This integration is powered by Singer's Pendo tap and certified by Stitch. Check out and contribute to the repo on GitHub.
For support, contact Stitch support.
Pendo integration summary
Stitch’s Pendo integration replicates data using the Pendo v1 API. Refer to the Schema section for a list of objects available for replication.
Pendo feature snapshot
A high-level look at Stitch's Pendo (v1) integration, including release status, useful links, and the features supported in Stitch.
STITCH | |||
Release status |
Released on July 26th, 2023 |
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 |
Connecting Pendo
Pendo setup requirements
To set up Pendo in Stitch, you need:
-
Admin privileges in Pendo. These privileges are required to create an integration key, which Stitch needs to successfully connect to your Pendo account.
Step 1: Create a Pendo integration key
- Sign into your Pendo account as a user with Admin privileges.
- Click Settings > Integrations.
- On the Integrations page, click the Integration Keys tab.
- Click + Add Integration Key.
- In Description field of the window that displays, enter a description. For example:
Stitch
- Click Create.
The integration key will dispay in the Key column:
Keep the integration key handy - you’ll need it to complete the setup in the next step.
Step 2: Add Pendo as a Stitch data source
- Sign into your Stitch account.
-
On the Stitch Dashboard page, click the Add Integration button.
-
Click the Pendo 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 Pendo” would create a schema called
stitch_pendo
in the destination. Note: Schema names cannot be changed after you save the integration. -
In the Period field, select how you want data for event tables to be aggregated:
- Day - Data will be aggregated by day
- Hour - Data will be aggregated by hour
Note: The
Period
field is configured during integration creation. Once set, thisPeriod
field will remain disabled on the edit page. Refer to the Event replication section for more info. - In the X Pendo Integration Key field, paste the integration key you created in Step 1.
- Optional: If you want to extract data for specific apps, enter a comma-separated list of app IDs in the App Ids field. If this field is empty, Stitch will extract data for all apps available in your Pendo account.
- Optional: Check the Inlude Anonymous Visitors checkbox to have Stitch include anonymous vistors in replication.
Step 3: Define the historical replication start date
The Sync Historical Data setting defines the starting date for your Pendo integration. This means that:
- For tables using Key-based Incremental Replication, data equal to or newer than this date will be replicated to your destination.
- For tables using Full Table Replication, all data - including records that are older, equal to, or newer than this date - will be replicated to your destination.
Change this setting if you want to replicate data beyond Pendo’s default setting of 1 year. For a detailed look at historical replication jobs, check out the Syncing Historical SaaS Data guide.
Step 4: Create a replication schedule
In the Replication Frequency section, you’ll create the integration’s replication schedule. An integration’s replication schedule determines how often Stitch runs a replication job, and the time that job begins.
Pendo 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 the Understanding and Reducing Your Row Usage guide for tips on reducing your usage.
Step 5: Set objects to replicate
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 Pendo integrations, you can select:
-
Individual tables and columns
-
All tables and columns
Click the tabs to view instructions for each selection method.
- In the integration’s Tables to Replicate tab, locate a table you want to replicate.
-
To track a table, click the checkbox next to the table’s name. A blue checkmark means the table is set to replicate.
-
To track a column, click the checkbox next to the column’s name. A blue checkmark means the column is set to replicate.
- Repeat this process for all the tables and columns you want to replicate.
- When finished, click the Finalize Your Selections button at the bottom of the screen to save your selections.
- Click into the integration from the Stitch Dashboard page.
-
Click the Tables to Replicate tab.
- In the list of tables, click the box next to the Table Names column.
-
In the menu that displays, click Track all Tables and Fields:
- Click the Finalize Your Selections button at the bottom of the page to save your data selections.
Initial and historical replication jobs
After you finish setting up Pendo, its Sync Status may show as Pending on either the Stitch Dashboard or in the Integration Details page.
For a new integration, a Pending 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 the Anchor Scheduling documentation for more information.
Free historical data loads
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.
Pendo replication
Event replication
Applicable event tables
The info in this section applies to the following tables:
Data aggregation for events
Pendo’s API allows data for event tables to be aggregated by day or by hour. In Stitch, this is controlled using the Period setting.
When the Period setting is set to:
Day
, each row of event data will pertain to a specific dayHour
, each row of event data will pertain to a specific hour of a given day
Pendo table reference
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 for version 1 of this integration.
This is the latest version of the Pendo 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 the Loading Guide for your destination for more info.
accounts
Replication Method : |
Key-based Incremental |
Replication Key |
lastupdated |
Primary Key |
account_id |
API endpoint : |
The accounts
table contains info about your customer accounts in Pendo.
account_id
The account ID. Reference: |
|||||
lastupdated
The time the account was last updated. |
|||||
metadata_auto
|
|||||
metadata_custom
|
events
Replication Method : |
Key-based Incremental |
Replication Key |
day or hour |
Primary Key |
account_id : server : remote_ip |
API endpoint : |
The events
table contains info about events recorded in your Pendo account.
Note: The Period setting you define during setup determine how this table is replicated, including the field used as a Replication Key. Refer to the Replication section for more info.
account_id
The account ID. Reference: |
server
|
remote_ip
|
visitor_id
Reference: |
day
If the Period setting is set to |
hour
If the Period setting is set to |
app_id
Reference: |
feature_id
Reference: |
num_events
|
num_minutes
|
page_id
Reference: |
parameters
|
user_agent
|
features
Replication Method : |
Key-based Incremental |
Replication Key |
last_updated_at |
Primary Key |
id |
API endpoint : |
The features
table contains info about app features listed in your Pendo account.
feature_events
Replication Method : |
Key-based Incremental |
Replication Key |
day or hour |
Primary Key |
account_id : server : remote_ip : visitor_id : day : feature_id : user_agent |
API endpoint : |
The feature_events
table contains info about feature events recorded in your Pendo account.
Note: The Period setting you define during setup determine how this table is replicated, including the field used as a Replication Key. Refer to the Replication section for more info.
account_id
The account ID. Reference: |
server
|
remote_ip
|
visitor_id
Reference: |
app_id
Reference: |
day
If the Period setting is set to |
feature_id
Reference: |
hour
If the Period setting is set to |
num_events
|
num_minutes
|
page_id
Reference: |
parameters
|
user_agent
|
guides
Replication Method : |
Key-based Incremental |
Replication Key |
last_updated_at |
Primary Key |
id |
API endpoint : |
The guides
table contains info about the guides in your Pendo account.
id
The guide ID. Reference: |
|||||||||||||||||||
last_updated_at
|
|||||||||||||||||||
attributes
|
|||||||||||||||||||
audience
|
|||||||||||||||||||
created_at
|
|||||||||||||||||||
created_by_user
|
|||||||||||||||||||
is_multi_step
|
|||||||||||||||||||
kind
|
|||||||||||||||||||
lastUpdated_by_user
|
|||||||||||||||||||
launch_method
|
|||||||||||||||||||
name
|
|||||||||||||||||||
published_at
|
|||||||||||||||||||
reset_at
|
|||||||||||||||||||
root_version_id
|
|||||||||||||||||||
stable_version_id
|
|||||||||||||||||||
state
|
|||||||||||||||||||
steps
|
guide_events
Replication Method : |
Key-based Incremental |
Replication Key |
browser_time |
Primary Key |
account_id : server : remote_ip : browser_time : visitor_id : guide_id : guide_step_id : type : url |
API endpoint : |
The guide_events
table contains info about guide events recorded in your Pendo account.
Note: The Period setting you define during setup determine how this table is replicated, including the field used as a Replication Key. Refer to the Replication section for more info.
account_id
The account ID. Reference: |
|
server
|
|
remote_ip
|
|
browser_time
|
|
visitor_id
Reference: |
|
account_ids
|
|
app_id
Reference: |
|
country
|
|
day
If the Period setting is set to |
|
guide_id
Reference: |
|
guide_step_id
|
|
hour
If the Period setting is set to |
|
latitude
|
|
load_time
|
|
longitude
|
|
poll_id
Reference: |
|
poll_response
|
|
region
|
|
server_name
|
|
type
|
|
url
|
|
user_agent
|
metadata_accounts
Replication Method : |
Full Table |
Primary Key |
None |
API endpoint : |
The metadata_accounts
table contains info about the metadata schema used for account objects in your Pendo account.
auto
|
metadata_visitors
Replication Method : |
Full Table |
Primary Key |
None |
API endpoint : |
The metadata_visitors
table contains info about the metadata schema used for visitor objects in your Pendo account.
agent
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
auto
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pendo
|
Replication Method : |
Key-based Incremental |
Replication Key |
last_updated_at |
Primary Key |
id |
API endpoint : |
The pages
table contains info about specific pages in your Pendo app.
id
The page ID. Reference: |
|||||||||||||||||||
last_updated_at
The time the page was last updated. |
|||||||||||||||||||
color
|
|||||||||||||||||||
created_at
|
|||||||||||||||||||
created_by_user
|
|||||||||||||||||||
dirty
|
|||||||||||||||||||
group
|
|||||||||||||||||||
kind
|
|||||||||||||||||||
last_updated_by_user
|
|||||||||||||||||||
name
|
|||||||||||||||||||
root_version_id
|
|||||||||||||||||||
rules
|
|||||||||||||||||||
stable_version_id
|
page_events
Replication Method : |
Key-based Incremental |
Replication Key |
day or hour |
Primary Key |
account_id : server : remote_ip : visitor_id : day : page_id : user_agent |
API endpoint : |
The page_events
table contains info about page events recorded in your Pendo account.
Note: The Period setting you define during setup determine how this table is replicated, including the field used as a Replication Key. Refer to the Replication section for more info.
account_id
The account ID. Reference: |
server
|
remote_ip
|
visitor_id
Reference: |
app_id
Reference: |
day
If the Period setting is set to |
hour
If the Period setting is set to |
num_events
|
num_minutes
|
page_id
Reference: |
parameters
|
user_agent
|
poll_events
Replication Method : |
Key-based Incremental |
Replication Key |
browser_time |
Primary Key |
account_id : remote_ip : visitor_id : browser_time : poll_id |
API endpoint : |
The poll_events
table contains info about poll events recorded in your Pendo account.
Note: The Period setting you define during setup determine how this table is replicated, including the field used as a Replication Key. Refer to the Replication section for more info.
account_id
Reference: |
|
remote_ip
|
|
visitor_id
Reference: |
|
browser_time
|
|
account_ids
A list of accounts the visitor (
|
|
country
|
|
day
If the Period setting is set to |
|
guide_id
Reference: |
|
hour
If the Period setting is set to |
|
latitude
|
|
load_time
|
|
longitude
|
|
poll_id
Reference: |
|
poll_response
|
|
region
|
|
server_name
|
|
type
|
|
user_agent
|
track_events
Replication Method : |
Key-based Incremental |
Replication Key |
day or hour |
Primary Key |
account_id : remote_ip : server : visitor_id : day : track_type_id : user_agent |
API endpoint : |
The track_events
table contains info about the track events recorded in your Pendo account.
Note: The Period setting you define during setup determine how this table is replicated, including the field used as a Replication Key. Refer to the Replication section for more info.
account_id
Reference: |
|||||
remote_ip
|
|||||
server
|
|||||
visitor_id
Reference: |
|||||
app_id
Reference: |
|||||
day
If the Period setting is set to |
|||||
hour
If the Period setting is set to |
|||||
num_events
|
|||||
num_minutes
|
|||||
properties
|
|||||
track_type_id
Reference: |
|||||
user_agent
|
track_types
Replication Method : |
Key-based Incremental |
Replication Key |
|
Primary Key |
id |
API endpoint : |
The track_types
table contains info about
id
Reference: |
|||||
color
|
|||||
created_at
|
|||||
created_by_user
|
|||||
dirty
|
|||||
group
|
|||||
kind
|
|||||
last_updated_at
|
|||||
last_updated_by_user
|
|||||
name
|
|||||
root_version_id
|
|||||
stable_version_id
|
|||||
track_type_name
|
|||||
track_type_rules
|
visitors
Replication Method : |
Key-based Incremental |
Replication Key |
lastupdated |
Primary Key |
visitor_id |
API endpoint : |
The visitors
table contains info about the visitors recorded in your Pendo account.
visitor_id
Reference: |
||||||||||||||
lastupdated
|
||||||||||||||
metadata_agent
|
||||||||||||||
metadata_auto
|
visitor_history
Replication Method : |
Key-based Incremental |
Replication Key |
modified_ts |
Primary Key |
visitor_id |
API endpoint : |
The visitor_history
table contains info about visitor activity.
visitor_id
The visitor ID. Reference: |
|||
modified_ts
The time the visitor was last modified. |
|||
last_ts
|
|||
app_id
Reference: |
|||
duration
|
|||
feature_id
Reference: |
|||
guide_id
Reference: |
|||
guide_step_id
Reference: |
|||
page_id
Reference: |
|||
parsed_user_agent
|
|||
ts
|
|||
type
|
|||
untagged_url
|
|||
uri
|
Related | Troubleshooting |
Questions? Feedback?
Did this article help? If you have questions or feedback, feel free to submit a pull request with your suggestions, open an issue on GitHub, or reach out to us.