Troubleshoot a direct Pendo installation

Last updated:

This article covers solutions to common issues that arise with installing Pendo using the install script. For information about installation, see Plan your direct implementation and the Developer's guide to implementing Pendo using the install script.

Error message in console: No API key configured

This message is usually a result of an error in the initialization code. Often, it means that one or more variables being passed to the initialization code is unavailable when you call pendo.initialize(). Check that values exist before calling pendo.initialize().

The error could also mean you're not calling pendo.initialize() on the page. Review our installation documentation and your installation to ensure that you're initializing Pendo correctly.

Warning in console: The current visitor is not identified and will be treated as "anonymous"

You get this warning when no value was passed to the Visitor ID field. When no value is passed, resulting in a blank string being passed, the Pendo agent creates an anonymous Visitor ID. In general, only users that aren't signed in should have an anonymous ID. If your users are signed in, you should be passing a stable identifier as the Visitor ID. 

Data not appearing in Pendo

Data doesn't appear instantly. It's batch aggregated at the top of every hour and can take up to 15 minutes past the hour to fully appear in the Pendo UI. If you still don't see data in Pendo, try the following.

Confirm that your API Key has been included in the install script. If you copy the code block from your Install Settings page, the API Key is already included.

Ensure that you're following data syntax rules. Don't send null values for any fields. If you don't have data for a field, don't send that field. Don't include a space in any custom fields added in the install script. This field must start with a letter or underscore and can follow with any combination of letters or numbers, as well as an underscore. For more information, see Configure visitor and account metadata.

Message: No logged-in users

During setup, the message "No logged in users" means that Pendo is receiving basic data from your application (specifically, that Pages and Features are being used in your app), but there's no user-identifying information. While you can still use Pendo without this data, the functionality is greatly reduced.

This could be caused by initializing Pendo before all of the variables you send to Pendo from your application are fully populated. For instructions on how to resolve this issue, see Example 2. Conditionally initializing after a variable is populated in the Conditionally initialize Pendo article.

In the install script, the data is either not being passed or it's structured incorrectly in the Visitor block or the account block. Here is the template for this code:

visitor: {
  id:              'VISITOR-UNIQUE-ID'   // Required if user is logged in
  // email:        // Recommended if using Pendo Feedback, or NPS Email
  // full_name:    // Recommended if using Pendo Feedback
  // role:         // Optional

  // You can add any additional visitor level key-values here,
  // as long as it's not one of the above reserved names.
},

account: {
  // id:           'ACCOUNT-UNIQUE-ID' // Highly recommended
  // name:         // Optional
  // is_paying:    // Recommended if using Pendo Feedback
  // monthly_value:// Recommended if using Pendo Feedback
  // planLevel:    // Optional
  // planPrice:    // Optional
  // creationDate: // Optional

  // You can add any additional account level key-values here,
  // as long as it's not one of the above reserved names.
}

This is an example of what the data could look like in your code:

visitor: {
  id:              $user.ID,
  email:           $user.email,
  full_name:       $user.full_name,
  role:            $user.accessLevel,
  creationDate:    $user.creationDate
},

account: {
  id:           $account.ID,
  name:         $account.name,
  is_paying:    $account.is_paying,
  monthly_value:$account.monthly_value,
  planLevel:    $account.subscriptionCost,
  isFoo:        $account.isFoo
}

This is an example of what the code would look like after it is processed and sent to Pendo.

visitor: {
  id:              62343,
  email:           john@doe.com,
  full_name:       John Doe,
  role:            admin,
  creationDate:    1404326949156
},

account: {
  id:           17,
  name:         Acme, inc,
  is_paying:    true,
  monthly_value:99.99,
  planLevel:    995,
  isFoo:        false
Was this article helpful?
0 out of 2 found this helpful