Skip to main content
Connectors

Zendesk Chat connector

Set up the Zendesk Chat connector in Kaivo: authentication, configuration, the 12 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 Zendesk Chat 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 Zendesk Chat connector

Sync your Zendesk Chat conversations and agents into BigQuery with Kaivo to analyse chat support alongside the rest of your data.

CategoryCustomer Service
AuthenticationAPI key
SetupSelf-service

Getting started with the Zendesk Chat connector

  1. Sign up for Kaivo and create a workspace.
  2. Connect your Zendesk Chat 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 Zendesk Chat

Authenticate with your Access Token.

FieldDescription
Access Token

The Access Token to make authenticated requests.

Configuring the Zendesk Chat connector

When you set up the connector, you provide:

FieldDescription
Start Date

Any data before this date will not be fetched.

Subdomain

The unique subdomain of your Zendesk account (without https://). See the Zendesk docs to find your subdomain.

Tables and columns synced from Zendesk Chat

Kaivo syncs 12 tables from Zendesk Chat 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.
account_keySTRING
billing__additional_infoSTRING
billing__address1STRING
billing__address2STRING
billing__citySTRING
billing__companySTRING
billing__country_codeSTRING
billing__cycleINT64
billing__emailSTRING
billing__first_nameSTRING
billing__last_nameSTRING
billing__phoneSTRING
billing__postal_codeSTRING
billing__stateSTRING
create_dateTIMESTAMP
plan__agent_leaderboardBOOL
plan__agent_reportsBOOL
plan__analyticsBOOL
plan__chat_reportsBOOL
plan__daily_reportsBOOL
plan__email_reportsBOOL
plan__file_uploadBOOL
plan__goalsINT64
plan__high_loadBOOL
plan__integrationsBOOL
plan__ip_restrictionBOOL
plan__long_descSTRING
plan__max_advanced_triggersSTRING
plan__max_agentsINT64
plan__max_basic_triggersSTRING
plan__max_concurrent_chatsSTRING
plan__max_departmentsSTRING
plan__max_history_search_daysSTRING
plan__monitoringBOOL
plan__nameSTRING
plan__operating_hoursBOOL
plan__priceFLOAT64
plan__rest_apiBOOL
plan__short_descSTRING
plan__slaBOOL
plan__supportBOOL
plan__unbrandingBOOL
plan__widget_customizationSTRING
statusSTRING
_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.
agent_idINT64
durationFLOAT64
engagement_countINT64
idSTRING
start_timeTIMESTAMP
statusSTRING
_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.
create_dateTIMESTAMP
display_nameSTRING
emailSTRING
enabledBOOL
first_nameSTRING
idINT64
last_loginTIMESTAMP
last_nameSTRING
login_countINT64
role_idINT64
roles__administratorBOOL
roles__ownerBOOL
scopeSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: agents__departments

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.
valueINT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: agents__enabled_departments

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.
valueJSON
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: agents__skills

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.
valueINT64
_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.
typeSTRING
create_dateTIMESTAMP
idINT64
ip_addressSTRING
reasonSTRING
visitor_idSTRING
visitor_nameSTRING
_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.
typeSTRING
commentSTRING
count__agentINT64
count__totalINT64
count__visitorINT64
deletedBOOL
department_idINT64
department_nameSTRING
durationINT64
idSTRING
messageSTRING
missedBOOL
ratingSTRING
response_time__avgFLOAT64
response_time__firstINT64
response_time__maxINT64
sessionJSON
started_bySTRING
timestampTIMESTAMP
triggeredBOOL
triggered_responseBOOL
unreadBOOL
update_timestampTIMESTAMP
visitor__emailSTRING
visitor__idSTRING
visitor__nameSTRING
visitor__notesSTRING
visitor__phoneSTRING
zendesk_ticket_idINT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: chats__agent_ids

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

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

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.
attribution__agent_idINT64
attribution__agent_nameSTRING
attribution__chat_timestampTIMESTAMP
attribution__department_idINT64
attribution__department_nameSTRING
goal_idINT64
goal_nameSTRING
idSTRING
timestampTIMESTAMP
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: chats__engagements

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.
acceptedBOOL
agent_full_nameSTRING
agent_idSTRING
agent_nameSTRING
assignedBOOL
commentSTRING
count__agentINT64
count__totalINT64
count__visitorINT64
department_idINT64
durationFLOAT64
idSTRING
ratingSTRING
response_time__avgFLOAT64
response_time__firstINT64
response_time__maxINT64
skills_fulfilledBOOL
started_bySTRING
timestampTIMESTAMP
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: chats__engagements__skills_requested

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.
valueJSON
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: chats__history

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.
typeSTRING
channelSTRING
conversion__attribution__agent_idINT64
conversion__attribution__agent_nameSTRING
conversion__attribution__chat_timestampTIMESTAMP
conversion__attribution__department_idINT64
conversion__attribution__department_nameSTRING
conversion__goal_idINT64
conversion__goal_nameSTRING
conversion__idSTRING
conversion__timestampTIMESTAMP
department_idSTRING
department_nameSTRING
msgSTRING
msg_idSTRING
nameSTRING
new_ratingSTRING
nickSTRING
optionsSTRING
prev_department_idSTRING
ratingSTRING
timestampTIMESTAMP
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: chats__history__new_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.
valueJSON
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: chats__history__skills_name

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.
valueJSON
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: chats__history__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.
valueJSON
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: chats__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: chats__webpath

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.
fromSTRING
timestampTIMESTAMP
titleSTRING
toSTRING
_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.
descriptionSTRING
enabledBOOL
idINT64
nameSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: departments__members

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.
valueINT64
_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.
descriptionSTRING
attribution_modelSTRING
attribution_periodINT64
enabledBOOL
idINT64
nameSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: goals__settings__conditions

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.
typeSTRING
operatorSTRING
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.
descriptionSTRING
enabledBOOL
idINT64
members_countINT64
nameSTRING
permissions__access_analyticsSTRING
permissions__edit_chat_tagsBOOL
permissions__edit_department_agentsSTRING
permissions__edit_visitor_informationBOOL
permissions__edit_visitor_notesBOOL
permissions__manage_bansSTRING
permissions__manage_shortcutsSTRING
permissions__proactive_chattingSTRING
permissions__set_agent_chat_limitSTRING
permissions__view_monitorSTRING
permissions__view_past_chatsSTRING
permissions__visitors_seenSTRING
_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.
auto_idle__enabledBOOL
auto_idle__new_statusSTRING
auto_idle__reassignments_before_idleINT64
chat_limit__allow_agent_overrideBOOL
chat_limit__enabledBOOL
chat_limit__limitINT64
chat_limit__limit_typeSTRING
reassignment__enabledBOOL
reassignment__timeoutINT64
routing_modeSTRING
skill_routing__enabledBOOL
skill_routing__max_wait_timeINT64
_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.
idSTRING
messageSTRING
nameSTRING
optionsSTRING
scopeSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: shortcuts__departments

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.
valueINT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: shortcuts__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.
descriptionSTRING
enabledBOOL
idINT64
nameSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: skills__members

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.
valueINT64
_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.
descriptionSTRING
definition__versionINT64
enabledBOOL
idINT64
nameSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: triggers__definition__actions

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.
valueJSON
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: triggers__definition__condition

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.
valueJSON
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: triggers__definition__event

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.
valueJSON
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

How the Zendesk Chat sync works

After the first load, Kaivo keeps your BigQuery warehouse up to date for you. Where Zendesk Chat 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 Zendesk Chat?

It depends on how much history is in your Zendesk Chat 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 Zendesk Chat'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 Zendesk Chat, 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 Zendesk Chat 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 Zendesk Chat connector in Kaivo and all of its synced data is deleted with it.

Common use cases for Zendesk Chat data

Chat volume

Use chats to track conversation volume by department and over time.

Agent performance

Analyse agents and agent_timeline to monitor workload and availability.

Response times

Measure response and resolution times to find where chat support slows down.

Chat and support together

Join Zendesk Chat with your other support data in BigQuery for a full view.

Use Zendesk Chat data in your AI and BI tools

Once Zendesk Chat 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 Zendesk Chat 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 Zendesk Chat connector pricing and plan details.

Was this helpful?

Still need help? Share an idea