@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
- limit
Output
- output
array
- items Account
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
- id required
Output
- output Account
accounts.id.get
Get an Account
pendo.accounts.id.get({
"id": 0
}, context)
Input
- input
object
- id required
number
: Account ID (generated by Feedback)
- id required
Output
- output Account
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)
- monthly_value
- id required
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)
- id required
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)
- id required
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
- id required
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
- case_id required
Output
- output
array
- items Comment
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".
- limit
Output
- output
array
- items Feature
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
- id required
Output
- output Feature
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
- id required
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)
- id required
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
- id required
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.
- event
- data required
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
- target_url
- data required
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".
- scope required
Output
- output
array
- items Feature
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
- role required
Output
- output
array
- items User
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
- input
object
- data required EndUserPing
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
- account_external_id
- data required
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
- email required
- data required
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
- external_id
Output
- output User
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
- id required
Output
- output User
users.id.get
Get a User record
pendo.users.id.get({
"id": 0
}, context)
Input
- input
object
- id required
number
- id required
Output
- output User
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'
- email
- id required
Output
- output User
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
- id required
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
- id required
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
- id required
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
- email
- data required
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
- user_id
Output
- output
array
- items Vote
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
- user_id
string
- votes
array
- items FeatureVote
- user_id
- data required
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
- created_at
AccountWithTags
- AccountWithTags
object
- created_at
string
- id
string
- is_paying
boolean
- monthly_value
number
- name
string
- status
string
- tags Tags
- created_at
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
- created_at
EndUserPing
- EndUserPing
object
- account AccountWithTags
- return_url
string
- user
object
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
- items
- 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
- items
- 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
- app_url
FeatureVote
- FeatureVote
object
- feature_id
string
- quantity
integer
: Value between -1 and 1000000. -1 indicates that the User is "Not Interested" in the feature.
- feature_id
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
- items
Tags
- Tags
array
: Simple tags are supplied as an array of Strings e.g ['Foo', 'Bar'].- items
string
- items
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)
- id
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
- created_at