Skip to content

Unusual Activity in Pendo

ℹ️ Status: 🟢 Production

We had a rather significant incident with initializing Pendo for too many users on the platform. This could have led Statista paying 8000 USD extra for Pendo. I will describe what I have done to fix it in this Post Mortem.

ℹ️ Info

Ticket: MART-2364

Table of Contents

Scope

What was the problem?

I noticed that we have no information about the productId of a user's group account. This led to the problem that there was no subscriptionProductId (which is a copy of productId) in the runtime. The Pendo agent was therefore not able to filter people by the productId of the group account. The old filter mechanism was quite soft. If the given productId was undefined, it ignored that and initialized Pendo, which resulted in more users having Pendo initialized. It then said “ProductGroup has no base”. And yes, this is now the third term for the same concept: productId of the group.

What is the solution?

I made sure that the groupAccountProductId (number four) is retrieved via the /sso/userinfo endpoint. I then mapped it to subscriptionProductId and served it via the mtam/init.js script as part of the window.mtam.sso object. The Pendo agent then reads this value and compares it with the array of productId of the groups whose members are to have initialized Pendo.

What is left to be fixed?

  1. ✅ Won't fix because it was no bug – No Basic Account that was never linked to a group will get Pendo initialized. What's left is that a BA/BAP that is disconnected from their group will get Pendo initialized in 4.0 because the endpoint /sso/userinfo doesn't provide the value whether the connection is active or not (Ticket).
  2. ✅ Fixed via this – I also noticed that paid individual accounts will not get Pendo initialized, except for the discovery accounts in 3.5 (Ticket).

Fun Fact

These are the names for the concept of "productId of the group" I ran across while fixing that stuff:

  • productGroup
  • subscriptionProductId
  • ProductGroup
  • groupAccountProductId
  • master.product.id

And I think there are many more.

Authors: Phil Pieper