Pendo
Datafly Signal delivers product analytics events to Pendo server-to-server, enriching visitor and account profiles with backend-resolved traits.
This blueprint is currently alpha — schema and behaviour may change before GA.
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 (alpha). It ships with a B2B / SaaS variant covering pages, product views, and purchases — adapt the blueprint to your feature-usage event taxonomy.