Release Status Released Supported By Singer community
Availability Free Status Page UserVoice Status Page
Default Historical Sync 1 year Default Replication Frequency 1 hour
Whitelisting Unsupported Destination Incompatibilities None

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

Add API key window in UserVoice

  1. Sign into your UserVoice account.
  2. Click Settings, which is in the bottom left corner.
  3. Click Integrations.
  4. Click UserVoice API keys.
  5. Click the Add API key button.
  6. 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.
  7. 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:

UserVoice UI with highlighted API key and API secret fields

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

  1. Sign into your Stitch account.
  2. On the Stitch Dashboard page, click the Add Integration button.

  3. Click the UserVoice icon.

  4. 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.

  5. In the UserVoice Subdomain field, enter your UserVoice subdomain. For example: If the full subdomain were stitch.uservoice.com, you’d enter stitch into this field.
  6. In the UserVoice API Key field, paste your UserVoice API key.
  7. In the UserVoice API Secret field, paste the API secret.

Step 3: Define the Historical Sync

The Sync Historical Data setting will define 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.

Stitch offers two methods of creating a replication schedule:

  • Replication Frequency: This method requires selecting the interval you want replication to run for the integration. Start times of replication jobs are based on the start time and duration of the previous job. Refer to the Replication Frequency documentation for more information and examples.
  • Anchor scheduling: Based on the Replication Frequency, or interval, you select, this method “anchors” the start times of this integration’s replication jobs to a time you select to create a predictable schedule. Anchor scheduling is a combination of the Anchor Time and Replication Frequency settings, which must both be defined to use this method. Additionally, note that:

    • A Replication Frequency of at least one hour is required to use anchor scheduling.
    • An initial replication job may not begin immediately after saving the integration, depending on the selected Replication Frequency and Anchor Time. Refer to the Anchor Scheduling documentation for more information.

To help prevent overages, 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 tables and columns to replicate

To complete the setup, you’ll need to select tables and columns you want to replicate to your data warehouse.

Check out the Schema section to learn more about the available tables in UserVoice and how they replicate.

  1. In the list of tables that displays - or in the Tables to Replicate tab, if you skipped this step during setup - locate a table you want to replicate.
  2. To track a table, click the checkbox next to the table’s name. A green checkmark means the table is set to replicate.

  3. To track a column, click the checkbox next to the column’s name. A green checkmark means the column is set to replicate.

  4. Repeat this process for all the tables and columns you want to replicate.
  5. When finished, click the Finalize Your Selections button at the bottom of the screen to save your selections.

Note: If you change these settings while a replication job is still in progress, they will not be used until the next job starts.

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.

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 schemas

Replication Method: Key-based Incremental Replication Key : updated_at
Primary Key : id API Endpoint: List categories

The categories contains info about the various categories in your UserVoice account. Categories are used to organize suggestions in a forum.

id
INTEGER

The category ID.

Reference:

updated_at
DATE-TIME

The time the category was last updated.

created_at
DATE-TIME

The time the category was created.

name
STRING

The name of the category.

suggestions_count
INTEGER

The total number of suggestions associated with the category.

open_suggestions_count
INTEGER

The total number of open suggestions associated with the category.

links__forum
INTEGER

The ID of the forum associated with the category.

Reference:


Replication Method: Key-based Incremental Replication Key : updated_at
Primary Key : id API Endpoint: List comments

The comments table contains info about the comments forum users have made.

id
INTEGER

The comment ID.

updated_at
DATE-TIME

The time the comment was last updated.

created_at
DATE-TIME

The time the comment was created.

body
STRING

The plaintext body of the comment.

body_mime_type
STRING

The MIME type of the comment body.

state
STRING

The state of the comment. For example: approved

inappropriate_flags_count
INTEGER

The count of times the comment has been flagged as inappropriate.

is_admin_comment
BOOLEAN

If true, the comment was made by an admin.

channel
STRING

The channel used to create the comment.

links__suggestion
INTEGER

The ID of the suggestion.

Reference:

links__created_by
INTEGER

The ID of the user who created the comment.

Reference:


external_accounts

Replication Method: Key-based Incremental Replication Key : updated_at
Primary Key : id API Endpoint: List external accounts

The external_accounts table contains info about accounts from external systems.

id
INTEGER

The ID of the external account as it is in UserVoice.

Reference:

updated_at
DATE-TIME

The time the external account was last updated.

created_at
DATE-TIME

The time the external account was created in UserVoice.

external_id
STRING

The ID of the account in the external system.

is_blocker
BOOLEAN

If true, feedback associated with the external account has been flagged as a blocker.

ltv
NUMBER

The Lifetime Value (LTV) of the external account, represented in USD.

ltv_cents
INTEGER

The Lifetime Value (LTV) of the external account, represented in USD as cents.

mrr
NUMBER

The Monthly Recurring Revenue (MRR) of the external account, represented in USD.

mrr_cents
INTEGER

The Monthly Recurring Revenue (MRR) of the external account, represented in USD as cents.

name
STRING

The name of the external account.

nps
NUMBER

The NPS rating associated with the external account.

plan
STRING

The plan associated with the external account.

requests_count
INTEGER

The number of requests associated with the external account.

supported_ideas_count
INTEGER

The number of supported ideas associated with the external account.

users_count
INTEGER

The number of users associated with the external account.


Replication Method: Key-based Incremental Replication Key : updated_at
Primary Key : id API Endpoint: List external users

The external_users table contains info about users from external systems.

id
INTEGER

The external user’s ID in UserVoice.

Reference:

updated_at
DATE-TIME

The time the external user was last updated.

created_at
DATE-TIME

The time the external user was created in UserVoice.

email
STRING

The email address associated with the external user.

external_id
STRING

The ID of the user in the external system.

ip
STRING

The external user’s IP address.

links__external_accounts
INTEGER

The ID of the external account associated with the user.

Reference:

links__external_users
INTEGER

The ID of the external user associated with the user.

name
STRING

The external user’s name.

seen_days
INTEGER

The number of days the user has been seen.

type
STRING

The type of the user.


Replication Method: Key-based Incremental Replication Key : updated_at
Primary Key : id API Endpoint: List feature statuses

The feature_statuses table contains info about feature statuses, which are used to indicate a feature’s current state.

id
INTEGER

The feature status ID.

Reference:

updated_at
DATE-TIME

The time the feature status was last updated.

created_at
DATE-TIME

The time the feature status was created.

name
STRING

The name of the feature status. By default, UserVoice includes six feature statuses, which may be modified or deleted:

  • Proposed
  • Designing
  • Developing
  • Researching
  • Beta
  • Complete

If you created custom feature statuses, they will also display in this field.

hex_color
STRING

The hex code of the label color associated with the feature status.

position
INTEGER

The position of the feature status in the full list of feature statuses in the UserVoice app.

is_default
BOOLEAN

If true, this is the feature status that is applied to new features.

links__created_by
INTEGER

The ID of the user who created the feature.

Reference:

links__updated_by
INTEGER

The ID of the user who last updated the feature.

Reference:


Replication Method: Key-based Incremental Replication Key : updated_at
Primary Key : id API Endpoint: List features

The features table contains info about planned product features.

id
INTEGER

The feature ID.

updated_at
DATE-TIME

The time the feature was last updated.

created_at
DATE-TIME

The time the feature was created.

description
STRING

A description of the feature.

is_blocker
BOOLEAN

If true, this feature has been flagged as a blocker for a user or account.

links__created_by
INTEGER

The ID of the user who created the feature.

Reference:

links__feature_status
INTEGER

The status of the feature.

Reference:

links__product_area
INTEGER

The product area of the feature.

Reference:

links__updated_by
INTEGER

The ID of the user who last updated the feature.

Reference:

name
STRING

The name of the feature.

suggestions_count
INTEGER

The total number of suggestions associated with the feature.

supporter_mrr_cents
INTEGER

The total sum of supporter Monthly Recurring Revenue (MRR) for the feature, represented in USD as cents.

supporting_accounts_count
INTEGER

The total number of supporter accounts associated with the feature.

supporting_users_count
INTEGER

The total number of supporters associated with the feature.


Replication Method: Key-based Incremental Replication Key : updated_at
Primary Key : id API Endpoint: List forums

The forums table contains info about your discussion forums.

id
INTEGER

The forum ID.

Reference:

updated_at
DATE-TIME

The time the forum was last updated.

created_at
DATE-TIME

The time the forum was created.

name
STRING

The name of the forum.

welcome_message
STRING

The welcome message that displays in the forum.

welcome_message_mime_type
STRING

The MIME type of the forum’s welcome_message.

prompt
STRING

The question that displays to users when they are creating ideas in the forum.

example
STRING
portal_url
STRING

The portal URL for the forum.

open_suggestions_count
INTEGER

The total number of open suggestions in the forum.

suggestions_count
INTEGER

The total number of suggestions created in the forum.

category_required
BOOLEAN

If true, users must select a category when creating an idea.

is_public
BOOLEAN

If true, the forum is public.

is_private
BOOLEAN

If true, the forum is private.

classic_voting
BOOLEAN

If true, classic voting is enabled for the forum.

links__updated_by
INTEGER

The ID of the user who last updated the forum settings.

Reference:


Replication Method: Key-based Incremental Replication Key : updated_at
Primary Key : id API Endpoint: List labels

The labels table contains info about labels in your UserVoice, which admins use to internally organize suggestions.

id
INTEGER

The label ID.

Reference:

updated_at
DATE-TIME

The time the label was last updated.

created_at
DATE-TIME

The time the label was created.

name
STRING

The name of the label.

full_name
STRING

The full name of the label.

level
INTEGER
open_suggestions_count
INTEGER

The total number of open suggestions associated with the label.

links__parent
INTEGER

If the label is a nested label, this field will contain the ID of the parent (top-level) label.

Reference:


Replication Method: Key-based Incremental Replication Key : updated_at
Primary Key : id API Endpoint: List NPS ratings

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
INTEGER

The NPS rating ID.

updated_at
DATE-TIME

The time the NPS rating was last updated.

created_at
DATE-TIME

The time the NPS rating was created.

rating
INTEGER

The NPS score, which is a number from 0 to 10.

previous_rating
INTEGER

If applicable, the previous rating value.

rating_delta
INTEGER

The delta between rating and previous_rating.

body
STRING

If applicable, the comment left by the user filling out the survey.

prompt
STRING

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
STRING

The group the user’s rating falls into. For example: neutral

links__user
INTEGER

The ID of the user who submitted the NPS rating.

Reference:

links__ticket
INTEGER

The ID of the ticket associated with the NPS rating.


Replication Method: Key-based Incremental Replication Key : updated_at
Primary Key : id API Endpoint: List product areas

The product_areas table contains info about your product areas, which can be assigned to features to organize them into groups.


Replication Method: Key-based Incremental Replication Key : updated_at
Primary Key : id API Endpoint: List requests

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
INTEGER

The request ID.

updated_at
DATE-TIME

The time the request was last updated.

created_at
DATE-TIME

The time the request was created.

body
STRING

The text of the request. For example: User considers the lack of this feature a blocker.

body_mime_type
STRING

The MIME type of the body.

source_url
STRING

The URL of the page the request was captured on, such as a Facebook post or Tweet.

source_type
STRING

The type of the source.

source_guid
STRING

The GUID of the source.

channel
STRING

The channel used to create the request. For example: api

severity
INTEGER

The severity of the request.

links__suggestion
INTEGER

The ID of the suggestion associated with the request.

Reference:

links__user
INTEGER

The ID of the end user associated with the request.

Reference:

links__ticket
INTEGER

The ID of the ticket associated with the request.

links__created_by
INTEGER

The ID of the user who created the request.

Reference:

links__updated_by
INTEGER

The ID of the user who last updated the request.

Reference:

links__supporter
INTEGER

The ID of the supporter associated with the request.

Reference:

links__sfdc_opportunity
INTEGER

The ID of the Salesforce opportunity associated with the request.


Replication Method: Key-based Incremental Replication Key : updated_at
Primary Key : id API Endpoint: List segmented values

The segmented_values table contains info about segmented values, which are calculated columns that aggregate supporter metrics for a segment.

id
INTEGER

The segmented value ID.

updated_at
DATE-TIME

The time the segmented value was last updated.

created_at
DATE-TIME

The time the segmented value was created.

name
STRING

The display name of the segmented value. For example: Philadelphia

key
STRING

The segmented value key. For example: cv_philadelphia.accounts_count

object_type
STRING

The object type.

column_type
STRING

The column type.

links__updated_by
INTEGER

The ID of the user who last updated the segmented value.

Reference:

links__created_by
INTEGER

The ID of the user who created the segmented value.

Reference:

links__segment
INTEGER

The ID of the segment associated with the segmented value.

Reference:


Replication Method: Key-based Incremental Replication Key : updated_at
Primary Key : id API Endpoint: List segments

The segments table contains info about segments, which are subsets of your end users and accounts defined by a set of criteria.

id
INTEGER

The segment ID.

updated_at
DATE-TIME

The time the segment was last updated.

created_at
DATE-TIME

The time the segment was created.

key
STRING

The segment key.

name
STRING

The display name of the segment. For example: Philadelphia

filters__operator
STRING

The operator used in the filter. For example: and, or

filters__column
STRING

The column the filter uses.

filters__operand
STRING
filters__unit
filters__expressions__operator
STRING
filters__expressions__column
STRING
filters__expressions__operand
STRING
filters__expressions__unit

Replication Method: Key-based Incremental Replication Key : updated_at
Primary Key : API Endpoint: List status updates

The status_updates table contains info about admin changes to the statuses of suggestions.

id
INTEGER

The status update ID.

Reference:

updated_at
DATE-TIME

The time the status update was last updated.

created_at
DATE-TIME

The time the status update was created.

body
STRING

If applicable, the admin’s message to the subscriber.

supporters_notified
BOOLEAN

If true, supporters were notified of the status update.

notification_email_address
STRING

The email address status update notifications are sent to.

mail_sent_count
INTEGER

The number of emails sent as a result of the status update.

mail_opened_count
INTEGER

The number of status update emails that were opened.

mail_clicked_count
INTEGER

The number of status update emails that were clicked.

links__suggestion
INTEGER

The ID of the suggestion associated with the status change.

Reference:

links__user
INTEGER

The ID of the user associated with the status change.

Reference:

links__new_status
INTEGER

The ID of the new status.

Reference:

links__old_status
INTEGER

The ID of the previous status.

Reference:


Replication Method: Key-based Incremental Replication Key : updated_at
Primary Key : id API Endpoint: List statuses

The stauses table contains info about the various suggestion statuses in your UserVoice account.

id
INTEGER

The status ID.

Reference:

updated_at
DATE-TIME

The time the status was last updated.

created_at
DATE-TIME

The time the status was created.

name
STRING

The name of the status. By default, UserVoice includes five suggestion statuses, which may be modified or deleted:

  • under review
  • planned
  • started
  • completed
  • declined

If you created custom suggestion statuses, they will also display in this field.

is_open
BOOLEAN

If true, voting is enabled on suggestions with this status.

hex_color
STRING

The hex code of the label color associated with the suggestion status.

position
INTEGER

The position of the feature status in the full list of suggestion statuses in the UserVoice app.

allow_comments
BOOLEAN

If true, end users are able to post new comments on ideas when this status is assigned.


Replication Method: Key-based Incremental Replication Key : updated_at
Primary Key : id API Endpoint: List suggestions

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
INTEGER

The suggestion ID.

Reference:

updated_at
DATE-TIME

The time the suggestion was last updated.

created_at
DATE-TIME

The time the suggestion was created.

admin_url
STRING

The URL of the suggestion in the admin console for admins.

approved_at
DATE-TIME

The time the suggestion was approved.

average_engagement
NUMBER

The average engagement rate.

body
STRING

The description of the suggestion.

body_mime_type
STRING

The MIME type of the suggestion body.

channel
STRING

The channel used to create the suggestion.

closed_at
DATE-TIME

The time the suggestion was closed.

comments_count
INTEGER

The total number of comments associated with the suggestion.

creator_browser
STRING

The browser the suggestion creator was using when creating the suggestion.

creator_browser_version
STRING

The browser version the suggestion creator was using when creating the suggestion.

creator_mobile
BOOLEAN

If true, the suggestion creator created the suggestion using a mobile device.

creator_os
STRING

The operating system the suggestion creator was using when creating the suggestion.

creator_referrer
STRING

The referrer URL for the suggestion.

creator_user_agent
STRING

The user agent the suggestion creator was using when creating the suggestion.

engagement_trend
NUMBER
first_support_at
DATE-TIME

The time the suggestion first required support.

inappropriate_flags_count
INTEGER

The total number times end users have flagged the suggestion as inappropriate.

is_blocker
BOOLEAN

If true, a sales opportunity associated with the suggestion considers this to be a blocker.

notes_count
INTEGER

The total number of internal (admin) notes associated with the suggestion.

portal_url
STRING

The URL of the suggestion in the web portal (forum) for end users.

recent_engagement
INTEGER

The total number of new supporters, requests, and comments for the suggestion in the past 30 days.

requests_count
INTEGER

The total number of requests associated with the suggestion.

satisfaction_detractor_count
INTEGER

The total number supporters on the suggestion who are also NPS detractors.

satisfaction_neutral_count
INTEGER

The total number supporters on the suggestion who are also NPS passives.

satisfaction_promoter_count
INTEGER

The total number supporters on the suggestion who are also NPS promoters.

state
STRING

The state of the suggestion. Possible values are:

  • approved - The suggestion went to moderation and was approved by an admin
  • published - The suggestion didn’t go through moderation and is on the web portal
supporter_mrr
NUMBER

The sum of supporter MRR for the accounts that have supporters associated with the suggestion.

supporter_satisfaction_score
NUMBER

The average NPS satisfaction score for all supporters associated with the suggestion.

supporters_count
INTEGER

The total number of supporters associated with the suggestion.

supporting_accounts_count
INTEGER

The total number of supporting accounts associated with the suggestion.

title
STRING

The suggestion title.

votes_count
INTEGER

The total number of votes associated with the suggestion.

links__category
INTEGER

The category associated with the suggestion.

Reference:

links__created_by
INTEGER

The ID of the user who created the suggestion.

Reference:

links__forum
INTEGER

The ID of the forum associated with the suggestion.

Reference:

links__labels

If your destination doesn't natively support nested data, this data may be denested into a subtable named suggestions__links__labels. Refer to the Singer schema for details on possible attributes.

links__last_status_update
INTEGER

The ID of the last status update event.

Reference:

links__parent_suggestion
INTEGER

If the suggestion is merged into another suggestion, this will be the ID of the suggestion it is merged into.

Reference:

links__parent_suggestions

If your destination doesn't natively support nested data, this data may be denested into a subtable named suggestions__links__parent_suggestions. Refer to the Singer schema for details on possible attributes.

links__status
INTEGER

The ID of the status associated with the suggestion.

Reference:

links__ticket
INTEGER

The ID of the ticket associated with the suggestion, if the suggestion is converted to a ticket.


Replication Method: Key-based Incremental Replication Key : updated_at
Primary Key : id API Endpoint: List supporters

The supporters table contains info about supporters, who are end users that are supporters of a suggestion.

id
INTEGER

The supporter ID.

Reference:

updated_at
DATE-TIME

The time the supported was last updated.

created_at
DATE-TIME

The time the supporter was created.

is_subscribed
BOOLEAN

If true, the supporter is subscribed to suggestion notifications.

how
STRING
channel
STRING
requests_count
INTEGER

The total number of requests on the suggestion associated with the supporter.

comments_count
INTEGER

The total number of comments on the suggestion made by the supporter.

links__suggestion
INTEGER

The ID of the suggestion associated with the supporter.

Reference:

links__user
INTEGER

The ID of the end user associated with the supporter.

Reference:

links__created_by
INTEGER

The ID of the user who created the supporter.

Reference:

links__updated_by
INTEGER

The ID of the user who last updated the supporter.

Reference:


Replication Method: Key-based Incremental Replication Key : updated_before + updated_after
Primary Key : id API Endpoint: List teams

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
INTEGER

The team ID.

Reference:

name
STRING

The name of the team.

members_count
INTEGER

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: List users

The users table contains info about your users. This includes both UserVoice admins and end users.

id
INTEGER

The user ID.

Reference:

updated_at
DATE-TIME

The time the user was last updated.

created_at
DATE-TIME

The time the user was created.

guid
STRING

The user GUID.

name
STRING

The name of the user.

email_address
STRING

The email address associated with the user.

job_title
STRING

The job title of the user.

avatar_url
STRING

The URL of the user’s avatar.

last_ip
STRING

The last seen IP address associated with the user.

country
STRING

The user’s country.

region
STRING

The user’s region.

city
STRING

The user’s city.

satisfaction_score
INTEGER

The user’s NPS rating.

allowed_state
STRING

The user’s allowed state. For example: allowed

state
STRING

The user’s state. For example: normal

supported_suggestions_count
INTEGER

The total number of suggestions the user is a supporter of.

is_admin
BOOLEAN

If true, the user is a UserVoice admin.

is_owner
BOOLEAN

If true, the user is the UserVoice account owner.

email_confirmed
BOOLEAN

If true, the user’s email_address has been verified.

status_notifications
BOOLEAN

If true, the user will receive status update notifications.

comment_notifications
BOOLEAN

If true, the user will receive comment notifications.

links__teams

If your destination doesn't natively support nested data, this data may be denested into a subtable named users__links__teams. Refer to the Singer schema for details on possible attributes.

links__current_nps_rating
INTEGER

The user’s current NPS rating.

links__previous_nps_rating
INTEGER

The user’s previous NPS rating.

links__external_users

If your destination doesn't natively support nested data, this data may be denested into a subtable named users__links__external_users. Refer to the Singer schema for details on possible attributes.



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.