This integration is powered by Singer's UserVoice tap. For support, visit the GitHub repo or join the Singer Slack.
UserVoice integration summary
Stitch’s UserVoice integration replicates data using the UserVoice API. Refer to the Schema section for a list of objects available for replication.
UserVoice feature snapshot
A high-level look at Stitch's UserVoice (v1) integration, including release status, useful links, and the features supported in Stitch.
STITCH | |||
Release status |
Released on September 19, 2018 |
Supported by | |
Stitch plan |
Standard |
API availability |
Available |
Singer GitHub repository | |||
REPLICATION SETTINGS | |||
Anchor Scheduling |
Supported |
Advanced Scheduling |
Supported |
Table-level reset |
Unsupported |
Configurable Replication Methods |
Unsupported |
DATA SELECTION | |||
Table selection |
Supported |
Column selection |
Supported |
Select all |
Supported |
||
TRANSPARENCY | |||
Extraction Logs |
Supported |
Loading Reports |
Supported |
Connecting UserVoice
UserVoice setup requirements
To set up UserVoice in Stitch, you need:
-
Access to Settings in your UserVoice account. This is required to generate API credentials for Stitch.
Step 1: Generate UserVoice API credentials
Step 1.1: Create a Stitch UserVoice API client
- Sign into your UserVoice account.
- Click Settings, which is in the bottom left corner.
- Click Integrations.
- Click UserVoice API keys.
- Click the Add API key button.
- In the window that displays, fill in the fields as follows:
- Name - Enter a name for the API client. For example:
stitch
- Trusted - Check the checkbox.
- Name - Enter a name for the API client. For example:
- When finished, click the Add API key to create the API client.
Step 1.2: Locate API credentials
The API client will display on the page after it’s created. In the image below the API key and API Secret are highlighted:
Leave this page open for now - you’ll need it to complete the next step in Stitch.
Step 2: Add UserVoice as a Stitch data source
- Sign into your Stitch account.
-
On the Stitch Dashboard page, click the Add Integration button.
-
Click the UserVoice icon.
-
Enter a name for the integration. This is the name that will display on the Stitch Dashboard for the integration; it’ll also be used to create the schema in your destination.
For example, the name “Stitch UserVoice” would create a schema called
stitch_uservoice
in the destination. Note: Schema names cannot be changed after you save the integration. - In the UserVoice Subdomain field, enter your UserVoice subdomain. For example: If the full subdomain were
stitch.uservoice.com
, you’d enterstitch
into this field. - In the UserVoice API Key field, paste your UserVoice API key.
- In the UserVoice API Secret field, paste the API secret.
Step 3: Define the historical replication start date
The Sync Historical Data setting defines the starting date for your UserVoice integration. This means that data equal to or newer than this date will be replicated to your data warehouse.
Change this setting if you want to replicate data beyond UserVoice’s default setting of 1 year. For a detailed look at historical replication jobs, check out the Syncing Historical SaaS Data guide.
Step 4: Create a replication schedule
In the Replication Frequency section, you’ll create the integration’s replication schedule. An integration’s replication schedule determines how often Stitch runs a replication job, and the time that job begins.
UserVoice integrations support the following replication scheduling methods:
-
Advanced Scheduling using Cron (Advanced or Premium plans only)
To keep your row usage low, consider setting the integration to replicate less frequently. See the Understanding and Reducing Your Row Usage guide for tips on reducing your usage.
Step 5: Set objects to replicate
The last step is to select the tables and columns you want to replicate. Learn about the available tables for this integration.
Note: If a replication job is currently in progress, new selections won’t be used until the next job starts.
For UserVoice integrations, you can select:
-
Individual tables and columns
-
All tables and columns
Click the tabs to view instructions for each selection method.
- In the integration’s Tables to Replicate tab, locate a table you want to replicate.
-
To track a table, click the checkbox next to the table’s name. A blue checkmark means the table is set to replicate.
-
To track a column, click the checkbox next to the column’s name. A blue checkmark means the column is set to replicate.
- Repeat this process for all the tables and columns you want to replicate.
- When finished, click the Finalize Your Selections button at the bottom of the screen to save your selections.
- Click into the integration from the Stitch Dashboard page.
-
Click the Tables to Replicate tab.
- In the list of tables, click the box next to the Table Names column.
-
In the menu that displays, click Track all Tables and Fields:
- Click the Finalize Your Selections button at the bottom of the page to save your data selections.
Initial and historical replication jobs
After you finish setting up UserVoice, its Sync Status may show as Pending on either the Stitch Dashboard or in the Integration Details page.
For a new integration, a Pending status indicates that Stitch is in the process of scheduling the initial replication job for the integration. This may take some time to complete.
Initial replication jobs with Anchor Scheduling
If using Anchor Scheduling, an initial replication job may not kick off immediately. This depends on the selected Replication Frequency and Anchor Time. Refer to the Anchor Scheduling documentation for more information.
Free historical data loads
The first seven days of replication, beginning when data is first replicated, are free. Rows replicated from the new integration during this time won’t count towards your quota. Stitch offers this as a way of testing new integrations, measuring usage, and ensuring historical data volumes don’t quickly consume your quota.
UserVoice table reference
Schemas and versioning
Schemas and naming conventions can change from version to version, so we recommend verifying your integration’s version before continuing.
The schema and info displayed below is for version 1 of this integration.
This is the latest version of the UserVoice integration.
Table and column names in your destination
Depending on your destination, table and column names may not appear as they are outlined below.
For example: Object names are lowercased in Redshift (CusTomERs
> customers
), while case is maintained in PostgreSQL destinations (CusTomERs
> CusTomERs
). Refer to the Loading Guide for your destination for more info.
categories
Replication Method : |
Key-based Incremental |
Replication Key |
updated_at |
Primary Key |
id |
API endpoint : |
The categories
contains info about the various categories in your UserVoice account. Categories are used to organize suggestions in a forum.
id
The category ID. Reference: |
|
updated_at
The time the category was last updated. |
|
created_at
The time the category was created. |
|
name
The name of the category. |
|
suggestions_count
The total number of suggestions associated with the category. |
|
open_suggestions_count
The total number of open suggestions associated with the category. |
|
links
Details about the links associated with the category.
|
comments
Replication Method : |
Key-based Incremental |
Replication Key |
updated_at |
Primary Key |
id |
API endpoint : |
The comments
table contains info about the comments forum users have made.
id
The comment ID. |
||
updated_at
The time the comment was last updated. |
||
created_at
The time the comment was created. |
||
body
The plaintext body of the comment. |
||
body_mime_type
The MIME type of the comment body. |
||
state
The state of the comment. For example: |
||
inappropriate_flags_count
The count of times the comment has been flagged as inappropriate. |
||
is_admin_comment
If |
||
channel
The channel used to create the comment. |
||
links
Details about the links associated with the comment.
|
external_accounts
Replication Method : |
Key-based Incremental |
Replication Key |
updated_at |
Primary Key |
id |
API endpoint : |
The external_accounts
table contains info about accounts from external systems.
id
The ID of the external account as it is in UserVoice. Reference: |
updated_at
The time the external account was last updated. |
created_at
The time the external account was created in UserVoice. |
external_id
The ID of the account in the external system. |
is_blocker
If |
ltv
The Lifetime Value (LTV) of the external account, represented in USD. |
ltv_cents
The Lifetime Value (LTV) of the external account, represented in USD as cents. |
mrr
The Monthly Recurring Revenue (MRR) of the external account, represented in USD. |
mrr_cents
The Monthly Recurring Revenue (MRR) of the external account, represented in USD as cents. |
name
The name of the external account. |
nps
The NPS rating associated with the external account. |
plan
The plan associated with the external account. |
requests_count
The number of requests associated with the external account. |
supported_ideas_count
The number of supported ideas associated with the external account. |
users_count
The number of users associated with the external account. |
external_users
Replication Method : |
Key-based Incremental |
Replication Key |
updated_at |
Primary Key |
id |
API endpoint : |
The external_users
table contains info about users from external systems.
id
The external user’s ID in UserVoice. Reference: |
||
updated_at
The time the external user was last updated. |
||
created_at
The time the external user was created in UserVoice. |
||
email
The email address associated with the external user. |
||
external_id
The ID of the user in the external system. |
||
ip
The external user’s IP address. |
||
links
Details about the external accounts and users the user is associated with.
|
||
name
The external user’s name. |
||
seen_days
The number of days the user has been seen. |
||
type
The type of the user. |
features
Replication Method : |
Key-based Incremental |
Replication Key |
updated_at |
Primary Key |
id |
API endpoint : |
The features
table contains info about planned product features.
id
The feature ID. |
updated_at
The time the feature was last updated. |
created_at
The time the feature was created. |
description
A description of the feature. |
is_blocker
If |
links
|
name
The name of the feature. |
suggestions_count
The total number of suggestions associated with the feature. |
supporter_mrr_cents
The total sum of supporter Monthly Recurring Revenue (MRR) for the feature, represented in USD as cents. |
supporting_accounts_count
The total number of supporter accounts associated with the feature. |
supporting_users_count
The total number of supporters associated with the feature. |
feature_statuses
Replication Method : |
Key-based Incremental |
Replication Key |
updated_at |
Primary Key |
id |
API endpoint : |
The feature_statuses
table contains info about feature statuses, which are used to indicate a feature’s current state.
forums
Replication Method : |
Key-based Incremental |
Replication Key |
updated_at |
Primary Key |
id |
API endpoint : |
The forums
table contains info about your discussion forums.
id
The forum ID. Reference: |
|
updated_at
The time the forum was last updated. |
|
created_at
The time the forum was created. |
|
name
The name of the forum. |
|
welcome_message
The welcome message that displays in the forum. |
|
welcome_message_mime_type
The MIME type of the forum’s |
|
prompt
The question that displays to users when they are creating ideas in the forum. |
|
example
|
|
portal_url
The portal URL for the forum. |
|
open_suggestions_count
The total number of open suggestions in the forum. |
|
suggestions_count
The total number of suggestions created in the forum. |
|
category_required
If |
|
is_public
If |
|
is_private
If |
|
classic_voting
If |
|
links
|
labels
Replication Method : |
Key-based Incremental |
Replication Key |
updated_at |
Primary Key |
id |
API endpoint : |
The labels
table contains info about labels in your UserVoice account, which admins use to internally organize suggestions.
id
The label ID. Reference: |
|
updated_at
The time the label was last updated. |
|
created_at
The time the label was created. |
|
name
The name of the label. |
|
full_name
The full name of the label. |
|
level
|
|
open_suggestions_count
The total number of open suggestions associated with the label. |
|
links
IDs of nested labels associated with the parent label, if any.
|
nps_ratings
Replication Method : |
Key-based Incremental |
Replication Key |
updated_at |
Primary Key |
id |
API endpoint : |
The nps_ratings
table contains info about NPS, or Net Promoter Scores. NPS is used to measure customer satisfaction on a scale from 0-10.
id
The NPS rating ID. |
||
updated_at
The time the NPS rating was last updated. |
||
created_at
The time the NPS rating was created. |
||
rating
The NPS score, which is a number from 0 to 10. |
||
previous_rating
If applicable, the previous rating value. |
||
rating_delta
The delta between |
||
body
If applicable, the comment left by the user filling out the survey. |
||
prompt
The prompt that displays to users during the survey. It is a variation of “How likely is it that you would recommend [our product/service] to a friend or colleague?” |
||
group
The group the user’s rating falls into. For example: |
||
links
Details about the origins of the NPS rating.
|
product_areas
Replication Method : |
Key-based Incremental |
Replication Key |
updated_at |
Primary Key |
id |
API endpoint : |
The product_areas
table contains info about your product areas, which can be assigned to features to organize them into groups.
id
The product area ID. Reference: |
||
updated_at
The time the product area was last updated. |
||
created_at
The time the product area was created. |
||
name
The name of the product area. For example: |
||
links
The IDs of the users who created/updated the product area.
|
requests
Replication Method : |
Key-based Incremental |
Replication Key |
updated_at |
Primary Key |
id |
API endpoint : |
The requests
table contains info about requests, which are specific pieces of feedback submitted by your end users. Requests are associated with suggestions, and users are counted as supporters of the suggestion.
Unlike suggestions, requests are captured by your team on behalf of end users.
id
The request ID. |
|||||||
updated_at
The time the request was last updated. |
|||||||
created_at
The time the request was created. |
|||||||
body
The text of the request. For example: |
|||||||
body_mime_type
The MIME type of the |
|||||||
source_url
The URL of the page the request was captured on, such as a Facebook post or Tweet. |
|||||||
source_type
The type of the source. |
|||||||
source_guid
The GUID of the source. |
|||||||
channel
The channel used to create the request. For example: |
|||||||
severity
The severity of the request. |
|||||||
links
Details about the suggestion(s), user(s), ticket(s), etc. associated with the request.
|
segmented_values
Replication Method : |
Key-based Incremental |
Replication Key |
updated_at |
Primary Key |
id |
API endpoint : |
The segmented_values
table contains info about segmented values, which are calculated columns that aggregate supporter metrics for a segment.
id
The segmented value ID. |
|||
updated_at
The time the segmented value was last updated. |
|||
created_at
The time the segmented value was created. |
|||
name
The display name of the segmented value. For example: |
|||
key
The segmented value key. For example: |
|||
object_type
The object type. |
|||
column_type
The column type. |
|||
links
|
segments
Replication Method : |
Key-based Incremental |
Replication Key |
updated_at |
Primary Key |
id |
API endpoint : |
The segments
table contains info about segments, which are subsets of your end users and accounts defined by a set of criteria.
id
The segment ID. |
|||||||||
updated_at
The time the segment was last updated. |
|||||||||
created_at
The time the segment was created. |
|||||||||
key
The segment key. |
|||||||||
name
The display name of the segment. For example: |
|||||||||
filters
Details about the filters used in the segment.
|
status_updates
Replication Method : |
Key-based Incremental |
Replication Key |
updated_at |
Primary Key |
None |
API endpoint : |
The status_updates
table contains info about admin changes to the statuses of suggestions.
id
The status update ID. Reference: |
||||
updated_at
The time the status update was last updated. |
||||
created_at
The time the status update was created. |
||||
body
If applicable, the admin’s message to the subscriber. |
||||
supporters_notified
If |
||||
notification_email_address
The email address status update notifications are sent to. |
||||
mail_sent_count
The number of emails sent as a result of the status update. |
||||
mail_opened_count
The number of status update emails that were opened. |
||||
mail_clicked_count
The number of status update emails that were clicked. |
||||
links
Details about the status change, suggestion, and user associated with the change.
|
stauses
Replication Method : |
Key-based Incremental |
Replication Key |
updated_at |
Primary Key |
id |
API endpoint : |
The stauses
table contains info about the various suggestion statuses in your UserVoice account.
id
The status ID. Reference: |
updated_at
The time the status was last updated. |
created_at
The time the status was created. |
name
The name of the status. By default, UserVoice includes five suggestion statuses, which may be modified or deleted:
If you created custom suggestion statuses, they will also display in this field. |
is_open
If |
hex_color
The hex code of the label color associated with the suggestion status. |
position
The position of the feature status in the full list of suggestion statuses in the UserVoice app. |
allow_comments
If |
suggestions
Replication Method : |
Key-based Incremental |
Replication Key |
updated_at |
Primary Key |
id |
API endpoint : |
The suggestions
table contains info about suggestions, or requested changes to your product. Suggestions can be created by your end users, your product team, or other people from your company.
Each suggestion is linked to a forum, where it can be visible publicly or to authorized users.
id
The suggestion ID. Reference: |
||||||||||
updated_at
The time the suggestion was last updated. |
||||||||||
created_at
The time the suggestion was created. |
||||||||||
admin_url
The URL of the suggestion in the admin console for admins. |
||||||||||
approved_at
The time the suggestion was approved. |
||||||||||
average_engagement
The average engagement rate. |
||||||||||
body
The description of the suggestion. |
||||||||||
body_mime_type
The MIME type of the suggestion |
||||||||||
channel
The channel used to create the suggestion. |
||||||||||
closed_at
The time the suggestion was closed. |
||||||||||
comments_count
The total number of comments associated with the suggestion. |
||||||||||
creator_browser
The browser the suggestion creator was using when creating the suggestion. |
||||||||||
creator_browser_version
The browser version the suggestion creator was using when creating the suggestion. |
||||||||||
creator_mobile
If |
||||||||||
creator_os
The operating system the suggestion creator was using when creating the suggestion. |
||||||||||
creator_referrer
The referrer URL for the suggestion. |
||||||||||
creator_user_agent
The user agent the suggestion creator was using when creating the suggestion. |
||||||||||
engagement_trend
|
||||||||||
first_support_at
The time the suggestion first required support. |
||||||||||
inappropriate_flags_count
The total number times end users have flagged the suggestion as inappropriate. |
||||||||||
is_blocker
If |
||||||||||
notes_count
The total number of internal (admin) notes associated with the suggestion. |
||||||||||
portal_url
The URL of the suggestion in the web portal (forum) for end users. |
||||||||||
recent_engagement
The total number of new supporters, requests, and comments for the suggestion in the past 30 days. |
||||||||||
requests_count
The total number of requests associated with the suggestion. |
||||||||||
satisfaction_detractor_count
The total number supporters on the suggestion who are also NPS detractors. |
||||||||||
satisfaction_neutral_count
The total number supporters on the suggestion who are also NPS passives. |
||||||||||
satisfaction_promoter_count
The total number supporters on the suggestion who are also NPS promoters. |
||||||||||
state
The state of the suggestion. Possible values are:
|
||||||||||
supporter_mrr
The sum of supporter MRR for the accounts that have supporters associated with the suggestion. |
||||||||||
supporter_satisfaction_score
The average NPS satisfaction score for all supporters associated with the suggestion. |
||||||||||
supporters_count
The total number of supporters associated with the suggestion. |
||||||||||
supporting_accounts_count
The total number of supporting accounts associated with the suggestion. |
||||||||||
title
The suggestion title. |
||||||||||
votes_count
The total number of votes associated with the suggestion. |
||||||||||
links
|
supporters
Replication Method : |
Key-based Incremental |
Replication Key |
updated_at |
Primary Key |
id |
API endpoint : |
The supporters
table contains info about supporters, who are end users that are supporters of a suggestion.
id
The supporter ID. Reference: |
||||
updated_at
The time the supported was last updated. |
||||
created_at
The time the supporter was created. |
||||
is_subscribed
If |
||||
how
|
||||
channel
|
||||
requests_count
The total number of requests on the suggestion associated with the supporter. |
||||
comments_count
The total number of comments on the suggestion made by the supporter. |
||||
links
|
Replication Method : |
Key-based Incremental |
Replication Key |
updated_before + updated_after |
Primary Key |
id |
API endpoint : |
The teams
table contains info about the teams in your UserVoice account. UserVoice admins and contributors can be assigned to teams to organize feedback the feedback they capture by department, such as Sales, Support, or Product.
id
The team ID. Reference: |
name
The name of the team. |
members_count
The total number of users associated with the team. |
Replication Method : |
Key-based Incremental |
Replication Key |
updated_at : created_at |
Primary Key |
id |
API endpoint : |
The users
table contains info about your users. This includes both UserVoice admins and end users.
id
The user ID. Reference:
|
||||||
updated_at
The time the user was last updated. |
||||||
created_at
The time the user was created. |
||||||
guid
The user GUID. |
||||||
name
The name of the user. |
||||||
email_address
The email address associated with the user. |
||||||
job_title
The job title of the user. |
||||||
avatar_url
The URL of the user’s avatar. |
||||||
last_ip
The last seen IP address associated with the user. |
||||||
country
The user’s country. |
||||||
region
The user’s region. |
||||||
city
The user’s city. |
||||||
satisfaction_score
The user’s NPS rating. |
||||||
allowed_state
The user’s allowed state. For example: |
||||||
state
The user’s state. For example: |
||||||
supported_suggestions_count
The total number of suggestions the user is a supporter of. |
||||||
is_admin
If |
||||||
is_owner
If |
||||||
email_confirmed
If |
||||||
status_notifications
If |
||||||
comment_notifications
If |
||||||
links
|
Related | Troubleshooting |
Questions? Feedback?
Did this article help? If you have questions or feedback, feel free to submit a pull request with your suggestions, open an issue on GitHub, or reach out to us.