npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@datafire/pendo

v3.0.0

Published

DataFire integration for Pendo Feedback API

Downloads

20

Readme

@datafire/pendo

Client library for Pendo Feedback API

Installation and Usage

npm install --save @datafire/pendo
let pendo = require('@datafire/pendo').create({
  "userApiKey (query parameter)": "",
  "userApiKey (request header)": ""
});

.then(data => {
  console.log(data);
});

Description

Who is this for?

This documentation is for developers creating their own integration with Feedback's API. If you are doing a standard integration, there's a really easy Javascript integration that you should know about before you go to the effort of building your own integration.

Authentication

API calls generally need to be authenticated. Generate an API Key at https://feedback.pendo.io/app/#/vendor/settings?section=integrate. This key should then be added to every request as a request header named 'auth-token' (preferred), or as a query parameter named 'auth-token'.

Endpoint

API endpoint is https://api.feedback.eu.pendo.io / https://api.feedback.us.pendo.io depending where your datacenter is located.

Notes

API endpoints are being added to this documentation as needed by customers. If you don't see an endpoint you need please contact support and if it exists we'll publish the docs here. The 'try it out' feature on this documentation page will probably be blocked by your browser because the Access-Control-Allow-Origin header has its value set by the Feedback server depending on your hostname.

Generating client code

This documentation is automatically generated from an OpenAPI spec available here. You can use Swagger to auto-generate API client code in many languages using the Swagger Editor

Actions

accounts.get

Query accounts

pendo.accounts.get({}, context)

Input

  • input object
    • limit number: Limit the number of records returned
    • start number: Offset to start at
    • order_dir string (values: asc, desc): The sort direction
    • order_by string (values: churned, last_seen, name): The field to use for sort

Output

accounts.id.delete

This removes most traces of an Accounts existence from the system.

pendo.accounts.id.delete({
  "id": 0
}, context)

Input

  • input object
    • id required number

Output

accounts.id.get

Get an Account

pendo.accounts.id.get({
  "id": 0
}, context)

Input

  • input object
    • id required number: Account ID (generated by Feedback)

Output

accounts.id.put

Update an Account

pendo.accounts.id.put({
  "id": 0
}, context)

Input

  • input object
    • id required number: Account ID (generated by Feedback)
    • account object
      • monthly_value number
      • name string
      • status string (values: paying, prospect, not_paying)

Output

Output schema unknown

accounts.id.tags.delete

Removes all custom tags associated with the Account

pendo.accounts.id.tags.delete({
  "id": 0
}, context)

Input

  • input object
    • id required number: Account ID (generated by Feedback)

Output

Output schema unknown

accounts.id.tags.get

Get custom Account tags

pendo.accounts.id.tags.get({
  "id": 0
}, context)

Input

  • input object
    • id required number: Account ID (generated by Feedback)

Output

Output schema unknown

accounts.id.tags.post

Overwrite current custom Account tags with the given tags

pendo.accounts.id.tags.post({
  "id": 0,
  "tags": []
}, context)

Input

  • input object
    • id required number: Account ID (generated by Feedback)
    • tags required Tags

Output

Output schema unknown

comments.get

get a list of Comment records

pendo.comments.get({
  "case_id": 0
}, context)

Input

  • input object
    • case_id required integer: case_id

Output

features.get

Query features

pendo.features.get({}, context)

Input

  • input object
    • limit number: Limit the number of records returned
    • start number: Offset to start at
    • order_dir string (values: asc, desc): The sort direction
    • is_private boolean: Filter by whether the features are shown/hidden from customer, if supplied.
    • wanted_by integer: Filter by User ID, if supplied.
    • order_by string (values: title, created_at, updated_at, declined_at, developing_at, planned_at, released_at, waiting_at, deleted_at): The field to use for sort
    • tags string: Tags to limit results by. Multiple tags can be provided via comma delimeted string. Tags with contexts can be used. E.g. "....&tags=TagExample,Multi:TagThis,Multi:TagThat".
    • products string: Products to limit results by. Comma delimeted string of either ids or names. E.g. "...&products=1,2,3" or "...products=Product1,Product2".

Output

features.id.get

Get a Feature by ID

pendo.features.id.get({
  "id": 0
}, context)

Input

  • input object
    • id required integer: ID of the feature

Output

features.id.tags.delete

Removes all custom tags associated with the Feature

pendo.features.id.tags.delete({
  "id": 0
}, context)

Input

  • input object
    • id required number: Feedback's Feature ID

Output

Output schema unknown

features.id.tags.get

Get custom Feature tags

pendo.features.id.tags.get({
  "id": 0
}, context)

Input

  • input object
    • id required number: Account ID (generated by Feedback)

Output

Output schema unknown

features.id.tags.post

Overwrite current custom Feature tags with the given tags

pendo.features.id.tags.post({
  "id": 0,
  "tags": []
}, context)

Input

  • input object
    • id required number: Feedback's Feature ID
    • tags required Tags

Output

Output schema unknown

health_check.ping.get

Provides a response for automatic checks that the API and load balancers are healthy

pendo.health_check.ping.get(null, context)

Input

This action has no parameters

Output

Output schema unknown

hooks.post

Use this endpoint to subscribe to webhooks.

pendo.hooks.post({
  "data": {}
}, context)

Input

  • input object
    • data required object
      • event string: The event field can contain one of the following values-
      • target_url string: The target URL where the events will be sent to.

Output

Output schema unknown

hooks.unsubscribe.post

Use this endpoint to unsubscribe from a webhook

pendo.hooks.unsubscribe.post({
  "data": {}
}, context)

Input

  • input object
    • data required object
      • target_url string

Output

Output schema unknown

search.get

Search features

pendo.search.get({
  "scope": "",
  "q": ""
}, context)

Input

  • input object
    • scope required string (values: feature): Specifies the type of entity being searched for. Must be set to 'feature'
    • q required string: The search term.
    • status string (values: new, waiting, planned, developing, released, declined): A comma seperated list of status values to filter by, if required. Valid values: 'new', 'waiting', 'planned', 'developing', 'released', 'declined'.
    • tags string: Tags to limit results by - only applies when scope is 'case' or 'feature'. Multiple tags can be provided via comma delimeted string. Tags with contexts can be used. E.g. "....&tags=TagExample,Multi:TagThis,Multi:TagThat".
    • products string: Products to limit results by. Comma delimeted string of either ids or names. E.g. "...&products=1,2,3" or "...products=Product1,Product2".

Output

users.get

get a list of User records

pendo.users.get({
  "role": ""
}, context)

Input

  • input object
    • role required string (values: endUser, vendorUser): role
    • account integer: Filter by Account ID, if supplied. Only useful if role param is endUser
    • limit number: Limit the number of records returned
    • order_by string: The field to use for sort
    • order_dir string (values: asc, desc): The sort direction

Output

  • output array

users.post

Replicates much of the functionality of the widget ping, allowing callers to create or update User records for End Users. If you call this with a new User and/or Account, the record will be created. If you call for an existing User/Account, the record will be updated. You can also call this at EndUser login time, or more frequently, to notify Feedback that the EndUser has been seen. This keeps Feedback's 'last seen' data fresh and updates your reporting. This endpoint is used by our Zapier integration. The only value allowed in user.roles is 'endUser'. The id you supply here for the User and Account should be your own unique id, which Feedback calls external_id. This probably isn't the same as Feedback's id seen elsewhere in the API.

pendo.users.post({
  "data": {}
}, context)

Input

Output

Output schema unknown

users.invite_end_user.post

Invite an EndUser (customer)

pendo.users.invite_end_user.post({
  "data": {
    "account_status": ""
  }
}, context)

Input

  • input object
    • data required object
      • account_external_id string
      • account_name string
      • account_status required string (values: prospect, not_paying, paying)
      • email string
      • full_name string
      • monthly_value number
      • send_invite boolean
      • user_external_id string

Output

Output schema unknown

users.invite_vendor_user.post

Invite a VendorUser (Team member)

pendo.users.invite_vendor_user.post({
  "data": {
    "email": "",
    "full_name": ""
  }
}, context)

Input

  • input object
    • data required object
      • email required string
      • external_id string
      • full_name required string
      • permission_group_id number
      • team string

Output

Output schema unknown

users.search.get

Find a User with a query

pendo.users.search.get({}, context)

Input

  • input object
    • external_id string: Find using your external ID, rather than the ID generated by Feedback
    • email string: Find user by their email address. Role param must be specified when using this option
    • role string (values: endUser, vendorUser): Users role ('vendorUser' or 'endUser'). Only useful when finding a user by their email address

Output

users.id.delete

This removes most traces of a User's existence from the system. For an EndUser you might want to consider just letting them churn after a period of inactivity.

pendo.users.id.delete({
  "id": 0
}, context)

Input

  • input object
    • id required number

Output

users.id.get

Get a User record

pendo.users.id.get({
  "id": 0
}, context)

Input

  • input object
    • id required number

Output

users.id.put

Update a User

pendo.users.id.put({
  "id": 0
}, context)

Input

  • input object
    • id required number: Feedback's User ID
    • user object
      • email string
      • external_id string
      • name string
      • permission_group_id number: only valid for users with role 'vendorUser'

Output

users.id.tags.delete

Removes all custom tags associated with the User

pendo.users.id.tags.delete({
  "id": 0
}, context)

Input

  • input object
    • id required number: Feedback's User ID

Output

Output schema unknown

users.id.tags.get

Get custom User tags

pendo.users.id.tags.get({
  "id": 0
}, context)

Input

  • input object
    • id required number: Feedback's User ID

Output

Output schema unknown

users.id.tags.post

Overwrite current custom User tags with the given tags

pendo.users.id.tags.post({
  "id": 0,
  "tags": []
}, context)

Input

  • input object
    • id required number: Feedback's User ID
    • tags required Tags

Output

Output schema unknown

vendor_users.post

the POST /vendor_users is very similar to the POST /users/invite_vendor_user but /vendor_users is intended for consumers to refresh team member data periodically, rather than just a one-off user creation.

pendo.vendor_users.post({
  "data": {}
}, context)

Input

  • input object
    • data required object
      • email string
      • external_id string
      • full_name string
      • permission_group_id number
      • team string: A comma seperated list of teams the user belongs to

Output

Output schema unknown

votes.get

pendo.votes.get({}, context)

Input

  • input object
    • user_id integer: Include only votes by User that voted on a feature.
    • feature_id integer: Include only votes for Feature with this Feature ID
    • positive boolean: Include only votes that are positive
    • negative boolean: Include only votes that are negative
    • start number: Offset to start at
    • limit number: Limit the number of records returned

Output

  • output array

votes.post

Automatically subscribes/unsubscribes the User to the specifed feature depending on the quantity value

pendo.votes.post({
  "data": {}
}, context)

Input

  • input object
    • data required object

Output

Output schema unknown

Definitions

Account

  • Account object
    • created_at string
    • external_id string: ID for the Account, provided by the Feedback Customer
    • id string
    • is_paying boolean
    • monthly_value number
    • name string
    • status string

AccountWithTags

  • AccountWithTags object
    • created_at string
    • id string
    • is_paying boolean
    • monthly_value number
    • name string
    • status string
    • tags Tags

Comment

  • Comment object
    • created_at string
    • feature_id integer
    • is_private boolean: Is this Comment hidden from EndUsers?
    • text string
    • updated_at string
    • user_id integer

EndUserPing

  • EndUserPing object
    • account AccountWithTags
    • return_url string
    • user object
      • allowed_products Products
      • created_at string
      • email string
      • full_name string
      • id string
      • roles string (values: endUser)
      • tags Tags

Feature

  • Feature object
    • app_url string: URL for this Feature
    • created_at string
    • created_by_user_id integer
    • declined_at string
    • description string
    • developing_at string
    • effort integer: How much Effort is assigned to the development of this Feature. Not visible to EndUsers
    • form_entry string: a JSON serialized version of the Form containing the description and other fields for this Feature.
    • id number
    • is_private boolean: Is this Feature hidden from EndUsers?
    • merged_to_feature_id integer: If this Feature was merged into another, the ID of the preserved Feature
    • planned_at string
    • products array
      • items string: Products associated with this Feature
    • released_at string
    • resolution string: The latest Resolution set by the VendorUser
    • resolved_by_user_id integer
    • status string (values: new, waiting, planned, developing, released, declined)
    • status_changed_at string
    • tags Tags
    • title string
    • updated_at string
    • updated_by_user_id integer
    • uploads array
      • items string
    • vendor_id integer
    • view_count integer: How many times has this Feature been viewed. May only be visible to VendorUsers, depending on config
    • waiting_at string

FeatureVote

  • FeatureVote object
    • feature_id string
    • quantity integer: Value between -1 and 1000000. -1 indicates that the User is "Not Interested" in the feature.

Products

  • Products array: Supplied as an array of maps where each map describes an existing or new product e.g [{id:exising_product_id, name:existing name}, {id:new_product_id, name: new product name}].
    • items string

Tags

  • Tags array: Simple tags are supplied as an array of Strings e.g ['Foo', 'Bar'].
    • items string

User

  • User object
    • account UserAccount
    • created_at string
    • email string
    • external_id string
    • id string
    • name string
    • roles string (values: endUser)

UserAccount

  • UserAccount object
    • id string
    • monthly_value number
    • name string
    • status string (values: paying, prospect, not_paying)

Vote

  • Vote object
    • created_at string
    • feature_id integer
    • quantity integer: A negative number indicates that the User has indicated "Not Interested" in a Features. Between 0 and 1000000 is the User's current prioritization of the Feature.
    • updated_at string
    • user_id integer