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
The categories
contains info about the various categories in your UserVoice account. Categories are used to organize suggestions in a forum.
Key-based Incremental |
|
Primary Key |
id |
Replication Key |
updated_at |
Useful links |
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.
Key-based Incremental |
|
Primary Key |
id |
Replication Key |
updated_at |
Useful links |
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.
Key-based Incremental |
|
Primary Key |
id |
Replication Key |
updated_at |
Useful links |
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.
Key-based Incremental |
|
Primary Key |
id |
Replication Key |
updated_at |
Useful links |
Join external_users with | on |
---|---|
users |
external_users.id = users.links.external_users.value |
created_at DATE-TIME |
||
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.
Key-based Incremental |
|
Primary Key |
id |
Replication Key |
updated_at |
Useful links |
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.
Key-based Incremental |
|
Primary Key |
id |
Replication Key |
updated_at |
Useful links |
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.
Key-based Incremental |
|
Primary Key |
id |
Replication Key |
updated_at |
Useful links |
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.
Key-based Incremental |
|
Primary Key |
id |
Replication Key |
updated_at |
Useful links |
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.
Key-based Incremental |
|
Primary Key |
id |
Replication Key |
updated_at |
Useful links |
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.
Key-based Incremental |
|
Primary Key |
id |
Replication Key |
updated_at |
Useful links |
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.
Key-based Incremental |
|
Primary Key |
id |
Replication Key |
updated_at |
Useful links |
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.
Key-based Incremental |
|
Primary Key |
id |
Replication Key |
updated_at |
Useful links |
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.
Key-based Incremental |
|
Primary Key |
id |
Replication Key |
updated_at |
Useful links |
created_at DATE-TIME |
|||||||||
filters OBJECT
|
|||||||||
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.
Key-based Incremental |
|
Replication Key |
updated_at |
Useful links |
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.
Key-based Incremental |
|
Primary Key |
id |
Replication Key |
updated_at |
Useful links |
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.
Key-based Incremental |
|
Primary Key |
id |
Replication Key |
updated_at |
Useful links |
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.
Key-based Incremental |
|
Primary Key |
id |
Replication Key |
updated_at |
Useful links |
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.
Key-based Incremental |
|
Primary Key |
id |
Useful links |
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.
Key-based Incremental |
|
Primary Key |
id |
Replication Keys |
updated_at created_at |
Useful links |
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 |
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.