> ## Documentation Index
> Fetch the complete documentation index at: https://docs.buildbetter.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Pendo Integration

> Import surveys, responses, and user data from Pendo into BuildBetter

## What You Can Sync

**From Pendo to BuildBetter:**

* Guides (in-app surveys) → Surveys
* Poll responses → Survey responses
* Visitors → People
* Accounts → Companies

The Pendo integration is **one-way**: data flows from Pendo to BuildBetter only.

## Setup Instructions

### Prerequisites

* Active Pendo account with admin access
* Pendo Integration API key
* BuildBetter organization admin access

### Connection Steps

1. **Get Your Pendo API Key**
   * Log in to your Pendo account
   * Go to Settings → Integrations
   * Generate or copy your Integration Key
   * Keep this key secure

2. **Connect in BuildBetter**
   * Go to Settings → Integrations in BuildBetter
   * Find Pendo in the BI & Analytics category
   * Click "Connect"
   * Paste your Pendo Integration Key
   * Click "Save"

3. **Configure Which Guides to Sync**
   After connecting, you must configure which Pendo Guides (surveys) to import (see Configuration below)

## Configuration

### Guides to Surveys Toggle

**Toggle:** Guides to Surveys

Enable this to sync Pendo Guides as surveys in BuildBetter.

### Selecting Guides & Polls to Sync

You need to specify which Pendo data to import. The configuration has three levels:

**Level 1: App ID**

* Your Pendo App ID (find this in Pendo settings)

**Level 2: Guide IDs**

* The specific Guides you want to sync from that app
* Find Guide IDs in Pendo under Guides

**Level 3: Poll IDs (Optional)**

* Specific polls within each Guide
* Leave blank or set to `null` to sync all polls in the Guide

**Configuration Format:**

In BuildBetter Settings → Integrations → Pendo → "Guides & Polls":

```json theme={null}
[
  {
    "appId": 12345,
    "guides": [
      {
        "guideId": "guide-abc-123",
        "pollIds": null  // null = sync all polls in this guide
      },
      {
        "guideId": "guide-xyz-456",
        "pollIds": ["poll-1", "poll-2"]  // only sync specific polls
      }
    ]
  }
]
```

**How to Find These IDs:**

* **App ID**: In Pendo, go to Settings → App Details
* **Guide ID**: In Pendo Guides list, click on a guide and check the URL (e.g., `/guides/abc-123`)
* **Poll ID**: In the guide editor, inspect each poll's settings or ID

<Note>
  If you don't configure any guides, the sync will run but won't import any data.
</Note>

## Supported Poll Types

BuildBetter imports all Pendo poll types and maps them to survey questions:

| Pendo Poll Type  | BuildBetter Question Type | Description                             |
| ---------------- | ------------------------- | --------------------------------------- |
| PositiveNegative | Single Select             | Yes/No questions                        |
| NumberScale      | Rating                    | Numeric rating scales (1-5, 1-10, etc.) |
| FreeForm         | Text                      | Open-ended text responses               |
| NPSRating        | NPS                       | Net Promoter Score ratings (0-10)       |
| NPSReason        | Text                      | NPS follow-up explanations              |
| PickList         | Single Select             | Single choice from options              |
| Vote             | Single Select             | Voting questions                        |
| VoteVocItemId    | Text                      | Text-based voting responses             |

## How It Works

### Sync Schedule

The Pendo integration syncs **hourly** (every hour):

* **Incremental Sync:** Only fetches new responses since the last successful sync
* **Full Sync:** Can be manually triggered to re-import all historical data

### What Gets Imported

**For Each Configured Guide:**

1. **Guide Information**
   * Guide name and ID
   * All polls (questions) in the guide
   * Created as a Survey in BuildBetter

2. **Poll Responses**
   * Individual visitor responses
   * Response timestamps
   * Aggregated by visitor and time

3. **Visitor Data**
   * Email addresses (from metadata)
   * Full names
   * Custom metadata fields (agent and auto)
   * Associated account IDs
   * Created as People in BuildBetter

4. **Account Data**
   * Account ID and name
   * Custom metadata
   * Linked to visitors
   * Created as Companies in BuildBetter

### Data Matching

**Visitors → People:**

* Matched by email address
* Creates new person if not found
* Links to company via Pendo account ID
* Metadata fields preserved as additional data

**Accounts → Companies:**

* Matched by account ID or name
* Creates new company if not found
* Metadata stored as custom fields
* Personal domains allowed (unlike CRM integrations)

## Viewing Imported Data

### Surveys Section

1. Go to **Surveys** in BuildBetter
2. Pendo Guides appear as surveys
3. Filter by source "Pendo" to see only Pendo surveys
4. View responses and analyze trends

### People & Companies

* Pendo visitors appear in your People list
* Enriches existing people records via email matching
* Pendo accounts appear as Companies
* Custom metadata searchable and visible on records

### Using Imported Data

Once imported, you can:

* Extract Signals from survey responses
* Cross-reference Pendo feedback with call data
* Create documents from survey insights
* Build workflows based on NPS scores or feedback
* Analyze product usage alongside customer conversations

## Troubleshooting

### Connection Issues

**"Pendo authentication failed"**

* Verify your Integration Key is correct
* Check that the key hasn't been revoked in Pendo
* Ensure you have admin permissions in Pendo
* Try regenerating the API key

**Sync shows "error" status**

* Check the error message in Settings → Integrations → Pendo
* Verify Pendo API is accessible
* Reconnect with a fresh API key

### No Data Being Imported

**"No responses syncing"**

* Make sure you configured at least one guide in "Guides & Polls to Sync"
* Verify the App ID, Guide IDs, and Poll IDs are correct
* Check that the guides have actual responses in Pendo
* Ensure guides are published (not in draft mode)

**"Can't find my Guide ID"**

* In Pendo, go to Guides and click on your guide
* The Guide ID is in the URL: `/guides/{guide-id}`
* Copy the exact ID (case-sensitive)

**"Visitors not creating People"**

* Verify visitors have email addresses in Pendo metadata
* Check that visitor metadata includes `agent.email` field
* Visitors without emails will be skipped

**"Accounts not creating Companies"**

* Verify accounts have names in Pendo metadata
* Check the `metadata.agent.name` field in Pendo
* Accounts without names will use the account ID as the name

### Configuration Issues

**"Guides & Polls configuration invalid"**

* Verify your JSON syntax is correct
* Check that all IDs are strings (wrapped in quotes)
* Ensure appId is a number (no quotes)
* Use `null` (not an empty array) to sync all polls

**Example valid configuration:**

```json theme={null}
[
  {
    "appId": 12345,
    "guides": [
      {
        "guideId": "abc-123-def",
        "pollIds": null
      }
    ]
  }
]
```

**Example invalid configuration:**

```json theme={null}
[
  {
    "appId": "12345",  // ❌ Should be a number, not string
    "guides": [
      {
        "guideId": abc-123-def,  // ❌ Missing quotes around guide ID
        "pollIds": []  // ❌ Use null instead of empty array for all polls
      }
    ]
  }
]
```

### Sync Limit Issues

**"Only some responses syncing"**

* Default sync has no limit
* If configured with a limit, only that many responses will be imported per sync
* Trigger a manual sync to continue importing
* Check sync logs for the actual count

## Important Notes

### One-Way Integration

Data flows **only from Pendo to BuildBetter**. You cannot push data back to Pendo from BuildBetter.

### Manual Configuration Required

Unlike some other integrations, Pendo requires you to manually specify which Guides to sync. This gives you control over what data is imported.

### Incremental Sync

After the first sync, only new responses since the last sync are imported. This is more efficient and faster.

To re-import all historical data, trigger a "Full Sync" from the integration settings.

### Multiple Apps

You can sync from multiple Pendo apps by adding multiple entries to the configuration:

```json theme={null}
[
  {
    "appId": 11111,
    "guides": [...]
  },
  {
    "appId": 22222,
    "guides": [...]
  }
]
```

## Best Practices

**Start with One Guide**
Configure and sync one guide first to verify everything works before adding more.

**Use Guide Names for Organization**
Guide names become survey names in BuildBetter—use clear, descriptive names in Pendo.

**Sync All Polls in a Guide**
Set `"pollIds": null` to sync all polls rather than specifying individual IDs (easier to maintain).

**Review Imported Metadata**
Check that visitor emails and account names are populating correctly in Pendo's metadata fields.

**Monitor Sync Frequency**
Hourly sync is usually sufficient. Contact support if you need more frequent syncing.

## Support

Need help with Pendo integration?

* Verify your Integration Key has proper permissions
* Check that Guide IDs and Poll IDs are correct
* Review configuration JSON syntax
* Contact BuildBetter support with your Pendo App ID and any error messages
