Skip to main content
Connectors

Perk connector

Set up the Perk connector in Kaivo: authentication, configuration, the 7 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 Perk 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 payment and finance data instead of moving it.

What is the Perk connector

Sync your Perk travel and expense data into BigQuery with Kaivo to analyse trips, bookings, spend, and cost centres in one place.

CategoryFinance & Payments
AuthenticationAPI key
SetupSelf-service

Getting started with the Perk connector

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

Authenticate with your API Key.

FieldDescription
API Key

Configuring the Perk connector

When you set up the connector, you provide:

FieldDescription
Start Date

Any data before this date will not be fetched.

Tables and columns synced from Perk

Kaivo syncs 7 tables from Perk 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.
typeSTRING
idSTRING
endSTRING
startSTRING
statusSTRING
trip_idSTRING
location__nameSTRING
location__addressSTRING
location__latitudeSTRING
location__longitudeSTRING
modifiedSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: bookings__legs

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

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.
origin__timeSTRING
origin__location__nameSTRING
origin__location__addressSTRING
origin__location__latitudeSTRING
origin__location__iata_codeSTRING
origin__location__longitudeSTRING
destination__timeSTRING
destination__location__nameSTRING
destination__location__addressSTRING
destination__location__latitudeSTRING
destination__location__iata_codeSTRING
destination__location__longitudeSTRING
external_idSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: bookings__references

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
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.
idSTRING
nameSTRING
count_usersFLOAT64
_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.
pdfSTRING
modeSTRING
totalSTRING
statusSTRING
to_dateSTRING
currencySTRING
due_dateSTRING
from_dateSTRING
referenceSTRING
profile_idSTRING
issuing_dateSTRING
profile_nameSTRING
serial_numberSTRING
billing_periodSTRING
billing_information__citySTRING
billing_information__legal_nameSTRING
billing_information__vat_numberSTRING
billing_information__postal_codeSTRING
billing_information__country_nameSTRING
billing_information__address_line_1STRING
billing_information__address_line_2STRING
travelperk_bank_account__bicSTRING
travelperk_bank_account__bank_nameSTRING
travelperk_bank_account__referenceSTRING
travelperk_bank_account__account_numberSTRING
credit_used_for_customer_paymentSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: invoices__taxes_summary

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.
totalSTRING
subtotalSTRING
tax_amountSTRING
tax_regimeSTRING
tax_percentageSTRING
_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
metadata__booker__nameSTRING
metadata__booker__emailSTRING
metadata__booker__external_idSTRING
metadata__vendor__codeSTRING
metadata__vendor__nameSTRING
metadata__serviceSTRING
metadata__trip_idFLOAT64
metadata__end_dateSTRING
metadata__trip_nameSTRING
metadata__start_dateSTRING
metadata__cost_centerSTRING
metadata__out_of_policyBOOL
metadata__related_verticalSTRING
metadata__service_location__origin__citySTRING
metadata__service_location__origin__codeSTRING
metadata__service_location__origin__nameSTRING
metadata__service_location__origin__countrySTRING
metadata__service_location__origin__latitudeSTRING
metadata__service_location__origin__longitudeSTRING
metadata__service_location__origin__country_codeSTRING
metadata__service_location__destination__citySTRING
metadata__service_location__destination__codeSTRING
metadata__service_location__destination__nameSTRING
metadata__service_location__destination__countrySTRING
metadata__service_location__destination__latitudeSTRING
metadata__service_location__destination__longitudeSTRING
metadata__service_location__destination__country_codeSTRING
metadata__service_location__hotel_location__citySTRING
metadata__service_location__hotel_location__countrySTRING
metadata__service_location__hotel_location__latitudeSTRING
metadata__service_location__hotel_location__longitudeSTRING
metadata__service_location__hotel_location__country_codeSTRING
idSTRING
currencySTRING
due_dateSTRING
quantityFLOAT64
profile_idSTRING
tax_amountSTRING
tax_regimeSTRING
unit_priceSTRING
expense_dateSTRING
invoice_modeSTRING
issuing_dateSTRING
profile_nameSTRING
total_amountSTRING
invoice_statusSTRING
tax_percentageSTRING
invoice_serial_numberSTRING
non_taxable_unit_priceSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: invoices_lines__metadata__labels

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

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

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.
nameSTRING
emailSTRING
external_idSTRING
_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
nameSTRING
currencySTRING
billing_periodSTRING
billing_information__citySTRING
billing_information__legal_nameSTRING
billing_information__vat_numberSTRING
billing_information__postal_codeSTRING
billing_information__address_line_1STRING
billing_information__address_line_2STRING
payment_method_typeSTRING
_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
endSTRING
startSTRING
statusSTRING
modifiedSTRING
booker_idSTRING
trip_nameSTRING
end_location__nameSTRING
end_location__addressSTRING
end_location__latitudeSTRING
end_location__iata_codeSTRING
end_location__longitudeSTRING
start_location__nameSTRING
start_location__addressSTRING
start_location__latitudeSTRING
start_location__iata_codeSTRING
start_location__longitudeSTRING
end_datetime_utcSTRING
end_datetime_localSTRING
start_datetime_utcSTRING
start_datetime_localSTRING
_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
name__titleSTRING
name__last_nameSTRING
name__first_nameSTRING
name__middle_nameSTRING
emailSTRING
activeBOOL
localeSTRING
user_nameSTRING
emergency_contact__nameSTRING
emergency_contact__phoneSTRING
preferred_languageSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: users__phone_numbers

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.

How the Perk sync works

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

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

Common use cases for Perk data

Travel spend

Use trips and bookings to track travel volume and cost over time.

Cost centre view

Join invoices_lines with cost_centers to break down spend.

Finance context

Use invoices to report travel spend alongside your finance data.

Use Perk data in your AI and BI tools

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

Was this helpful?

Still need help? Share an idea