Skip to main content
Connectors

Retently connector

Set up the Retently connector in Kaivo: authentication, configuration, the 8 BigQuery tables it syncs, and answers to common questions.

Written By Lauri Raivio

Last updated 16 days ago

Kaivo is a fully managed data platform that syncs your Retently data into a Google BigQuery warehouse and keeps it up to date automatically. There is no pipeline to build and no infrastructure to run, so you can spend your time analysing your customer support data instead of moving it.

What is the Retently connector

Sync your Retently survey data into BigQuery with Kaivo to analyse NPS and customer feedback over time.

CategoryCustomer Service
AuthenticationAPI key
SetupSelf-service

Getting started with the Retently connector

  1. Sign up for Kaivo and create a workspace.
  2. Connect your Retently account.
  3. Choose which tables to sync.
  4. Wait for the initial sync to finish.
  5. Query your data in BigQuery or your favourite AI or BI tool.

Authenticating Retently

Authenticate with your API Token.

FieldDescription
API Token

Retently API Token. See the docs for more information on how to obtain this key.

Tables and columns synced from Retently

Kaivo syncs 8 tables from Retently into a dedicated dataset in your BigQuery warehouse. Click any table to see its columns and types.

ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
typeSTRINGThe type of the campaign (e.g., feedback request, promotional offer).
channelSTRINGThe communication channel used for the campaign (e.g., email, SMS, in-app push notification).
idSTRINGThe unique identifier of the campaign.
is_activeBOOLIndicates whether the campaign is currently active or not.
metricSTRINGThe metric associated with the campaign (e.g., NPS score, CSAT score).
nameSTRINGThe name or title of the campaign.
template_idSTRINGThe ID of the template used for the campaign.
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
company_nameSTRINGThe name of the company.
contacts_countFLOAT64The number of contacts associated with the company.
created_dateSTRINGThe date and time when the company was created.
cx_metrics__cesFLOAT64Customer Effort Score for the company.
cx_metrics__csatFLOAT64Customer Satisfaction Score for the company.
cx_metrics__npsFLOAT64Net Promoter Score for the company.
cx_metrics__starFLOAT64STAR rating for the company.
domainSTRINGThe domain of the company.
idSTRINGUnique identifier for the company.
industry_nameSTRINGThe industry to which the company belongs.
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: companies__tags

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
valueSTRINGIndividual tag related to the company.
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
company_idSTRINGThe unique identifier of the company the customer belongs to.
company_nameSTRINGThe name of the company the customer belongs to.
created_dateSTRINGThe date and time when the customer record was created.
emailSTRINGThe email address of the customer.
first_nameSTRINGThe first name of the customer.
idSTRINGThe unique identifier of the customer.
last_nameSTRINGThe last name of the customer.
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: customers__properties

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
typeSTRINGThe data type of the custom property.
labelSTRINGThe label for the custom property.
nameSTRINGThe name of the custom property.
valueSTRINGThe value of the custom property.
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: customers__tags

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
valueSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
assignedSTRINGUser or team assigned to handle the feedback
campaign_idSTRINGID of the campaign associated with the feedback
campaign_nameSTRINGName of the campaign associated with the feedback
channelSTRINGCommunication channel used to collect the feedback
checkboxBOOLCheckbox responses provided in the feedback
citySTRINGCity of the feedback provider
commentSTRINGOpen text comment provided as feedback
company_idSTRINGID of the company receiving the feedback
company_nameSTRINGName of the company receiving the feedback
countrySTRINGCountry of the feedback provider
created_dateSTRINGDate and time when the feedback was created
customer_idSTRINGID of the customer providing the feedback
emailSTRINGEmail address of the feedback provider
first_nameSTRINGFirst name of the feedback provider
idSTRINGUnique identifier for the feedback entry
is_bogusBOOLFlag indicating if the feedback is deemed bogus
job_titleSTRINGJob title of the feedback provider
last_nameSTRINGLast name of the feedback provider
metrics_typeSTRINGType of metrics used in evaluating the feedback
rating_categorySTRINGCategory under which the feedback is rated
resolvedBOOLIndicator of whether the feedback has been resolved or not
scoreFLOAT64Numeric score assigned to the feedback
stateSTRINGState or region of the feedback provider
statusSTRINGCurrent status of the feedback entry
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: feedback__additional_questions

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: feedback__custom_props

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: feedback__feedback_tags

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
valueSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: feedback__feedback_tags_new

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
valueSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: feedback__feedback_topics

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: feedback__notes

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: feedback__tags

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
valueSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
detractorsINT64Array of responses falling under the detractor category.
detractors_countINT64Total count of detractor responses.
metrics_typeSTRINGType of metrics being used (e.g., Net Promoter Score).
passivesINT64Array of responses falling under the passive category.
passives_countINT64Total count of passive responses.
promotersINT64Array of responses falling under the promoter category.
promoters_countINT64Total count of promoter responses.
scoreINT64Calculated Net Promoter Score based on the responses.
score_sumINT64Sum of scores received from all responses.
total_responsesINT64Total count of responses received for NPS calculation.
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
campaignSTRINGName or identifier of the campaign associated with the outbox data.
campaign_idSTRINGUnique ID of the campaign associated with the outbox data.
channelSTRINGCommunication channel used for sending the outbox message.
company_idSTRINGUnique ID of the company sending the outbox message.
company_nameSTRINGName of the company sending the outbox message.
customer_idSTRINGUnique ID of the customer who received the outbox message.
detailed_status__has_feedbackBOOLIndicates if there is feedback for the outbox message.
detailed_status__is_bouncedBOOLIndicates if the message bounced.
detailed_status__is_openedBOOLIndicates if the message was opened.
detailed_status__is_opted_outBOOLIndicates if the recipient opted out of receiving messages.
detailed_status__is_respondedBOOLIndicates if the recipient responded to the message.
detailed_status__opened_dateSTRINGDate and time when the message was opened.
detailed_status__responded_dateSTRINGDate and time when the recipient responded to the message.
emailSTRINGEmail address of the recipient who received the outbox message.
first_nameSTRINGFirst name of the recipient who received the outbox message.
last_nameSTRINGLast name of the recipient who received the outbox message.
mandrill_message_idSTRINGUnique ID assigned by Mandrill for the outbox message.
sent_bySTRINGIdentifier of the user or system that sent the outbox message.
sent_dateSTRINGDate and time when the outbox message was sent.
statusSTRINGOverall status of the outbox message delivery.
subjectSTRINGSubject of the outbox message.
survey_template_idSTRINGUnique ID of the survey template associated with the outbox message.
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: outbox__additional_recipients

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: outbox__attributes__custom_props

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
typeSTRINGType of the custom property data.
labelSTRINGLabel for the custom property.
nameSTRINGName of the custom property.
valueSTRINGValue of the custom property data.
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: outbox__attributes__customer_tags

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
valueSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: outbox__person_tags

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
valueSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
campaign_idSTRINGUnique identifier for the campaign.
delivery_stats__is_bouncedFLOAT64Number of emails that bounced.
delivery_stats__openedFLOAT64Number of emails that were opened.
delivery_stats__opted_outFLOAT64Number of recipients who opted out of receiving further emails.
delivery_stats__respondedFLOAT64Number of recipients who responded to the campaign.
delivery_stats__total_countFLOAT64Total count of delivered emails.
last__detractorsFLOAT64Number of detractors in the feedback.
last__passivesFLOAT64Number of passives in the feedback.
last__promotersFLOAT64Number of promoters in the feedback.
last__scoreFLOAT64Overall feedback score calculated based on detractors, passives, and promoters.
last__totalFLOAT64Total count of feedback received.
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: reports__questions_stats

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: reports__trend

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
daySTRINGDay for which the trend data is recorded.
detractorsFLOAT64Number of detractors on the specific day.
passivesFLOAT64Number of passives on the specific day.
promotersFLOAT64Number of promoters on the specific day.
scoreFLOAT64Overall feedback score calculated for the specific day.
totalFLOAT64Total feedback count on the specific day.
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
channelSTRINGThe communication channel for the template (e.g., email, SMS, in-app notification)
idSTRINGThe unique identifier of the template
metricSTRINGThe key metric that this template is associated with (e.g., NPS score, CSAT rating)
nameSTRINGThe name or title of the template
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

How the Retently sync works

After the first load, Kaivo keeps your BigQuery warehouse up to date for you. Where Retently supports it, each sync pulls only new and changed records so it stays fast; otherwise it refreshes the whole table. Every record keeps its original ID, so you won't get duplicate rows.

Frequently asked questions

How long does the initial sync take for Retently?

It depends on how much history is in your Retently account. Most initial syncs finish within minutes, while large accounts can take a few hours. After that, syncs only fetch new and changed records, so they're much faster.

Can I sync only some tables or columns?

Yes. You pick which tables to sync when you set up the connection and can change the selection later. Tables you don't select are never copied to your warehouse.

What happens when Retently's schema changes?

New fields are never added automatically. You choose which fields to sync, so data you haven't selected (sensitive personal data, for example) never lands in your warehouse. When a new field appears, it becomes available for you to add. What happens to removed or renamed fields depends on a table's sync mode: full-refresh tables always match what's currently in Retently, so dropped fields disappear, while incremental tables keep their existing columns and history, so an old field stays and newly added fields fill in over time.

How do I handle GDPR or data deletion requests?

Your data lives in your own Kaivo-managed BigQuery warehouse, so the most direct option is to delete or anonymise specific records right in BigQuery. If you delete data in Retently instead, full-refresh tables drop it on the next sync, while incremental tables keep it, so you would remove the row in BigQuery or ask us to run a full refresh. To remove everything, delete the Retently connector in Kaivo and all of its synced data is deleted with it.

Common use cases for Retently data

Use nps and feedback to track satisfaction over time and by segment.

Campaign view

Join campaigns with feedback to see which surveys drive responses.

Account context

Use companies and customers to connect feedback to specific accounts.

Use Retently data in your AI and BI tools

Once Retently data lands in your Kaivo-managed BigQuery warehouse, you can explore it with AI tools or any BI tool that connects to BigQuery. Here's how the most common destinations work with Retently data.

Claude

Use Kaivo's MCP server to give Claude secure, workspace-scoped access to your data. Setup guide →

Power BI

Microsoft's BI tool with a native BigQuery connector. Supports direct query and scheduled refresh. Setup guide →

Data Studio

Free Google BI tool with native BigQuery support. One-click connection to your Kaivo warehouse; great for SMB teams on Google Workspace. Setup guide →

Tableau

The premium analytics standard, with native BigQuery integration. Setup guide →

Google Sheets

Use Connected Sheets to query BigQuery directly from a spreadsheet, with no SQL. Setup guide →

Excel

Connect via Power Query's BigQuery connector. Setup guide →

Metabase

Open-source BI tool with strong BigQuery support. Setup guide →

See our pricing page for Retently connector pricing and plan details.

Was this helpful?

Still need help? Share an idea