Pendo
Datafly Signal delivers product analytics events to Pendo server-to-server, enriching visitor and account profiles with backend-resolved traits.
Why route Pendo through Datafly Signal
- Your numbers stop depending on what the browser allows. Client-side analytics loses every visit where the tag is blocked or the page unloads early. Signal delivers from the server, so Pendo receives the complete event stream.
- Client IP and user agent are carried in the payload. Both are taken from the original visitor request rather than your server, which is what Pendo needs to attribute the event to the right session.
- One consent decision governs every destination. Pendo is gated by the same consent state as the rest of your stack, so a withdrawal applies everywhere at once.
Prerequisites
Before configuring Pendo in Signal, you need a Pendo subscription, the API key for the subscription, and (optionally) the integration key for the Track API.
Get your Pendo credentials
Step 1: Sign in to Pendo
- Go to app.pendo.io and sign in.
- Confirm you have admin access to the subscription you want to send events into.
Step 2: Find your Subscription API Key
- Click the gear icon and open App Details and Install Settings.
- Locate the API Key — this is the value embedded in your Pendo install snippet.
- Copy it.
Step 3: Generate a Track API Integration Key
- In Integrations, open the Track Events (or similar) configuration.
- Click Generate Integration Key.
- Give the key a descriptive name (e.g. “Datafly Signal”) and copy the value.
The Track API integration key authenticates server-to-server event posts. It is distinct from the JavaScript install API key. [verify with current vendor docs]
Step 4: Confirm your data region
Pendo subscriptions are provisioned in either US or EU data centres. The endpoint base differs between regions; use the one matching your subscription. [verify with current vendor docs]
Configure the integration in Signal
Configuration Fields
| Field | Required | Description |
|---|---|---|
api_key | Yes | The subscription API key from App Details and Install Settings. |
integration_key | Yes | The Track API integration key generated in Step 3. |
data_region | No | us (default) or eu. Determines the Track API endpoint. |
Management UI Setup
- Go to Integrations in the sidebar.
- Open the Integration Library tab.
- Find Pendo or filter by Analytics.
- Click Install and enter your API Key, Integration Key, and Data Region.
- Click Install Integration.
Management API Setup
curl -X POST http://localhost:8084/v1/admin/integration-catalog/pendo/install \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Pendo",
"variant": "b2b_saas",
"config": {
"api_key": "your_subscription_api_key",
"integration_key": "your_track_integration_key",
"data_region": "us"
},
"delivery_mode": "server_side"
}'Event Mapping
The B2B / SaaS variant maps the following Datafly events to Pendo event names:
| Datafly Event | Pendo Event | Notes |
|---|---|---|
page | page_view | Page URL, title, referrer as event properties |
Product Viewed | product_viewed | Product details as event properties |
Order Completed | purchase | Revenue, order ID, items as event properties |
| Custom events | Passed through | Custom event names sent as-is |
For B2B / SaaS workloads, replace e-commerce events with feature usage events (e.g. feature_used, trial_started, subscription_upgraded) — Pendo’s strength is product engagement, not transactional analytics.
Identity
The default blueprint forwards the following identifiers to Pendo:
| Source | Pendo field |
|---|---|
user_id | visitorId |
anonymous_id | anonymousId |
context.ip | ip |
context.user_agent | user_agent |
context.locale | locale |
For account-level analytics, set the Pendo accountId via traits in datafly.identify() (e.g. accountId: "acme-corp"). This links visitor events to their parent account in Pendo.
Consent
Default consent category: analytics.
Verify it’s working
- In the Signal Management UI, open your Pendo integration and watch the Live Events stream as you trigger events on your site or app.
- Confirm 200 responses from the Pendo Track API.
- In Pendo, open Visitors and search for the visitor by
visitorId— events appear in the activity timeline within minutes.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
401 authentication error | Invalid integration key | Regenerate the Track API integration key in Pendo. |
404 subscription not found | Wrong data region | Confirm data_region (us vs eu) matches your subscription. |
| Events not appearing on visitor | visitorId mismatch | Ensure the same user_id is passed to datafly.identify() and to pendo.initialize() in the browser. |
| Account-level metrics empty | accountId not set | Include accountId as a trait in datafly.identify() to link visitors to accounts. |
| Reserved field warnings | Property name collision | Pendo reserves some property names — rename custom properties that clash. [verify with current vendor docs] |
Blueprint
The Pendo blueprint version is 0.1.0. It ships with a B2B / SaaS variant covering pages, product views, and purchases — adapt the blueprint to your feature-usage event taxonomy.