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 data equal to or newer than this date will be replicated to your data warehouse.

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

accounts

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

Replication Method

Key-based Incremental

Primary Key

account_id

Replication Key

lastupdated

Useful links

Pendo documentation

accounts schema on GitHub

Pendo API method

Join accounts with on
events
accounts.account_id = events.account_id
feature_events
accounts.account_id = feature_events.account_id
guide_events
accounts.account_id = guide_events.account_id
accounts.account_id = guide_events.account_ids
page_events
accounts.account_id = page_events.account_id
poll_events
accounts.account_id = poll_events.account_id
accounts.account_id = poll_events.account_ids
track_events
accounts.account_id = track_events.account_id
visitors
accounts.account_id = visitors.metadata_auto.accountid
accounts.account_id = visitors.metadata_auto.accountids

account_id

STRING

lastupdated

DATE-TIME

metadata_auto

OBJECT

firstvisit

DATE-TIME

id

STRING

idhash

INTEGER

lastupdated

DATE-TIME

lastvisit

DATE-TIME

metadata_custom

OBJECT

events

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

Primary Keys

account_id

server

remote_ip

Useful links

Pendo documentation

events schema on GitHub

Pendo API method

Join events with on
accounts
events.account_id = accounts.account_id
feature_events
events.account_id = feature_events.account_id
events.app_id = feature_events.app_id
events.feature_id = feature_events.feature_id
events.visitor_id = feature_events.visitor_id
guide_events
events.account_id = guide_events.account_id
events.account_id = guide_events.account_ids
events.app_id = guide_events.app_id
events.visitor_id = guide_events.visitor_id
page_events
events.account_id = page_events.account_id
events.app_id = page_events.app_id
events.page_id = page_events.page_id
events.visitor_id = page_events.visitor_id
poll_events
events.account_id = poll_events.account_id
events.account_id = poll_events.account_ids
events.visitor_id = poll_events.visitor_id
track_events
events.account_id = track_events.account_id
events.app_id = track_events.app_id
events.visitor_id = track_events.visitor_id
visitors
events.account_id = visitors.metadata_auto.accountid
events.account_id = visitors.metadata_auto.accountids
events.visitor_id = visitors.visitor_id
features
events.app_id = features.created_by_user.app_id
events.feature_id = features.id
events.page_id = features.page_id
visitor_history
events.app_id = visitor_history.app_id
events.feature_id = visitor_history.feature_id
events.page_id = visitor_history.page_id
events.visitor_id = visitor_history.visitor_id
guides
events.page_id = guides.steps.page_id
events.visitor_id = guides.audience.select.visitor_id
pages
events.page_id = pages.id

account_id

STRING

app_id

NUMBER

day

DATE-TIME

feature_id

STRING

hour

DATE-TIME

num_events

INTEGER

num_minutes

INTEGER

page_id

STRING

parameters

STRING

remote_ip

STRING

server

STRING

user_agent

STRING

visitor_id

STRING

feature_events

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

Primary Keys

account_id

server

remote_ip

visitor_id

day

feature_id

user_agent

Useful links

Pendo documentation

feature_events schema on GitHub

Pendo API method

Join feature_events with on
accounts
feature_events.account_id = accounts.account_id
events
feature_events.account_id = events.account_id
feature_events.app_id = events.app_id
feature_events.feature_id = events.feature_id
feature_events.visitor_id = events.visitor_id
guide_events
feature_events.account_id = guide_events.account_id
feature_events.account_id = guide_events.account_ids
feature_events.app_id = guide_events.app_id
feature_events.visitor_id = guide_events.visitor_id
page_events
feature_events.account_id = page_events.account_id
feature_events.app_id = page_events.app_id
feature_events.visitor_id = page_events.visitor_id
poll_events
feature_events.account_id = poll_events.account_id
feature_events.account_id = poll_events.account_ids
feature_events.visitor_id = poll_events.visitor_id
track_events
feature_events.account_id = track_events.account_id
feature_events.app_id = track_events.app_id
feature_events.visitor_id = track_events.visitor_id
visitors
feature_events.account_id = visitors.metadata_auto.accountid
feature_events.account_id = visitors.metadata_auto.accountids
feature_events.visitor_id = visitors.visitor_id
features
feature_events.app_id = features.created_by_user.app_id
feature_events.feature_id = features.id
visitor_history
feature_events.app_id = visitor_history.app_id
feature_events.feature_id = visitor_history.feature_id
feature_events.visitor_id = visitor_history.visitor_id
guides
feature_events.visitor_id = guides.audience.select.visitor_id

account_id

STRING

app_id

NUMBER

day

DATE-TIME

feature_id

STRING

hour

DATE-TIME

num_events

INTEGER

num_minutes

INTEGER

parameters

STRING

remote_ip

STRING

server

STRING

user_agent

STRING

visitor_id

STRING

features

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

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

last_updated_at

Useful links

Pendo documentation

features schema on GitHub

Pendo API method

Join features with on
events
features.created_by_user.app_id = events.app_id
features.id = events.feature_id
features.page_id = events.page_id
feature_events
features.created_by_user.app_id = feature_events.app_id
features.id = feature_events.feature_id
guide_events
features.created_by_user.app_id = guide_events.app_id
page_events
features.created_by_user.app_id = page_events.app_id
features.page_id = page_events.page_id
track_events
features.created_by_user.app_id = track_events.app_id
visitor_history
features.created_by_user.app_id = visitor_history.app_id
features.id = visitor_history.feature_id
features.page_id = visitor_history.page_id
pages
features.group.id = pages.group.id
features.page_id = pages.id
features.created_by_user.id = pages.created_by_user.id
features.group.created_by_user.id = pages.created_by_user.id
features.group.last_updated_by_user.id = pages.created_by_user.id
features.last_updated_by_user.id = pages.created_by_user.id
features.created_by_user.id = pages.group.created_by_user.id
features.group.created_by_user.id = pages.group.created_by_user.id
features.group.last_updated_by_user.id = pages.group.created_by_user.id
features.last_updated_by_user.id = pages.group.created_by_user.id
features.created_by_user.id = pages.group.last_updated_by_user.id
features.group.created_by_user.id = pages.group.last_updated_by_user.id
features.group.last_updated_by_user.id = pages.group.last_updated_by_user.id
features.last_updated_by_user.id = pages.group.last_updated_by_user.id
features.created_by_user.id = pages.last_updated_by_user.id
features.group.created_by_user.id = pages.last_updated_by_user.id
features.group.last_updated_by_user.id = pages.last_updated_by_user.id
features.last_updated_by_user.id = pages.last_updated_by_user.id
track_types
features.group.id = track_types.group.id
features.created_by_user.id = track_types.created_by_user.id
features.group.created_by_user.id = track_types.created_by_user.id
features.group.last_updated_by_user.id = track_types.created_by_user.id
features.last_updated_by_user.id = track_types.created_by_user.id
features.created_by_user.id = track_types.last_updated_by_user.id
features.group.created_by_user.id = track_types.last_updated_by_user.id
features.group.last_updated_by_user.id = track_types.last_updated_by_user.id
features.last_updated_by_user.id = track_types.last_updated_by_user.id
guides
features.page_id = guides.steps.page_id
features.created_by_user.id = guides.created_by_user.id
features.group.created_by_user.id = guides.created_by_user.id
features.group.last_updated_by_user.id = guides.created_by_user.id
features.last_updated_by_user.id = guides.created_by_user.id
features.created_by_user.id = guides.last_updated_by_user.id
features.group.created_by_user.id = guides.last_updated_by_user.id
features.group.last_updated_by_user.id = guides.last_updated_by_user.id
features.last_updated_by_user.id = guides.last_updated_by_user.id

app_id

NUMBER

color

STRING

created_at

DATE-TIME

created_by_user

OBJECT

app_id

NUMBER

app_wide

BOOLEAN

event_property_configurations

ARRAY

first

STRING

id

STRING

is_core_event

BOOLEAN

last

STRING

role

INTEGER

user_type

STRING

username

STRING

valid_through

NUMBER

dirty

BOOLEAN

element_path_rules

ARRAY

group

OBJECT

color

STRING

created_at

DATE-TIME

created_by_user

OBJECT

first

STRING

id

STRING

last

STRING

role

INTEGER

type

STRING

username

STRING

description

STRING

id

STRING

last_updated_at

DATE-TIME

last_updated_by_user

OBJECT

first

STRING

id

STRING

last

STRING

role

INTEGER

username

STRING

length

INTEGER

name

STRING

id

STRING

kind

STRING

last_updated_at

DATE-TIME

last_updated_by_user

OBJECT

first

STRING

id

STRING

last

STRING

role

INTEGER

type

STRING

username

STRING

name

STRING

page_id

STRING

root_version_id

STRING

stable_version_id

STRING

guide_events

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.

Replication Method

Key-based Incremental

Primary Keys

account_id

browser_time

guide_id

guide_step_id

remote_ip

type

url

visitor_id

Replication Key

browser_time

Useful links

Pendo documentation

guide_events schema on GitHub

Pendo API method

Join guide_events with on
accounts
guide_events.account_id = accounts.account_id
guide_events.account_ids = accounts.account_id
events
guide_events.account_id = events.account_id
guide_events.account_ids = events.account_id
guide_events.app_id = events.app_id
guide_events.visitor_id = events.visitor_id
feature_events
guide_events.account_id = feature_events.account_id
guide_events.account_ids = feature_events.account_id
guide_events.app_id = feature_events.app_id
guide_events.visitor_id = feature_events.visitor_id
page_events
guide_events.account_id = page_events.account_id
guide_events.account_ids = page_events.account_id
guide_events.app_id = page_events.app_id
guide_events.visitor_id = page_events.visitor_id
poll_events
guide_events.account_id = poll_events.account_id
guide_events.account_ids = poll_events.account_id
guide_events.account_id = poll_events.account_ids
guide_events.account_ids = poll_events.account_ids
guide_events.guide_id = poll_events.guide_id
guide_events.poll_id = poll_events.poll_id
guide_events.visitor_id = poll_events.visitor_id
track_events
guide_events.account_id = track_events.account_id
guide_events.account_ids = track_events.account_id
guide_events.app_id = track_events.app_id
guide_events.visitor_id = track_events.visitor_id
visitors
guide_events.account_id = visitors.metadata_auto.accountid
guide_events.account_ids = visitors.metadata_auto.accountid
guide_events.account_id = visitors.metadata_auto.accountids
guide_events.account_ids = visitors.metadata_auto.accountids
guide_events.visitor_id = visitors.visitor_id
features
guide_events.app_id = features.created_by_user.app_id
visitor_history
guide_events.app_id = visitor_history.app_id
guide_events.guide_id = visitor_history.guide_id
guide_events.visitor_id = visitor_history.visitor_id
guides
guide_events.guide_id = guides.id
guide_events.guide_id = guides.steps.guide_id
guide_events.visitor_id = guides.audience.select.visitor_id

account_id

STRING

account_ids

ARRAY

app_id

NUMBER

browser_time

DATE-TIME

country

STRING

guide_id

STRING

guide_step_id

STRING

latitude

NUMBER

load_time

INTEGER

longitude

NUMBER

poll_id

STRING

poll_response

STRING

region

STRING

remote_ip

STRING

server_name

STRING

type

STRING

url

STRING

user_agent

STRING

visitor_id

STRING

guides

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

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

last_updated_at

Useful links

guides schema on GitHub

Pendo API method

Join guides with on
guide_events
guides.id = guide_events.guide_id
guides.steps.guide_id = guide_events.guide_id
guides.audience.select.visitor_id = guide_events.visitor_id
poll_events
guides.id = poll_events.guide_id
guides.steps.guide_id = poll_events.guide_id
guides.audience.select.visitor_id = poll_events.visitor_id
visitor_history
guides.id = visitor_history.guide_id
guides.steps.guide_id = visitor_history.guide_id
guides.steps.id = visitor_history.guide_id
guides.steps.page_id = visitor_history.page_id
guides.audience.select.visitor_id = visitor_history.visitor_id
events
guides.steps.page_id = events.page_id
guides.audience.select.visitor_id = events.visitor_id
features
guides.steps.page_id = features.page_id
guides.created_by_user.id = features.created_by_user.id
guides.last_updated_by_user.id = features.created_by_user.id
guides.created_by_user.id = features.group.created_by_user.id
guides.last_updated_by_user.id = features.group.created_by_user.id
guides.created_by_user.id = features.group.last_updated_by_user.id
guides.last_updated_by_user.id = features.group.last_updated_by_user.id
guides.created_by_user.id = features.last_updated_by_user.id
guides.last_updated_by_user.id = features.last_updated_by_user.id
page_events
guides.steps.page_id = page_events.page_id
guides.audience.select.visitor_id = page_events.visitor_id
pages
guides.steps.page_id = pages.id
guides.created_by_user.id = pages.created_by_user.id
guides.last_updated_by_user.id = pages.created_by_user.id
guides.created_by_user.id = pages.group.created_by_user.id
guides.last_updated_by_user.id = pages.group.created_by_user.id
guides.created_by_user.id = pages.group.last_updated_by_user.id
guides.last_updated_by_user.id = pages.group.last_updated_by_user.id
guides.created_by_user.id = pages.last_updated_by_user.id
guides.last_updated_by_user.id = pages.last_updated_by_user.id
track_types
guides.created_by_user.id = track_types.created_by_user.id
guides.last_updated_by_user.id = track_types.created_by_user.id
guides.created_by_user.id = track_types.last_updated_by_user.id
guides.last_updated_by_user.id = track_types.last_updated_by_user.id
feature_events
guides.audience.select.visitor_id = feature_events.visitor_id
track_events
guides.audience.select.visitor_id = track_events.visitor_id
visitors
guides.audience.select.visitor_id = visitors.visitor_id

app_id

NUMBER

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

position

STRING

show_on_event

STRING

use_hover

STRING

width

INTEGER

device

OBJECT

priority

INTEGER

type

STRING

audience

ARRAY

identified

STRING

select

OBJECT

visitor_id

STRING

source

OBJECT

visitors

STRING

created_at

DATE-TIME

created_by_user

OBJECT

first

STRING

id

STRING

last

STRING

role

INTEGER

username

STRING

id

STRING

is_multi_step

BOOLEAN

kind

STRING

last_updated_at

DATE-TIME

last_updated_by_user

OBJECT

first

STRING

id

STRING

last

STRING

role

INTEGER

username

STRING

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

content_type

STRING

content_url

STRING

content_url_css

STRING

content_url_js

STRING

element_path_rule

STRING

guide_id

STRING

id

STRING

last_updated_at

DATE-TIME

page_id

STRING

rank

INTEGER

regex_url_rule

STRING

reset_at

DATE-TIME

type

STRING

metadata_accounts

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

Replication Method

Full Table

Useful links

Pendo documentation

metadata_accounts schema on GitHub

Pendo API method

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

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

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

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

Replication Method

Full Table

Useful links

Pendo documentation

metadata_visitors schema on GitHub

Pendo API method

agent

OBJECT

language

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

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

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

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

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

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

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

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

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

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

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

page_events

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

Primary Keys

account_id

server

remote_ip

visitor_id

day

page_id

user_agent

Useful links

Pendo documentation

page_events schema on GitHub

Pendo API method

Join page_events with on
accounts
page_events.account_id = accounts.account_id
events
page_events.account_id = events.account_id
page_events.app_id = events.app_id
page_events.page_id = events.page_id
page_events.visitor_id = events.visitor_id
feature_events
page_events.account_id = feature_events.account_id
page_events.app_id = feature_events.app_id
page_events.visitor_id = feature_events.visitor_id
guide_events
page_events.account_id = guide_events.account_id
page_events.account_id = guide_events.account_ids
page_events.app_id = guide_events.app_id
page_events.visitor_id = guide_events.visitor_id
poll_events
page_events.account_id = poll_events.account_id
page_events.account_id = poll_events.account_ids
page_events.visitor_id = poll_events.visitor_id
track_events
page_events.account_id = track_events.account_id
page_events.app_id = track_events.app_id
page_events.visitor_id = track_events.visitor_id
visitors
page_events.account_id = visitors.metadata_auto.accountid
page_events.account_id = visitors.metadata_auto.accountids
page_events.visitor_id = visitors.visitor_id
features
page_events.app_id = features.created_by_user.app_id
page_events.page_id = features.page_id
visitor_history
page_events.app_id = visitor_history.app_id
page_events.page_id = visitor_history.page_id
page_events.visitor_id = visitor_history.visitor_id
guides
page_events.page_id = guides.steps.page_id
page_events.visitor_id = guides.audience.select.visitor_id
pages
page_events.page_id = pages.id

account_id

STRING

app_id

NUMBER

day

DATE-TIME

hour

DATE-TIME

num_events

INTEGER

num_minutes

INTEGER

page_id

STRING

parameters

STRING

remote_ip

STRING

server

STRING

user_agent

STRING

visitor_id

STRING

pages

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

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

last_updated_at

Useful links

Pendo documentation

pages schema on GitHub

Pendo API method

Join pages with on
features
pages.group.id = features.group.id
pages.id = features.page_id
pages.created_by_user.id = features.created_by_user.id
pages.group.created_by_user.id = features.created_by_user.id
pages.group.last_updated_by_user.id = features.created_by_user.id
pages.last_updated_by_user.id = features.created_by_user.id
pages.created_by_user.id = features.group.created_by_user.id
pages.group.created_by_user.id = features.group.created_by_user.id
pages.group.last_updated_by_user.id = features.group.created_by_user.id
pages.last_updated_by_user.id = features.group.created_by_user.id
pages.created_by_user.id = features.group.last_updated_by_user.id
pages.group.created_by_user.id = features.group.last_updated_by_user.id
pages.group.last_updated_by_user.id = features.group.last_updated_by_user.id
pages.last_updated_by_user.id = features.group.last_updated_by_user.id
pages.created_by_user.id = features.last_updated_by_user.id
pages.group.created_by_user.id = features.last_updated_by_user.id
pages.group.last_updated_by_user.id = features.last_updated_by_user.id
pages.last_updated_by_user.id = features.last_updated_by_user.id
track_types
pages.group.id = track_types.group.id
pages.created_by_user.id = track_types.created_by_user.id
pages.group.created_by_user.id = track_types.created_by_user.id
pages.group.last_updated_by_user.id = track_types.created_by_user.id
pages.last_updated_by_user.id = track_types.created_by_user.id
pages.created_by_user.id = track_types.last_updated_by_user.id
pages.group.created_by_user.id = track_types.last_updated_by_user.id
pages.group.last_updated_by_user.id = track_types.last_updated_by_user.id
pages.last_updated_by_user.id = track_types.last_updated_by_user.id
events
pages.id = events.page_id
guides
pages.id = guides.steps.page_id
pages.created_by_user.id = guides.created_by_user.id
pages.group.created_by_user.id = guides.created_by_user.id
pages.group.last_updated_by_user.id = guides.created_by_user.id
pages.last_updated_by_user.id = guides.created_by_user.id
pages.created_by_user.id = guides.last_updated_by_user.id
pages.group.created_by_user.id = guides.last_updated_by_user.id
pages.group.last_updated_by_user.id = guides.last_updated_by_user.id
pages.last_updated_by_user.id = guides.last_updated_by_user.id
page_events
pages.id = page_events.page_id
visitor_history
pages.id = visitor_history.page_id

app_id

NUMBER

color

STRING

created_at

DATE-TIME

created_by_user

OBJECT

first

STRING

id

STRING

last

STRING

role

INTEGER

username

STRING

dirty

BOOLEAN

group

OBJECT

color

STRING

created_at

DATE-TIME

created_by_user

OBJECT

first

STRING

id

STRING

last

STRING

role

INTEGER

username

STRING

description

STRING

id

STRING

last_updated_at

DATE-TIME

last_updated_by_user

OBJECT

first

STRING

id

STRING

last

STRING

role

INTEGER

username

STRING

length

INTEGER

name

STRING

id

STRING

kind

STRING

last_updated_at

DATE-TIME

last_updated_by_user

OBJECT

first

STRING

id

STRING

last

STRING

role

INTEGER

username

STRING

name

STRING

root_version_id

STRING

rules

ARRAY

designer_hint

STRING

parsed_rule

STRING

rule

STRING

stable_version_id

STRING

poll_events

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.

Replication Method

Key-based Incremental

Primary Keys

account_id

remote_ip

visitor_id

browser_time

poll_id

Replication Key

browser_time

Useful links

Pendo documentation

poll_events schema on GitHub

Pendo API method

Join poll_events with on
accounts
poll_events.account_id = accounts.account_id
poll_events.account_ids = accounts.account_id
events
poll_events.account_id = events.account_id
poll_events.account_ids = events.account_id
poll_events.visitor_id = events.visitor_id
feature_events
poll_events.account_id = feature_events.account_id
poll_events.account_ids = feature_events.account_id
poll_events.visitor_id = feature_events.visitor_id
guide_events
poll_events.account_id = guide_events.account_id
poll_events.account_ids = guide_events.account_id
poll_events.account_id = guide_events.account_ids
poll_events.account_ids = guide_events.account_ids
poll_events.guide_id = guide_events.guide_id
poll_events.poll_id = guide_events.poll_id
poll_events.visitor_id = guide_events.visitor_id
page_events
poll_events.account_id = page_events.account_id
poll_events.account_ids = page_events.account_id
poll_events.visitor_id = page_events.visitor_id
track_events
poll_events.account_id = track_events.account_id
poll_events.account_ids = track_events.account_id
poll_events.visitor_id = track_events.visitor_id
visitors
poll_events.account_id = visitors.metadata_auto.accountid
poll_events.account_ids = visitors.metadata_auto.accountid
poll_events.account_id = visitors.metadata_auto.accountids
poll_events.account_ids = visitors.metadata_auto.accountids
poll_events.visitor_id = visitors.visitor_id
guides
poll_events.guide_id = guides.id
poll_events.guide_id = guides.steps.guide_id
poll_events.visitor_id = guides.audience.select.visitor_id
visitor_history
poll_events.guide_id = visitor_history.guide_id
poll_events.visitor_id = visitor_history.visitor_id

account_id

STRING

account_ids

ARRAY

app_id

NUMBER

browser_time

DATE-TIME

country

STRING

guide_id

STRING

latitude

NUMBER

load_time

INTEGER

longitude

NUMBER

poll_id

STRING

poll_response

STRING

region

STRING

remote_ip

STRING

server_name

STRING

type

STRING

user_agent

STRING

visitor_id

STRING

track_events

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.

Replication Method

Key-based Incremental

Primary Keys

account_id

remote_ip

server

visitor_id

day

track_type_id

user_agent

Useful links

Pendo documentation

track_events schema on GitHub

Pendo API method

Join track_events with on
accounts
track_events.account_id = accounts.account_id
events
track_events.account_id = events.account_id
track_events.app_id = events.app_id
track_events.visitor_id = events.visitor_id
feature_events
track_events.account_id = feature_events.account_id
track_events.app_id = feature_events.app_id
track_events.visitor_id = feature_events.visitor_id
guide_events
track_events.account_id = guide_events.account_id
track_events.account_id = guide_events.account_ids
track_events.app_id = guide_events.app_id
track_events.visitor_id = guide_events.visitor_id
page_events
track_events.account_id = page_events.account_id
track_events.app_id = page_events.app_id
track_events.visitor_id = page_events.visitor_id
poll_events
track_events.account_id = poll_events.account_id
track_events.account_id = poll_events.account_ids
track_events.visitor_id = poll_events.visitor_id
visitors
track_events.account_id = visitors.metadata_auto.accountid
track_events.account_id = visitors.metadata_auto.accountids
track_events.visitor_id = visitors.visitor_id
features
track_events.app_id = features.created_by_user.app_id
visitor_history
track_events.app_id = visitor_history.app_id
track_events.visitor_id = visitor_history.visitor_id
track_types
track_events.track_type_id = track_types.id
guides
track_events.visitor_id = guides.audience.select.visitor_id

account_id

STRING

app_id

NUMBER

day

DATE-TIME

hour

DATE-TIME

num_events

INTEGER

num_minutes

INTEGER

properties

OBJECT

android

BOOLEAN

any

BOOLEAN

apple

BOOLEAN

phone

BOOLEAN

table

BOOLEAN

remote_ip

STRING

server

STRING

track_type_id

STRING

user_agent

STRING

visitor_id

STRING

track_types

The track_types table contains info about

Replication Method

Key-based Incremental

Primary Key

id

Useful links

track_types schema on GitHub

Pendo API method

Join track_types with on
features
track_types.group.id = features.group.id
track_types.created_by_user.id = features.created_by_user.id
track_types.last_updated_by_user.id = features.created_by_user.id
track_types.created_by_user.id = features.group.created_by_user.id
track_types.last_updated_by_user.id = features.group.created_by_user.id
track_types.created_by_user.id = features.group.last_updated_by_user.id
track_types.last_updated_by_user.id = features.group.last_updated_by_user.id
track_types.created_by_user.id = features.last_updated_by_user.id
track_types.last_updated_by_user.id = features.last_updated_by_user.id
pages
track_types.group.id = pages.group.id
track_types.created_by_user.id = pages.created_by_user.id
track_types.last_updated_by_user.id = pages.created_by_user.id
track_types.created_by_user.id = pages.group.created_by_user.id
track_types.last_updated_by_user.id = pages.group.created_by_user.id
track_types.created_by_user.id = pages.group.last_updated_by_user.id
track_types.last_updated_by_user.id = pages.group.last_updated_by_user.id
track_types.created_by_user.id = pages.last_updated_by_user.id
track_types.last_updated_by_user.id = pages.last_updated_by_user.id
track_events
track_types.id = track_events.track_type_id
guides
track_types.created_by_user.id = guides.created_by_user.id
track_types.last_updated_by_user.id = guides.created_by_user.id
track_types.created_by_user.id = guides.last_updated_by_user.id
track_types.last_updated_by_user.id = guides.last_updated_by_user.id

app_id

NUMBER

color

STRING

created_at

DATE-TIME

created_by_user

OBJECT

first

STRING

id

STRING

last

STRING

role

INTEGER

username

STRING

dirty

BOOLEAN

group

OBJECT

color

STRING

description

STRING

id

STRING

length

INTEGER

name

STRING

id

STRING

kind

STRING

last_updated_at

DATE-TIME

last_updated_by_user

OBJECT

first

STRING

id

STRING

last

STRING

role

INTEGER

username

STRING

name

STRING

root_version_id

STRING

stable_version_id

STRING

track_type_name

BOOLEAN

track_type_rules

ARRAY

visitor_history

The visitor_history table contains info about visitor activity.

Replication Method

Key-based Incremental

Primary Key

visitor_id

Replication Key

modified_ts

Useful links

Pendo documentation

visitor_history schema on GitHub

Pendo API method

Join visitor_history with on
events
visitor_history.app_id = events.app_id
visitor_history.feature_id = events.feature_id
visitor_history.page_id = events.page_id
visitor_history.visitor_id = events.visitor_id
feature_events
visitor_history.app_id = feature_events.app_id
visitor_history.feature_id = feature_events.feature_id
visitor_history.visitor_id = feature_events.visitor_id
features
visitor_history.app_id = features.created_by_user.app_id
visitor_history.feature_id = features.id
visitor_history.page_id = features.page_id
guide_events
visitor_history.app_id = guide_events.app_id
visitor_history.guide_id = guide_events.guide_id
visitor_history.visitor_id = guide_events.visitor_id
page_events
visitor_history.app_id = page_events.app_id
visitor_history.page_id = page_events.page_id
visitor_history.visitor_id = page_events.visitor_id
track_events
visitor_history.app_id = track_events.app_id
visitor_history.visitor_id = track_events.visitor_id
guides
visitor_history.guide_id = guides.id
visitor_history.guide_id = guides.steps.guide_id
visitor_history.guide_id = guides.steps.id
visitor_history.page_id = guides.steps.page_id
visitor_history.visitor_id = guides.audience.select.visitor_id
poll_events
visitor_history.guide_id = poll_events.guide_id
visitor_history.visitor_id = poll_events.visitor_id
pages
visitor_history.page_id = pages.id
visitors
visitor_history.visitor_id = visitors.visitor_id

app_id

NUMBER

duration

INTEGER

feature_id

STRING

guide_id

STRING

guide_step_id

STRING

last_ts

DATE-TIME

modified_ts

DATE-TIME

page_id

STRING

parsed_user_agent

OBJECT

name

STRING

os

STRING

version

STRING

ts

DATE-TIME

type

STRING

untagged_url

STRING

uri

STRING

visitor_id

STRING

visitors

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

Replication Method

Key-based Incremental

Primary Key

visitor_id

Replication Key

lastupdated

Useful links

Pendo documentation

visitors schema on GitHub

Pendo API method

Join visitors with on
accounts
visitors.metadata_auto.accountid = accounts.account_id
visitors.metadata_auto.accountids = accounts.account_id
events
visitors.metadata_auto.accountid = events.account_id
visitors.metadata_auto.accountids = events.account_id
visitors.visitor_id = events.visitor_id
feature_events
visitors.metadata_auto.accountid = feature_events.account_id
visitors.metadata_auto.accountids = feature_events.account_id
visitors.visitor_id = feature_events.visitor_id
guide_events
visitors.metadata_auto.accountid = guide_events.account_id
visitors.metadata_auto.accountids = guide_events.account_id
visitors.metadata_auto.accountid = guide_events.account_ids
visitors.metadata_auto.accountids = guide_events.account_ids
visitors.visitor_id = guide_events.visitor_id
page_events
visitors.metadata_auto.accountid = page_events.account_id
visitors.metadata_auto.accountids = page_events.account_id
visitors.visitor_id = page_events.visitor_id
poll_events
visitors.metadata_auto.accountid = poll_events.account_id
visitors.metadata_auto.accountids = poll_events.account_id
visitors.metadata_auto.accountid = poll_events.account_ids
visitors.metadata_auto.accountids = poll_events.account_ids
visitors.visitor_id = poll_events.visitor_id
track_events
visitors.metadata_auto.accountid = track_events.account_id
visitors.metadata_auto.accountids = track_events.account_id
visitors.visitor_id = track_events.visitor_id
guides
visitors.visitor_id = guides.audience.select.visitor_id
visitor_history
visitors.visitor_id = visitor_history.visitor_id

lastupdated

DATE-TIME

metadata_agent

OBJECT

email

STRING

ipaddress

STRING

language

STRING

metadata_auto

OBJECT

accountid

STRING

accountids

ARRAY

firstvisit

DATE-TIME

id

STRING

idhash

INTEGER

lastbrowsername

STRING

lastbrowserversion

STRING

lastoperatingsystem

STRING

lastservername

STRING

lastupdated

DATE-TIME

lastuseragent

STRING

lastvisit

DATE-TIME

nid

INTEGER

metadata_custom

OBJECT

visitor_id

STRING


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.