If you’re reading this, you’re probably elbow-deep in a Pendo rollout, staring down an analytics dashboard that’s either blank, broken, or just plain weird. This guide is for hands-on folks—developers, product managers, anyone tasked with making Pendo actually work. You want answers, not cheerleading. Let’s cut through the noise and fix what’s wrong.
1. Confirm the Pendo snippet is loading (seriously, check this first)
Why it matters: If the snippet isn’t firing on your pages, nothing else matters. Almost every Pendo issue starts here.
How to check:
- Open your app in Chrome.
- Hit F12 to open DevTools. Go to the “Network” tab.
- Reload the page. Search for “pendo.js” or “data.pendo.io”.
- If you see those requests and they return 200 OK, it’s loading.
- Still not sure? In the Console tab, type window.pendo
and hit Enter. If it returns an object, Pendo’s loaded. If it’s undefined
, you’ve got a problem.
Common issues: - The snippet is missing on some pages (especially with SPAs or iframes). - Ad blockers or privacy extensions are blocking Pendo. - Environment variables or deployment settings are swapping out the snippet.
Pro tip: Don’t trust that a snippet is “in the codebase.” See it in the browser, or it doesn’t count.
2. Make sure visitor and account IDs are being set correctly
Why it matters: If these aren’t set, Pendo can’t track users or companies. You’ll get messed-up analytics, guides won’t target the right people, user lists are useless, and so on.
How to check: - Find your Pendo initialization code. It looks something like: js pendo.initialize({ visitor: { id: 'USER_ID', ... }, account: { id: 'ACCOUNT_ID', ... } });
- In DevTools, run
pendo.getVisitorId()
andpendo.getAccountId()
. If they returnnull
orundefined
, your IDs aren’t set. - Go to Pendo’s “People” section. If you see lots of “Anonymous” users, something’s wrong.
Common mistakes:
- IDs are missing, set to null
, or hardcoded to a placeholder.
- IDs are changing on every page load (maybe you’re reinitializing Pendo too often).
- You’re sending PII (personally identifiable info) in the ID field, which is a bad practice and can break things with privacy tools.
What to do: - Double-check that you’re passing persistent, unique, non-sensitive IDs for both visitor and account. - Only initialize Pendo once per session, not on every route change.
3. Double-check guide targeting and activation
Why it matters: Guides not showing up is one of the top complaints, and it’s almost always a targeting or activation issue—not a bug.
How to troubleshoot: - In the Pendo UI, check the guide’s segment. Is your test user actually in that segment? - Guides target specific page URLs or CSS selectors. If your app uses dynamic URLs or content, make sure the rules match what’s actually in the DOM. - Try manually activating the guide using the Guide Debugger (Pendo browser extension). See if it appears.
Watch out for: - Wildcard URL rules that don’t match your actual routes. - CSS selectors that change with every deploy (e.g., auto-generated class names from CSS-in-JS tools). - Activation events that never actually fire.
Pro tip: If a guide doesn’t show up, it’s almost never a “bug.” It’s usually a mismatched segment, page rule, or an activation event that’s not firing as expected.
4. Fix missing or weird page tagging
Why it matters: Page tagging tells Pendo what’s what in your app. If pages aren’t tagged right, your analytics are junk.
How to check: - In the Pendo UI, check the “Pages” section. - Click into a page. Are the URL rules too broad, too narrow, or just wrong? - Use the Pendo browser extension to see what page Pendo thinks you’re on.
Common issues:
- Single Page Apps (SPAs) don’t trigger navigation events, so Pendo doesn’t know to update the page context. You may need to call pendo.updatePage()
manually on route changes.
- Dynamic URLs (e.g., /users/123/edit
) aren’t covered by static rules. Use wildcards or regex, but keep them tight.
- If your app uses hash routing (#
in URLs), Pendo can misinterpret the route. Make sure your page rules account for this.
What to ignore: Don’t bother with ultra-granular page tagging unless you really need it. Focus on the flows and screens that actually matter.
5. Validate event tracking and custom metadata
Why it matters: If you care about funnels, feature adoption, or anything more advanced, events and metadata are essential. They’re also easy to mess up.
How to check:
- In your Pendo setup code, look for pendo.track()
. Make sure you’re calling it at the right times, with the right event names.
- In Pendo’s UI, check if your tracked events are showing up as expected.
- For metadata (like user roles, subscription plans), check that you’re passing these in the visitor/account objects.
Common mistakes: - Firing events before Pendo is initialized. The call just gets lost. - Sending events with inconsistent names or missing properties. - Overloading events with way too much data—Pendo isn’t a data warehouse.
What works: - Start with a short list of high-value events. Add more later if you need them. - Use clear, consistent event names. Don’t get cute or overly clever.
6. Watch out for conflicts with other analytics tools
Why it matters: Tools like Segment, Google Analytics, or Mixpanel sometimes step on each other’s toes—especially with SPAs.
What to look for: - Are you loading Pendo and other analytics tools in the right order? - Are you accidentally initializing the same tool multiple times? - Are there race conditions where Pendo loads before your user data is available?
How to fix: - Make sure user data is available before initializing Pendo. - If you’re using a tag manager, check for duplicate snippets. - Run only one instance of Pendo per page. Multiple initializations break everything.
Pro tip: Don’t try to send every single event to every analytics tool. Pick your battles.
7. Test across browsers and devices
Why it matters: Pendo’s a JavaScript tool, so browser quirks, ad blockers, and privacy settings can break things in the real world.
How to test: - Check your app in Chrome, Firefox, Safari, and Edge. - Try using incognito/private windows and see if Pendo still works. - Test with common ad blockers (uBlock, Ghostery, etc.) enabled.
What to expect: - Some users will always be invisible to Pendo because of blockers. It’s normal. Don’t waste days chasing ghost traffic.
8. Use the Pendo debugger and support tools
Why it matters: You can waste hours guessing, or you can use tools specifically built for troubleshooting.
How to use:
- Install the Pendo browser extension (Guide Debugger).
- Use it to see guide activation, page tagging, and event firing in real time.
- Use the “Show Debug Info” console command: pendo.enableDebugging()
will spit out logs in your browser console.
9. Know when to escalate—and what to send support
Why it matters: Sometimes, it really is a bug or a backend issue. But most support tickets get bounced back because the basics weren’t checked.
Before you escalate: - Collect clear screenshots of your snippet, initialization code, and browser console output. - Document exactly what you did, what you expected, and what actually happened. - Note user IDs, account IDs, browser versions, and steps to reproduce. - Include any relevant logs from the Pendo debugger.
What to skip: Don’t just say “Pendo is broken.” Be specific, or you’ll waste another round of emails.
Keep it simple and iterate
Pendo is powerful, but most of the problems come down to a handful of things: snippet not loading, IDs not set, guides not targeting right, or pages not tagged. Don’t overcomplicate it. Start with the basics, get those working, and only then layer on the fancy stuff. Test, tweak, and don’t be afraid to ignore features you don’t need. When in doubt, keep it simple and move fast.