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

Stitch plan

Standard

API availability

Available

Singer GitHub repository

singer-io/tap-pendo

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

  1. Sign into your Pendo account as a user with Admin privileges.
  2. Click Settings > Integrations.
  3. On the Integrations page, click the Integration Keys tab.
  4. Click + Add Integration Key.
  5. In Description field of the window that displays, enter a description. For example: Stitch
  6. Click Create.

The integration key will dispay in the Key column:

Highlighted Key column and integration key in the Integration Keys tab of the Pendo web app

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

  1. Sign into your Stitch account.
  2. On the Stitch Dashboard page, click the Add Integration button.

  3. Click the Pendo icon.

  4. 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.

  5. 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, this Period field will remain disabled on the edit page. Refer to the Event replication section for more info.

  6. In the X Pendo Integration Key field, paste the integration key you created in Step 1.
  7. 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.
  8. 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:

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:

  1. Individual tables and columns

  2. All tables and columns

Click the tabs to view instructions for each selection method.

  1. In the integration’s Tables to Replicate tab, locate a table you want to replicate.
  2. To track a table, click the checkbox next to the table’s name. A blue checkmark means the table is set to replicate.

  3. To track a column, click the checkbox next to the column’s name. A blue checkmark means the column is set to replicate.

  4. Repeat this process for all the tables and columns you want to replicate.
  5. When finished, click the Finalize Your Selections button at the bottom of the screen to save your selections.
  1. Click into the integration from the Stitch Dashboard page.
  2. Click the Tables to Replicate tab.

  3. In the list of tables, click the box next to the Table Names column.
  4. In the menu that displays, click Track all Tables and Fields:

    The Track all Tables and Fields menu in the Tables to Replicate tab

  5. 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.

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 day
  • Hour, each row of event data will pertain to a specific hour of a given day

Pendo table reference

Replication Method :

Key-based Incremental

Replication Key :

lastupdated

Primary Key :

account_id

API endpoint :

Aggregation

The accounts table contains info about your customer accounts in Pendo.

account_id
STRING

The account ID.

Reference:

lastupdated
DATE-TIME

The time the account was last updated.

metadata_auto
OBJECT

firstvisit
DATE-TIME

id
STRING

idhash
INTEGER

lastupdated
DATE-TIME

lastvisit
DATE-TIME

accounts (table), metadata_auto (attribute)

metadata_custom
OBJECT


Replication Method :

Key-based Incremental

Replication Key :

day or hour

Primary Key :

account_id : server : remote_ip

API endpoint :

Aggregation

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.


Replication Method :

Key-based Incremental

Replication Key :

last_updated_at

Primary Key :

id

API endpoint :

Aggregation

The features table contains info about app features listed in your Pendo account.

id
STRING

The feature ID.

Reference:

last_updated_at
DATE-TIME

The last time the feature was updated.

color
STRING

created_at
DATE-TIME

created_by_user
OBJECT

dirty
BOOLEAN

element_path_rules
ARRAY

value
STRING

features (table), element_path_rules (attribute)

group
OBJECT

kind
STRING

last_updated_by_user
OBJECT

name
STRING

pageId
STRING

Reference:

root_version_id
STRING

stable_version_id
STRING


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 :

Aggregation

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.


Replication Method :

Key-based Incremental

Replication Key :

last_updated_at

Primary Key :

id

API endpoint :

Aggregation

The guides table contains info about the guides in your Pendo account.

id
STRING

The guide ID.

Reference:

last_updated_at
DATE-TIME

attributes
OBJECT

badge
OBJECT

can_change_badge_color
BOOLEAN

color
STRING

height
INTEGER

image_url
STRING

is_only_show_once
BOOLEAN

name
STRING

offsets
OBJECT

left
INTEGER

right
INTEGER

top
INTEGER

guides (table), offsets (attribute)

position
STRING

show_on_event
STRING

use_hover
STRING

width
INTEGER

guides (table), badge (attribute)

device
OBJECT

type
STRING

guides (table), device (attribute)

priority
INTEGER

type
STRING

guides (table), attributes (attribute)

audience
ARRAY

guides (table), audience (attribute)

created_at
DATE-TIME

created_by_user
OBJECT

is_multi_step
BOOLEAN

kind
STRING

lastUpdated_by_user
OBJECT

launch_method
STRING

name
STRING

published_at
DATE-TIME

reset_at
DATE-TIME

root_version_id
STRING

stable_version_id
STRING

state
STRING

steps
ARRAY

advance_method
STRING

attributes
OBJECT

auto_height
BOOLEAN

css
STRING

height
INTEGER

width
INTEGER

guides (table), attributes (attribute)

content_type
STRING

content_url
STRING

content_url_css
STRING

content_url_js
STRING

element_path_rule
STRING

guide_id
STRING

Reference:

id
STRING

Reference:

last_updated_at
DATE-TIME

page_id
STRING

Reference:

rank
INTEGER

regex_url_rule
STRING

reset_at
DATE-TIME

type
STRING

guides (table), steps (attribute)

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 :

Aggregation

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
STRING

The account ID.

Reference:

server
STRING

remote_ip
STRING

browser_time
DATE-TIME

visitor_id
STRING

Reference:

account_ids
ARRAY

app_id
STRING

Reference:

country
STRING

day
DATE-TIME

If the Period setting is set to Day, this field will be used as the table’s Replication Key.

guide_id
STRING

Reference:

guide_step_id
STRING

hour
DATE-TIME

If the Period setting is set to Hour, this field will be used as the table’s Replication Key.

latitude
NUMBER

load_time
INTEGER

longitude
NUMBER

poll_id
STRING

Reference:

poll_response
STRING

region
STRING

server_name
STRING

type
STRING

url
STRING

user_agent
STRING


metadata_accounts

Replication Method :

Full Table

Primary Key :

None

API endpoint :

Get a metadata schema (account)

The metadata_accounts table contains info about the metadata schema used for account objects in your Pendo account.

auto
OBJECT

firstvisit
OBJECT

dirty
BOOLEAN

display_name
STRING

element_format
STRING

element_type
STRING

is_calculated
BOOLEAN

is_deleted
BOOLEAN

is_hidden
BOOLEAN

is_per_app
BOOLEAN

never_index
BOOLEAN

type
STRING

metadata_accounts (table), firstvisit (attribute)

id
OBJECT

dirty
BOOLEAN

display_name
STRING

element_format
STRING

element_type
STRING

is_calculated
BOOLEAN

is_deleted
BOOLEAN

is_hidden
BOOLEAN

is_per_app
BOOLEAN

never_index
BOOLEAN

type
STRING

metadata_accounts (table), id (attribute)

lastvisit
OBJECT

dirty
BOOLEAN

display_name
STRING

element_format
STRING

element_type
STRING

is_calculated
BOOLEAN

is_deleted
BOOLEAN

is_hidden
BOOLEAN

is_per_app
BOOLEAN

never_index
BOOLEAN

type
STRING

metadata_accounts (table), lastvisit (attribute)
metadata_accounts (table), auto (attribute)

metadata_visitors

Replication Method :

Full Table

Primary Key :

None

API endpoint :

Get a metadata schema (visitor)

The metadata_visitors table contains info about the metadata schema used for visitor objects in your Pendo account.

agent
NULL

auto
OBJECT

accountid
OBJECT

dirty
BOOLEAN

display_name
STRING

element_format
STRING

element_type
STRING

is_calculated
BOOLEAN

is_deleted
BOOLEAN

is_hidden
BOOLEAN

is_per_app
BOOLEAN

never_index
BOOLEAN

type
STRING

metadata_visitors (table), accountid (attribute)

accountids
OBJECT

dirty
BOOLEAN

display_name
STRING

element_format
STRING

element_type
STRING

is_calculated
BOOLEAN

is_deleted
BOOLEAN

is_hidden
BOOLEAN

is_per_app
BOOLEAN

never_index
BOOLEAN

type
STRING

metadata_visitors (table), accountids (attribute)

firstvisit
OBJECT

dirty
BOOLEAN

display_name
STRING

element_format
STRING

element_type
STRING

is_calculated
BOOLEAN

is_deleted
BOOLEAN

is_hidden
BOOLEAN

is_per_app
BOOLEAN

never_index
BOOLEAN

type
STRING

metadata_visitors (table), firstvisit (attribute)

id
OBJECT

dirty
BOOLEAN

display_name
STRING

element_format
STRING

element_type
STRING

is_calculated
BOOLEAN

is_deleted
BOOLEAN

is_hidden
BOOLEAN

is_per_app
BOOLEAN

never_index
BOOLEAN

type
STRING

metadata_visitors (table), id (attribute)

lastbrowsername
OBJECT

dirty
BOOLEAN

display_name
STRING

element_format
STRING

element_type
STRING

is_calculated
BOOLEAN

is_deleted
BOOLEAN

is_hidden
BOOLEAN

is_per_app
BOOLEAN

never_index
BOOLEAN

type
STRING

metadata_visitors (table), lastbrowsername (attribute)

lastbrowserversion
OBJECT

dirty
BOOLEAN

display_name
STRING

element_format
STRING

element_type
STRING

is_calculated
BOOLEAN

is_deleted
BOOLEAN

is_hidden
BOOLEAN

is_per_app
BOOLEAN

never_index
BOOLEAN

type
STRING

metadata_visitors (table), lastbrowserversion (attribute)

lastoperatingsystem
OBJECT

dirty
BOOLEAN

display_name
STRING

element_format
STRING

element_type
STRING

is_calculated
BOOLEAN

is_deleted
BOOLEAN

is_hidden
BOOLEAN

is_per_app
BOOLEAN

never_index
BOOLEAN

type
STRING

metadata_visitors (table), lastoperatingsystem (attribute)

lastservername
OBJECT

dirty
BOOLEAN

display_name
STRING

element_format
STRING

element_type
STRING

is_calculated
BOOLEAN

is_deleted
BOOLEAN

is_hidden
BOOLEAN

is_per_app
BOOLEAN

never_index
BOOLEAN

type
STRING

metadata_visitors (table), lastservername (attribute)

lastvisit
OBJECT

dirty
BOOLEAN

display_name
STRING

element_format
STRING

element_type
STRING

is_calculated
BOOLEAN

is_deleted
BOOLEAN

is_hidden
BOOLEAN

is_per_app
BOOLEAN

never_index
BOOLEAN

type
STRING

metadata_visitors (table), lastvisit (attribute)
metadata_visitors (table), auto (attribute)

pendo
OBJECT

designerenabled
OBJECT

dirty
BOOLEAN

display_name
STRING

element_format
STRING

element_type
STRING

is_calculated
BOOLEAN

is_deleted
BOOLEAN

is_hidden
BOOLEAN

is_per_app
BOOLEAN

never_index
BOOLEAN

type
STRING

metadata_visitors (table), designerenabled (attribute)
metadata_visitors (table), pendo (attribute)

Replication Method :

Key-based Incremental

Replication Key :

last_updated_at

Primary Key :

id

API endpoint :

Aggregation

The pages table contains info about specific pages in your Pendo app.

id
STRING

The page ID.

Reference:

last_updated_at
DATE-TIME

The time the page was last updated.

color
STRING

created_at
DATE-TIME

created_by_user
OBJECT

dirty
BOOLEAN

group
OBJECT

kind
STRING

last_updated_by_user
OBJECT

name
STRING

root_version_id
STRING

rules
ARRAY

designer_hint
STRING

parsed_rule
STRING

rule
STRING

pages (table), rules (attribute)

stable_version_id
STRING


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 :

Aggregation

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.


Replication Method :

Key-based Incremental

Replication Key :

browser_time

Primary Key :

account_id : remote_ip : visitor_id : browser_time : poll_id

API endpoint :

Aggregation

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
STRING

Reference:

remote_ip
STRING

visitor_id
STRING

Reference:

browser_time
DATE-TIME

account_ids
ARRAY

A list of accounts the visitor (visitor_id) belongs to.

country
STRING

day
DATE-TIME

If the Period setting is set to Day, this field will be used as the table’s Replication Key.

guide_id
STRING

Reference:

hour
DATE-TIME

If the Period setting is set to Hour, this field will be used as the table’s Replication Key.

latitude
NUMBER

load_time
INTEGER

longitude
NUMBER

poll_id
STRING

Reference:

poll_response
STRING

region
STRING

server_name
STRING

type
STRING

user_agent
STRING


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 :

Aggregation

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
STRING

Reference:

remote_ip
STRING

server
STRING

visitor_id
STRING

Reference:

app_id
NUMBER

Reference:

day
DATE-TIME

If the Period setting is set to Day, this field will be used as the table’s Replication Key.

hour
DATE-TIME

If the Period setting is set to Hour, this field will be used as the table’s Replication Key.

num_events
INTEGER

num_minutes
INTEGER

properties
OBJECT

android
BOOLEAN

any
BOOLEAN

apple
BOOLEAN

phone
BOOLEAN

table
BOOLEAN

track_events (table), properties (attribute)

track_type_id
STRING

Reference:

user_agent
STRING


Replication Method :

Key-based Incremental

Replication Key :
Primary Key :

id

API endpoint :

Aggregation

The track_types table contains info about

id
STRING

Reference:

color
STRING

created_at
DATE-TIME

created_by_user
OBJECT

dirty
BOOLEAN

group
OBJECT

color
STRING

description
STRING

id
STRING

Reference:

length
INTEGER

name
STRING

track_types (table), group (attribute)

kind
STRING

last_updated_at
DATE-TIME

last_updated_by_user
OBJECT

name
STRING

root_version_id
STRING

stable_version_id
STRING

track_type_name
BOOLEAN

track_type_rules
ARRAY

value
INTEGER

track_types (table), track_type_rules (attribute)

Replication Method :

Key-based Incremental

Replication Key :

lastupdated

Primary Key :

visitor_id

API endpoint :

Aggregation

The visitors table contains info about the visitors recorded in your Pendo account.


Replication Method :

Key-based Incremental

Replication Key :

modified_ts

Primary Key :

visitor_id

API endpoint :

Aggregation

The visitor_history table contains info about visitor activity.



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.