Overview

Reforge Insight Analytics can connect to and pull data from your data warehouse of choice. Currently, we support Snowflake and BigQuery, but are always looking to expand our integrations.

Supported Warehouses

Data Models

We support several schemas and relationships between tables. With each of the schemas defined below, you can also provide a list of additional column names that you would like to be included on the respective fields as metadata. A few examples of common additional fields are for feedback or conversation messages, a “version” number that the feedback refers to, or for Contacts, a “plan” or “subscription tier”. When working with the team to connect to your data warehouse, simply share with us fields beyond those defined below that you would like to have included!

Standalone Feedback

Standalone feedback are singular items of feedback, such as a review or a single response to a question.

Field NameRequiredTypeDescription
idYesSTRINGUnique identifier for the feedback record
descriptionYesSTRINGThe main feedback content
created_atYesSTRINGWhen the feedback was created
updated_atYesDATEWhen the feedback was last updated
sourceNoSTRINGThe source of the feedback, e.g. “HUBSPOT”
titleNoSTRINGOptional title for the feedback
contact_idNoSTRINGOptional identifier linking to a contact

Conversation

A conversation is a collection of conversational feedback messages. For example, a chat log between a support agent and a user.

Field NameRequiredTypeDescription
idYesSTRINGUnique identifier for the conversation
titleNoSTRINGOptional title for the conversation
sourceNoSTRINGThe source of the feedback, e.g. “HUBSPOT”
created_atYesSTRINGWhen the conversation was created
updated_atNoDATEWhen the conversation was last updated

Conversation Message

These are the individual messages within a conversation, and should be linked to a conversation by the conversation_id field.

Field NameRequiredTypeDescription
idYesSTRINGUnique identifier for the message
created_atYesDATEWhen the message was sent
updated_atNoDATEWhen the message was last updated
conversation_idYesSTRINGID of the conversation this message belongs to
contentYesSTRINGThe message content
incomingYesBOOLEANWhether the message was sent by an external user
contact_idNoSTRINGOptional identifier linking to a contact

Contacts

Contacts are the users of your product.

Field NameRequiredTypeDescription
idYesSTRINGUnique identifier for the contact
nameYesSTRINGThe contact’s full name
emailYesSTRINGThe contact’s email address
account_idYesSTRINGThe account the contact belongs to
created_atYesDATEWhen the contact was created
updated_atYesDATEWhen the contact was last updated

Accounts

Accounts are the companies that your contacts belong to.

Field NameRequiredTypeDescription
idYesSTRINGUnique identifier for the account
nameYesSTRINGThe account’s name
domainYesSTRINGThe account’s domain
contract_valueNoNUMBERThe account’s contract value
created_atYesDATEWhen the account was created
updated_atYesDATEWhen the account was last updated

Custom Tables

Sometimes, you may not be able to map your data to the existing schemas. In this case, you can share your own, existing tables. This will require custom engineering work on our end, so understand that time will be required to support this.

If you are providing custom tables, then what we will need to do is to effectively write custom queries and map the data to schemas above on our end. Given that, helping us understand how to do that mapping will expedite the process and lead to better, faster results for getting your data into Insight Analytics.

When sharing custom table information, please provide the following:

1. Table Information The table names, column names, column types, and a description of the data in each column.

For example:

Customer Table: client_organizations

Column NameColumn TypeDescription
org_idSTRINGThe unique identifier for the organization
org_nameSTRINGThe name of the organization (maps to account name)
org_websiteSTRINGThe organization’s website domain (maps to account domain)
annual_revenueNUMBERThe organization’s annual contract value
creation_dateDATEWhen the organization was created (maps to account created_at)
last_modifiedDATEWhen the organization was last updated (maps to account updated_at)

Customer Table: client_users

Column NameColumn TypeDescription
user_idSTRINGThe unique identifier for the user (maps to contact id)
full_nameSTRINGThe user’s full name (maps to contact name)
user_emailSTRINGThe user’s email address (maps to contact email)
org_idSTRINGForeign key to client_organizations (maps to account_id)
signup_dateDATEWhen the user was created (maps to contact created_at)
profile_updatedDATEWhen the user profile was last updated (maps to contact updated_at)

Customer Table: support_tickets

Column NameColumn TypeDescription
ticket_idSTRINGUnique identifier for the support ticket (maps to conversation id)
opened_atDATEWhen the ticket was created (maps to conversation created_at)
closed_atDATEWhen the ticket was closed (maps to conversation updated_at)
user_idSTRINGUser who opened the ticket (maps to contact_id)
org_idSTRINGOrganization the ticket belongs to
statusSTRINGCurrent status of the ticket
prioritySTRINGPriority level of the ticket

Customer Table: ticket_messages

Column NameColumn TypeDescription
message_idSTRINGUnique identifier for the message (maps to message id)
ticket_idSTRINGForeign key to support_tickets (maps to conversation_id)
message_textSTRINGThe content of the message (maps to message content)
sent_timeDATEWhen the message was sent (maps to message created_at)
edited_timeDATEWhen the message was edited (maps to message updated_at)
from_customerBOOLEANWhether the message was from the customer (maps to incoming)
user_idSTRINGUser who sent the message (maps to contact_id)

2. Relationship Information If there are any relationships between the tables, please point out how the tables should be joined, as in which column on table A should be joined with which column on table B.

3. Data Mapping An explanation of how you would expect the data to map to the schemas defined above.

If you are interested in sharing custom tables, please reach out to your primary contact at Reforge.