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

Singer Community

Stitch plan

Standard

API availability

Available

Singer GitHub repository

singer-io/tap-uservoice

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

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

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:

  1. Individual tables and columns

  2. All tables and columns

Click the tabs to view instructions for each selection method.

  1. In the integration’s Tables to Replicate tab, locate a table you want to replicate.
  2. To track a table, click the checkbox next to the table’s name. A blue checkmark means the table is set to replicate.

  3. To track a column, click the checkbox next to the column’s name. A blue 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.
  1. Click into the integration from the Stitch Dashboard page.
  2. Click the Tables to Replicate tab.

  3. In the list of tables, click the box next to the Table Names column.
  4. In the menu that displays, click Track all Tables and Fields:

    The Track all Tables and Fields menu in the Tables to Replicate tab

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

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

categories

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

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

updated_at

Useful links

UserVoice documentation

categories schema on GitHub

UserVoice API method

Join categories with on
suggestions
categories.id = suggestions.links.category
categories.links.forum = suggestions.links.forum
forums
categories.links.forum = forums.id

created_at

DATE-TIME

id

INTEGER

links

OBJECT

name

STRING

open_suggestions_count

INTEGER

suggestions_count

INTEGER

updated_at

DATE-TIME

comments

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

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

updated_at

Useful links

UserVoice documentation

comments schema on GitHub

UserVoice API method

Join comments with on
requests
comments.links.suggestion = requests.links.suggestion
comments.links.created_by = requests.links.user
comments.links.created_by = requests.links.created_by
comments.links.created_by = requests.links.updated_by
status_updates
comments.links.suggestion = status_updates.links.suggestion
comments.links.created_by = status_updates.links.user
suggestions
comments.links.suggestion = suggestions.id
comments.links.suggestion = suggestions.links.parent_suggestion
comments.links.created_by = suggestions.links.created_by
supporters
comments.links.suggestion = supporters.links.suggestion
comments.links.created_by = supporters.links.created_by
comments.links.created_by = supporters.links.updated_by
comments.links.created_by = supporters.links.user
features
comments.links.created_by = features.links.updated_by
comments.links.created_by = features.links.created_by
feature_statuses
comments.links.created_by = feature_statuses.links.updated_by
comments.links.created_by = feature_statuses.links.created_by
forums
comments.links.created_by = forums.links.updated_by
nps_ratings
comments.links.created_by = nps_ratings.links.user
product_areas
comments.links.created_by = product_areas.links.updated_by
comments.links.created_by = product_areas.links.created_by
segmented_values
comments.links.created_by = segmented_values.links.created_by
comments.links.created_by = segmented_values.links.updated_by
users
comments.links.created_by = users.id

body

STRING

body_mime_type

STRING

channel

STRING

created_at

DATE-TIME

id

INTEGER

inappropriate_flags_count

INTEGER

is_admin_comment

BOOLEAN

links

OBJECT

state

STRING

updated_at

DATE-TIME

external_accounts

The external_accounts table contains info about accounts from external systems.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

updated_at

Useful links

UserVoice documentation

external_accounts schema on GitHub

UserVoice API method

created_at

DATE-TIME

external_id

STRING

id

INTEGER

is_blocker

BOOLEAN

ltv

NUMBER

ltv_cents

INTEGER

mrr

NUMBER

mrr_cents

INTEGER

name

STRING

nps

NUMBER

plan

STRING

requests_count

INTEGER

supported_ideas_count

INTEGER

updated_at

DATE-TIME

users_count

INTEGER

external_users

The external_users table contains info about users from external systems.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

updated_at

Useful links

UserVoice documentation

external_users schema on GitHub

UserVoice API method

Join external_users with on
users
external_users.id = users.links.external_users.value

created_at

DATE-TIME

email

STRING

external_id

STRING

id

INTEGER

ip

STRING

links

OBJECT

name

STRING

seen_days

INTEGER

type

STRING

updated_at

DATE-TIME

feature_statuses

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

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

updated_at

Useful links

UserVoice documentation

feature_statuses schema on GitHub

UserVoice API method

Join feature_statuses with on
features
feature_statuses.id = features.links.feature_status
feature_statuses.links.updated_by = features.links.updated_by
feature_statuses.links.created_by = features.links.updated_by
feature_statuses.links.updated_by = features.links.created_by
feature_statuses.links.created_by = features.links.created_by
comments
feature_statuses.links.updated_by = comments.links.created_by
feature_statuses.links.created_by = comments.links.created_by
forums
feature_statuses.links.updated_by = forums.links.updated_by
feature_statuses.links.created_by = forums.links.updated_by
nps_ratings
feature_statuses.links.updated_by = nps_ratings.links.user
feature_statuses.links.created_by = nps_ratings.links.user
product_areas
feature_statuses.links.updated_by = product_areas.links.updated_by
feature_statuses.links.created_by = product_areas.links.updated_by
feature_statuses.links.updated_by = product_areas.links.created_by
feature_statuses.links.created_by = product_areas.links.created_by
requests
feature_statuses.links.updated_by = requests.links.user
feature_statuses.links.created_by = requests.links.user
feature_statuses.links.updated_by = requests.links.created_by
feature_statuses.links.created_by = requests.links.created_by
feature_statuses.links.updated_by = requests.links.updated_by
feature_statuses.links.created_by = requests.links.updated_by
segmented_values
feature_statuses.links.updated_by = segmented_values.links.created_by
feature_statuses.links.created_by = segmented_values.links.created_by
feature_statuses.links.updated_by = segmented_values.links.updated_by
feature_statuses.links.created_by = segmented_values.links.updated_by
status_updates
feature_statuses.links.updated_by = status_updates.links.user
feature_statuses.links.created_by = status_updates.links.user
suggestions
feature_statuses.links.updated_by = suggestions.links.created_by
feature_statuses.links.created_by = suggestions.links.created_by
supporters
feature_statuses.links.updated_by = supporters.links.created_by
feature_statuses.links.created_by = supporters.links.created_by
feature_statuses.links.updated_by = supporters.links.updated_by
feature_statuses.links.created_by = supporters.links.updated_by
feature_statuses.links.updated_by = supporters.links.user
feature_statuses.links.created_by = supporters.links.user
users
feature_statuses.links.updated_by = users.id
feature_statuses.links.created_by = users.id

created_at

DATE-TIME

hex_color

STRING

id

INTEGER

is_default

BOOLEAN

links

OBJECT

name

STRING

position

INTEGER

updated_at

DATE-TIME

features

The features table contains info about planned product features.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

updated_at

Useful links

UserVoice documentation

features schema on GitHub

UserVoice API method

Join features with on
feature_statuses
features.links.feature_status = feature_statuses.id
features.links.updated_by = feature_statuses.links.updated_by
features.links.created_by = feature_statuses.links.updated_by
features.links.updated_by = feature_statuses.links.created_by
features.links.created_by = feature_statuses.links.created_by
product_areas
features.links.product_area = product_areas.id
features.links.updated_by = product_areas.links.updated_by
features.links.created_by = product_areas.links.updated_by
features.links.updated_by = product_areas.links.created_by
features.links.created_by = product_areas.links.created_by
comments
features.links.updated_by = comments.links.created_by
features.links.created_by = comments.links.created_by
forums
features.links.updated_by = forums.links.updated_by
features.links.created_by = forums.links.updated_by
nps_ratings
features.links.updated_by = nps_ratings.links.user
features.links.created_by = nps_ratings.links.user
requests
features.links.updated_by = requests.links.user
features.links.created_by = requests.links.user
features.links.updated_by = requests.links.created_by
features.links.created_by = requests.links.created_by
features.links.updated_by = requests.links.updated_by
features.links.created_by = requests.links.updated_by
segmented_values
features.links.updated_by = segmented_values.links.created_by
features.links.created_by = segmented_values.links.created_by
features.links.updated_by = segmented_values.links.updated_by
features.links.created_by = segmented_values.links.updated_by
status_updates
features.links.updated_by = status_updates.links.user
features.links.created_by = status_updates.links.user
suggestions
features.links.updated_by = suggestions.links.created_by
features.links.created_by = suggestions.links.created_by
supporters
features.links.updated_by = supporters.links.created_by
features.links.created_by = supporters.links.created_by
features.links.updated_by = supporters.links.updated_by
features.links.created_by = supporters.links.updated_by
features.links.updated_by = supporters.links.user
features.links.created_by = supporters.links.user
users
features.links.updated_by = users.id
features.links.created_by = users.id

created_at

DATE-TIME

description

STRING

id

INTEGER

is_blocker

BOOLEAN

links

OBJECT

name

STRING

suggestions_count

INTEGER

supporter_mrr_cents

INTEGER

supporting_accounts_count

INTEGER

supporting_users_count

INTEGER

updated_at

DATE-TIME

forums

The forums table contains info about your discussion forums.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

updated_at

Useful links

UserVoice documentation

forums schema on GitHub

UserVoice API method

Join forums with on
categories
forums.id = categories.links.forum
suggestions
forums.id = suggestions.links.forum
forums.links.updated_by = suggestions.links.created_by
comments
forums.links.updated_by = comments.links.created_by
features
forums.links.updated_by = features.links.updated_by
forums.links.updated_by = features.links.created_by
feature_statuses
forums.links.updated_by = feature_statuses.links.updated_by
forums.links.updated_by = feature_statuses.links.created_by
nps_ratings
forums.links.updated_by = nps_ratings.links.user
product_areas
forums.links.updated_by = product_areas.links.updated_by
forums.links.updated_by = product_areas.links.created_by
requests
forums.links.updated_by = requests.links.user
forums.links.updated_by = requests.links.created_by
forums.links.updated_by = requests.links.updated_by
segmented_values
forums.links.updated_by = segmented_values.links.created_by
forums.links.updated_by = segmented_values.links.updated_by
status_updates
forums.links.updated_by = status_updates.links.user
supporters
forums.links.updated_by = supporters.links.created_by
forums.links.updated_by = supporters.links.updated_by
forums.links.updated_by = supporters.links.user
users
forums.links.updated_by = users.id

category_required

BOOLEAN

classic_voting

BOOLEAN

created_at

DATE-TIME

example

STRING

id

INTEGER

is_private

BOOLEAN

is_public

BOOLEAN

links

OBJECT

name

STRING

open_suggestions_count

INTEGER

portal_url

STRING

prompt

STRING

suggestions_count

INTEGER

updated_at

DATE-TIME

welcome_message

STRING

welcome_message_mime_type

STRING

labels

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

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

updated_at

Useful links

UserVoice documentation

labels schema on GitHub

UserVoice API method

Join labels with on
suggestions
labels.id = suggestions.links.labels.value
labels.links.parent = suggestions.links.labels.value

created_at

DATE-TIME

full_name

STRING

id

INTEGER

level

INTEGER

links

OBJECT

name

STRING

open_suggestions_count

INTEGER

updated_at

DATE-TIME

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.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

updated_at

Useful links

UserVoice documentation

nps_ratings schema on GitHub

UserVoice API method

Join nps_ratings with on
comments
nps_ratings.links.user = comments.links.created_by
features
nps_ratings.links.user = features.links.updated_by
nps_ratings.links.user = features.links.created_by
feature_statuses
nps_ratings.links.user = feature_statuses.links.updated_by
nps_ratings.links.user = feature_statuses.links.created_by
forums
nps_ratings.links.user = forums.links.updated_by
product_areas
nps_ratings.links.user = product_areas.links.updated_by
nps_ratings.links.user = product_areas.links.created_by
requests
nps_ratings.links.user = requests.links.user
nps_ratings.links.user = requests.links.created_by
nps_ratings.links.user = requests.links.updated_by
segmented_values
nps_ratings.links.user = segmented_values.links.created_by
nps_ratings.links.user = segmented_values.links.updated_by
status_updates
nps_ratings.links.user = status_updates.links.user
suggestions
nps_ratings.links.user = suggestions.links.created_by
supporters
nps_ratings.links.user = supporters.links.created_by
nps_ratings.links.user = supporters.links.updated_by
nps_ratings.links.user = supporters.links.user
users
nps_ratings.links.user = users.id

body

STRING

created_at

DATE-TIME

group

STRING

id

INTEGER

links

OBJECT

previous_rating

INTEGER

prompt

STRING

rating

INTEGER

rating_delta

INTEGER

updated_at

DATE-TIME

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

Primary Key

id

Replication Key

updated_at

Useful links

UserVoice documentation

product_areas schema on GitHub

UserVoice API method

Join product_areas with on
features
product_areas.id = features.links.product_area
product_areas.links.updated_by = features.links.updated_by
product_areas.links.created_by = features.links.updated_by
product_areas.links.updated_by = features.links.created_by
product_areas.links.created_by = features.links.created_by
comments
product_areas.links.updated_by = comments.links.created_by
product_areas.links.created_by = comments.links.created_by
feature_statuses
product_areas.links.updated_by = feature_statuses.links.updated_by
product_areas.links.created_by = feature_statuses.links.updated_by
product_areas.links.updated_by = feature_statuses.links.created_by
product_areas.links.created_by = feature_statuses.links.created_by
forums
product_areas.links.updated_by = forums.links.updated_by
product_areas.links.created_by = forums.links.updated_by
nps_ratings
product_areas.links.updated_by = nps_ratings.links.user
product_areas.links.created_by = nps_ratings.links.user
requests
product_areas.links.updated_by = requests.links.user
product_areas.links.created_by = requests.links.user
product_areas.links.updated_by = requests.links.created_by
product_areas.links.created_by = requests.links.created_by
product_areas.links.updated_by = requests.links.updated_by
product_areas.links.created_by = requests.links.updated_by
segmented_values
product_areas.links.updated_by = segmented_values.links.created_by
product_areas.links.created_by = segmented_values.links.created_by
product_areas.links.updated_by = segmented_values.links.updated_by
product_areas.links.created_by = segmented_values.links.updated_by
status_updates
product_areas.links.updated_by = status_updates.links.user
product_areas.links.created_by = status_updates.links.user
suggestions
product_areas.links.updated_by = suggestions.links.created_by
product_areas.links.created_by = suggestions.links.created_by
supporters
product_areas.links.updated_by = supporters.links.created_by
product_areas.links.created_by = supporters.links.created_by
product_areas.links.updated_by = supporters.links.updated_by
product_areas.links.created_by = supporters.links.updated_by
product_areas.links.updated_by = supporters.links.user
product_areas.links.created_by = supporters.links.user
users
product_areas.links.updated_by = users.id
product_areas.links.created_by = users.id

created_at

DATE-TIME

id

INTEGER

links

OBJECT

name

STRING

updated_at

DATE-TIME

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.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

updated_at

Useful links

UserVoice documentation

requests schema on GitHub

UserVoice API method

Join requests with on
comments
requests.links.suggestion = comments.links.suggestion
requests.links.user = comments.links.created_by
requests.links.created_by = comments.links.created_by
requests.links.updated_by = comments.links.created_by
status_updates
requests.links.suggestion = status_updates.links.suggestion
requests.links.user = status_updates.links.user
requests.links.created_by = status_updates.links.user
requests.links.updated_by = status_updates.links.user
suggestions
requests.links.suggestion = suggestions.id
requests.links.suggestion = suggestions.links.parent_suggestion
requests.links.user = suggestions.links.created_by
requests.links.created_by = suggestions.links.created_by
requests.links.updated_by = suggestions.links.created_by
supporters
requests.links.suggestion = supporters.links.suggestion
requests.links.supporter = supporters.id
requests.links.user = supporters.links.created_by
requests.links.created_by = supporters.links.created_by
requests.links.updated_by = supporters.links.created_by
requests.links.user = supporters.links.updated_by
requests.links.created_by = supporters.links.updated_by
requests.links.updated_by = supporters.links.updated_by
requests.links.user = supporters.links.user
requests.links.created_by = supporters.links.user
requests.links.updated_by = supporters.links.user
features
requests.links.user = features.links.updated_by
requests.links.created_by = features.links.updated_by
requests.links.updated_by = features.links.updated_by
requests.links.user = features.links.created_by
requests.links.created_by = features.links.created_by
requests.links.updated_by = features.links.created_by
feature_statuses
requests.links.user = feature_statuses.links.updated_by
requests.links.created_by = feature_statuses.links.updated_by
requests.links.updated_by = feature_statuses.links.updated_by
requests.links.user = feature_statuses.links.created_by
requests.links.created_by = feature_statuses.links.created_by
requests.links.updated_by = feature_statuses.links.created_by
forums
requests.links.user = forums.links.updated_by
requests.links.created_by = forums.links.updated_by
requests.links.updated_by = forums.links.updated_by
nps_ratings
requests.links.user = nps_ratings.links.user
requests.links.created_by = nps_ratings.links.user
requests.links.updated_by = nps_ratings.links.user
product_areas
requests.links.user = product_areas.links.updated_by
requests.links.created_by = product_areas.links.updated_by
requests.links.updated_by = product_areas.links.updated_by
requests.links.user = product_areas.links.created_by
requests.links.created_by = product_areas.links.created_by
requests.links.updated_by = product_areas.links.created_by
segmented_values
requests.links.user = segmented_values.links.created_by
requests.links.created_by = segmented_values.links.created_by
requests.links.updated_by = segmented_values.links.created_by
requests.links.user = segmented_values.links.updated_by
requests.links.created_by = segmented_values.links.updated_by
requests.links.updated_by = segmented_values.links.updated_by
users
requests.links.user = users.id
requests.links.created_by = users.id
requests.links.updated_by = users.id

body

STRING

body_mime_type

STRING

channel

STRING

created_at

DATE-TIME

id

INTEGER

links

OBJECT

severity

INTEGER

source_guid

STRING

source_type

STRING

source_url

STRING

updated_at

DATE-TIME

segmented_values

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

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

updated_at

Useful links

UserVoice documentation

segmented_values schema on GitHub

UserVoice API method

Join segmented_values with on
comments
segmented_values.links.created_by = comments.links.created_by
segmented_values.links.updated_by = comments.links.created_by
features
segmented_values.links.created_by = features.links.updated_by
segmented_values.links.updated_by = features.links.updated_by
segmented_values.links.created_by = features.links.created_by
segmented_values.links.updated_by = features.links.created_by
feature_statuses
segmented_values.links.created_by = feature_statuses.links.updated_by
segmented_values.links.updated_by = feature_statuses.links.updated_by
segmented_values.links.created_by = feature_statuses.links.created_by
segmented_values.links.updated_by = feature_statuses.links.created_by
forums
segmented_values.links.created_by = forums.links.updated_by
segmented_values.links.updated_by = forums.links.updated_by
nps_ratings
segmented_values.links.created_by = nps_ratings.links.user
segmented_values.links.updated_by = nps_ratings.links.user
product_areas
segmented_values.links.created_by = product_areas.links.updated_by
segmented_values.links.updated_by = product_areas.links.updated_by
segmented_values.links.created_by = product_areas.links.created_by
segmented_values.links.updated_by = product_areas.links.created_by
requests
segmented_values.links.created_by = requests.links.user
segmented_values.links.updated_by = requests.links.user
segmented_values.links.created_by = requests.links.created_by
segmented_values.links.updated_by = requests.links.created_by
segmented_values.links.created_by = requests.links.updated_by
segmented_values.links.updated_by = requests.links.updated_by
status_updates
segmented_values.links.created_by = status_updates.links.user
segmented_values.links.updated_by = status_updates.links.user
suggestions
segmented_values.links.created_by = suggestions.links.created_by
segmented_values.links.updated_by = suggestions.links.created_by
supporters
segmented_values.links.created_by = supporters.links.created_by
segmented_values.links.updated_by = supporters.links.created_by
segmented_values.links.created_by = supporters.links.updated_by
segmented_values.links.updated_by = supporters.links.updated_by
segmented_values.links.created_by = supporters.links.user
segmented_values.links.updated_by = supporters.links.user
users
segmented_values.links.created_by = users.id
segmented_values.links.updated_by = users.id

column_type

STRING

created_at

DATE-TIME

id

INTEGER

key

STRING

links

OBJECT

name

STRING

object_type

STRING

updated_at

DATE-TIME

segments

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

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

updated_at

Useful links

UserVoice documentation

segments schema on GitHub

UserVoice API method

created_at

DATE-TIME

filters

OBJECT

column

STRING

expressions

OBJECT

column

STRING

operand

STRING

operator

STRING

unit

operand

STRING

operator

STRING

unit

id

INTEGER

key

STRING

name

STRING

updated_at

DATE-TIME

status_updates

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

Replication Method

Key-based Incremental

Replication Key

updated_at

Useful links

UserVoice documentation

status_updates schema on GitHub

UserVoice API method

Join status_updates with on
statuses
status_updates.links.new_status = statuses.id
status_updates.links.old_status = statuses.id
suggestions
status_updates.links.new_status = suggestions.links.status
status_updates.links.old_status = suggestions.links.status
status_updates.id = suggestions.links.last_status_update
status_updates.links.suggestion = suggestions.id
status_updates.links.suggestion = suggestions.links.parent_suggestion
status_updates.links.user = suggestions.links.created_by
comments
status_updates.links.suggestion = comments.links.suggestion
status_updates.links.user = comments.links.created_by
requests
status_updates.links.suggestion = requests.links.suggestion
status_updates.links.user = requests.links.user
status_updates.links.user = requests.links.created_by
status_updates.links.user = requests.links.updated_by
supporters
status_updates.links.suggestion = supporters.links.suggestion
status_updates.links.user = supporters.links.created_by
status_updates.links.user = supporters.links.updated_by
status_updates.links.user = supporters.links.user
features
status_updates.links.user = features.links.updated_by
status_updates.links.user = features.links.created_by
feature_statuses
status_updates.links.user = feature_statuses.links.updated_by
status_updates.links.user = feature_statuses.links.created_by
forums
status_updates.links.user = forums.links.updated_by
nps_ratings
status_updates.links.user = nps_ratings.links.user
product_areas
status_updates.links.user = product_areas.links.updated_by
status_updates.links.user = product_areas.links.created_by
segmented_values
status_updates.links.user = segmented_values.links.created_by
status_updates.links.user = segmented_values.links.updated_by
users
status_updates.links.user = users.id

body

STRING

created_at

DATE-TIME

id

INTEGER

links

OBJECT

mail_clicked_count

INTEGER

mail_opened_count

INTEGER

mail_sent_count

INTEGER

notification_email_address

STRING

supporters_notified

BOOLEAN

updated_at

DATE-TIME

statuses

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

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

updated_at

Useful links

UserVoice documentation

statuses schema on GitHub

UserVoice API method

Join statuses with on
status_updates
statuses.id = status_updates.links.new_status
statuses.id = status_updates.links.old_status
suggestions
statuses.id = suggestions.links.status

allow_comments

BOOLEAN

created_at

DATE-TIME

hex_color

STRING

id

INTEGER

is_open

BOOLEAN

name

STRING

position

INTEGER

updated_at

DATE-TIME

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.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

updated_at

Useful links

UserVoice documentation

suggestions schema on GitHub

UserVoice API method

Join suggestions with on
categories
suggestions.links.category = categories.id
suggestions.links.forum = categories.links.forum
forums
suggestions.links.forum = forums.id
suggestions.links.created_by = forums.links.updated_by
labels
suggestions.links.labels.value = labels.id
suggestions.links.labels.value = labels.links.parent
status_updates
suggestions.links.status = status_updates.links.new_status
suggestions.links.status = status_updates.links.old_status
suggestions.links.last_status_update = status_updates.id
suggestions.id = status_updates.links.suggestion
suggestions.links.parent_suggestion = status_updates.links.suggestion
suggestions.links.created_by = status_updates.links.user
statuses
suggestions.links.status = statuses.id
comments
suggestions.id = comments.links.suggestion
suggestions.links.parent_suggestion = comments.links.suggestion
suggestions.links.created_by = comments.links.created_by
requests
suggestions.id = requests.links.suggestion
suggestions.links.parent_suggestion = requests.links.suggestion
suggestions.links.created_by = requests.links.user
suggestions.links.created_by = requests.links.created_by
suggestions.links.created_by = requests.links.updated_by
supporters
suggestions.id = supporters.links.suggestion
suggestions.links.parent_suggestion = supporters.links.suggestion
suggestions.links.created_by = supporters.links.created_by
suggestions.links.created_by = supporters.links.updated_by
suggestions.links.created_by = supporters.links.user
features
suggestions.links.created_by = features.links.updated_by
suggestions.links.created_by = features.links.created_by
feature_statuses
suggestions.links.created_by = feature_statuses.links.updated_by
suggestions.links.created_by = feature_statuses.links.created_by
nps_ratings
suggestions.links.created_by = nps_ratings.links.user
product_areas
suggestions.links.created_by = product_areas.links.updated_by
suggestions.links.created_by = product_areas.links.created_by
segmented_values
suggestions.links.created_by = segmented_values.links.created_by
suggestions.links.created_by = segmented_values.links.updated_by
users
suggestions.links.created_by = users.id

admin_url

STRING

approved_at

DATE-TIME

average_engagement

NUMBER

body

STRING

body_mime_type

STRING

channel

STRING

closed_at

DATE-TIME

comments_count

INTEGER

created_at

DATE-TIME

creator_browser

STRING

creator_browser_version

STRING

creator_mobile

BOOLEAN

creator_os

STRING

creator_referrer

STRING

creator_user_agent

STRING

engagement_trend

NUMBER

first_support_at

DATE-TIME

id

INTEGER

inappropriate_flags_count

INTEGER

is_blocker

BOOLEAN

links

OBJECT

notes_count

INTEGER

portal_url

STRING

recent_engagement

INTEGER

requests_count

INTEGER

satisfaction_detractor_count

INTEGER

satisfaction_neutral_count

INTEGER

satisfaction_promoter_count

INTEGER

state

STRING

supporter_mrr

NUMBER

supporter_satisfaction_score

NUMBER

supporters_count

INTEGER

supporting_accounts_count

INTEGER

title

STRING

updated_at

DATE-TIME

votes_count

INTEGER

supporters

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

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

updated_at

Useful links

UserVoice documentation

supporters schema on GitHub

UserVoice API method

Join supporters with on
comments
supporters.links.suggestion = comments.links.suggestion
supporters.links.created_by = comments.links.created_by
supporters.links.updated_by = comments.links.created_by
supporters.links.user = comments.links.created_by
requests
supporters.links.suggestion = requests.links.suggestion
supporters.id = requests.links.supporter
supporters.links.created_by = requests.links.user
supporters.links.updated_by = requests.links.user
supporters.links.user = requests.links.user
supporters.links.created_by = requests.links.created_by
supporters.links.updated_by = requests.links.created_by
supporters.links.user = requests.links.created_by
supporters.links.created_by = requests.links.updated_by
supporters.links.updated_by = requests.links.updated_by
supporters.links.user = requests.links.updated_by
status_updates
supporters.links.suggestion = status_updates.links.suggestion
supporters.links.created_by = status_updates.links.user
supporters.links.updated_by = status_updates.links.user
supporters.links.user = status_updates.links.user
suggestions
supporters.links.suggestion = suggestions.id
supporters.links.suggestion = suggestions.links.parent_suggestion
supporters.links.created_by = suggestions.links.created_by
supporters.links.updated_by = suggestions.links.created_by
supporters.links.user = suggestions.links.created_by
features
supporters.links.created_by = features.links.updated_by
supporters.links.updated_by = features.links.updated_by
supporters.links.user = features.links.updated_by
supporters.links.created_by = features.links.created_by
supporters.links.updated_by = features.links.created_by
supporters.links.user = features.links.created_by
feature_statuses
supporters.links.created_by = feature_statuses.links.updated_by
supporters.links.updated_by = feature_statuses.links.updated_by
supporters.links.user = feature_statuses.links.updated_by
supporters.links.created_by = feature_statuses.links.created_by
supporters.links.updated_by = feature_statuses.links.created_by
supporters.links.user = feature_statuses.links.created_by
forums
supporters.links.created_by = forums.links.updated_by
supporters.links.updated_by = forums.links.updated_by
supporters.links.user = forums.links.updated_by
nps_ratings
supporters.links.created_by = nps_ratings.links.user
supporters.links.updated_by = nps_ratings.links.user
supporters.links.user = nps_ratings.links.user
product_areas
supporters.links.created_by = product_areas.links.updated_by
supporters.links.updated_by = product_areas.links.updated_by
supporters.links.user = product_areas.links.updated_by
supporters.links.created_by = product_areas.links.created_by
supporters.links.updated_by = product_areas.links.created_by
supporters.links.user = product_areas.links.created_by
segmented_values
supporters.links.created_by = segmented_values.links.created_by
supporters.links.updated_by = segmented_values.links.created_by
supporters.links.user = segmented_values.links.created_by
supporters.links.created_by = segmented_values.links.updated_by
supporters.links.updated_by = segmented_values.links.updated_by
supporters.links.user = segmented_values.links.updated_by
users
supporters.links.created_by = users.id
supporters.links.updated_by = users.id
supporters.links.user = users.id

channel

STRING

comments_count

INTEGER

created_at

DATE-TIME

how

STRING

id

INTEGER

is_subscribed

BOOLEAN

links

OBJECT

requests_count

INTEGER

updated_at

DATE-TIME

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.

Replication Method

Key-based Incremental

Primary Key

id

Useful links

UserVoice documentation

teams schema on GitHub

UserVoice API method

Join teams with on
users
teams.id = users.links.teams.value

id

INTEGER

members_count

INTEGER

name

STRING

users

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

Replication Method

Key-based Incremental

Primary Key

id

Replication Keys

updated_at

created_at

Useful links

UserVoice documentation

users schema on GitHub

UserVoice API method

Join users with on
external_users
users.links.external_users.value = external_users.id
teams
users.links.teams.value = teams.id
comments
users.id = comments.links.created_by
features
users.id = features.links.updated_by
users.id = features.links.created_by
feature_statuses
users.id = feature_statuses.links.updated_by
users.id = feature_statuses.links.created_by
forums
users.id = forums.links.updated_by
nps_ratings
users.id = nps_ratings.links.user
product_areas
users.id = product_areas.links.updated_by
users.id = product_areas.links.created_by
requests
users.id = requests.links.user
users.id = requests.links.created_by
users.id = requests.links.updated_by
segmented_values
users.id = segmented_values.links.created_by
users.id = segmented_values.links.updated_by
status_updates
users.id = status_updates.links.user
suggestions
users.id = suggestions.links.created_by
supporters
users.id = supporters.links.created_by
users.id = supporters.links.updated_by
users.id = supporters.links.user

allowed_state

STRING

avatar_url

STRING

city

STRING

comment_notifications

BOOLEAN

country

STRING

created_at

DATE-TIME

email_address

STRING

email_confirmed

BOOLEAN

guid

STRING

id

INTEGER

is_admin

BOOLEAN

is_owner

BOOLEAN

job_title

STRING

last_ip

STRING

links

OBJECT

name

STRING

region

STRING

satisfaction_score

INTEGER

state

STRING

status_notifications

BOOLEAN

supported_suggestions_count

INTEGER

updated_at

DATE-TIME


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.