Skip to main content
Connectors

Navan connector

Set up the Navan connector in Kaivo: authentication, configuration, the 1 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 Navan 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 data from Navan instead of moving it.

What is the Navan connector

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

CategoryOther
AuthenticationAPI key
SetupSelf-service

Getting started with the Navan connector

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

Authenticate with your OAuth Client Secret.

FieldDescription
OAuth Client Secret

The Secret Key of your Navan API credential. Copy it when the credential is created, as it is shown only once.

Prerequisites

Navan authenticates with OAuth client credentials, which a Navan administrator can create:

  1. In the Navan Admin Dashboard, go to Travel → Settings → Integrations and, under Navan API Credentials, click Create New.
  2. Copy the Client ID and Secret Key right away — the secret is shown only once.

Then enter those values below.

Need help? Reach our team via the chat in the bottom-right corner.

Configuring the Navan connector

When you set up the connector, you provide:

FieldDescription
OAuth Client ID

The Client ID of your Navan API credential.

Start Date

Any data before this date will not be fetched.

Tables and columns synced from Navan

Kaivo syncs 1 table from Navan 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.
airline_credit_card_surchargeFLOAT64
approval_statusSTRING
approver_emailSTRING
approver_reasonSTRING
base_priceFLOAT64
booker__cost_centerSTRING
booker__departmentSTRING
booker__emailSTRING
booker__manager_uuidSTRING
booker__nameSTRING
booker__regionSTRING
booker__subsidiarySTRING
booker__uuidSTRING
booking_durationFLOAT64
booking_feeFLOAT64
booking_idSTRING
booking_methodSTRING
booking_statusSTRING
booking_typeSTRING
cabinSTRING
cabin_purchasedSTRING
cancellation_reasonSTRING
cancelled_atSTRING
carbon_emissionsFLOAT64
carbon_offset_costFLOAT64
company_officeSTRING
company_payment_methodSTRING
confirmation_numberSTRING
corporate_discount_usedSTRING
createdSTRING
credit__credit_availableFLOAT64
credit__credit_available_usdFLOAT64
credit__credit_exchange_fee_usdFLOAT64
credit__credit_usedFLOAT64
credit__credit_used_usdFLOAT64
credit__residual_creditFLOAT64
currencySTRING
currency_exhange_rate_from_usdFLOAT64
destination__airport_codeSTRING
destination__citySTRING
destination__countrySTRING
destination__stateSTRING
domesticSTRING
end_dateSTRING
exchange_amountFLOAT64
exchange_feeFLOAT64
expensedBOOL
extras_feesFLOAT64
fare_basis_codeSTRING
fare_classSTRING
flightSTRING
flight_milesFLOAT64
grand_totalFLOAT64
gstFLOAT64
handling_feesFLOAT64
hstFLOAT64
inventorySTRING
inventory_sourceSTRING
invoiceSTRING
invoice_collection_feesFLOAT64
invoice_numberSTRING
last_modifiedSTRING
lead_time_in_daysFLOAT64
logged_as_user_nameSTRING
max_cancellation_lossFLOAT64
max_price_policyFLOAT64
name_on_credit_cardSTRING
navan_proBOOL
net_chargeFLOAT64
number_of_passengersFLOAT64
optimal_priceFLOAT64
origin__airport_codeSTRING
origin__citySTRING
origin__countrySTRING
origin__stateSTRING
out_of_policyBOOL
out_of_policy_descriptionSTRING
out_of_policy_violationsSTRING
payment_credit_card_type_nameSTRING
payment_methodSTRING
payment_method_usedSTRING
payment_scheduleSTRING
pccSTRING
pdfSTRING
policy_levelSTRING
ppb_points_burnedFLOAT64
preferred_vendorSTRING
purposeSTRING
qstFLOAT64
reasonSTRING
reshopping__reshopping_is_rebookedBOOL
reshopping__reshopping_new_priceFLOAT64
reshopping__reshopping_original_priceFLOAT64
resort_feeFLOAT64
route_typeSTRING
savingFLOAT64
saving_missedFLOAT64
seats_feeFLOAT64
start_dateSTRING
taxFLOAT64
train_milesFLOAT64
transaction_feesFLOAT64
travel_agent_request_feeFLOAT64
travel_spendFLOAT64
trip_bucks_earnedFLOAT64
trip_bucks_earned_usdFLOAT64
trip_descriptionSTRING
trip_feeFLOAT64
trip_lengthSTRING
trip_nameSTRING
unitary_priceFLOAT64
usd_grand_totalFLOAT64
uuidSTRING
vatFLOAT64
vendorSTRING
vip_feeFLOAT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: bookings__billable_entities

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

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

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

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

Subtable: bookings__etickets

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

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

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.
person__billable_entitySTRING
person__cost_centerSTRING
person__departmentSTRING
person__emailSTRING
person__manager_emailSTRING
person__manager_nameSTRING
person__manager_uuidSTRING
person__nameSTRING
person__passport__country_of_citizenshipSTRING
person__passport__country_of_issueSTRING
person__passport__expires_onSTRING
person__passport__issued_onSTRING
person__regionSTRING
person__subsidiarySTRING
person__uuidSTRING
statusSTRING
traveler_typeSTRING
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: bookings__regions

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

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: bookings__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.
airline_allianceSTRING
arrival__addressSTRING
arrival__airport_codeSTRING
arrival__citySTRING
arrival__countrySTRING
arrival__stateSTRING
cabinSTRING
cabin_purchasedSTRING
departure__addressSTRING
departure__airport_codeSTRING
departure__citySTRING
departure__countrySTRING
departure__stateSTRING
end_local_date_timeSTRING
end_timestampFLOAT64
fare_classSTRING
flight_numberSTRING
provider_codeSTRING
provider_nameSTRING
start_local_date_timeSTRING
start_timestampFLOAT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: bookings__subsidiaries

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

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 Navan sync works

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

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

Common use cases for Navan data

Travel spend

Use bookings to track travel volume and cost over time.

Booking analysis

Analyse bookings to understand travel patterns across the business.

Finance context

Join travel data with your finance data to see travel against budget.

Use Navan data in your AI and BI tools

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

Was this helpful?

Still need help? Share an idea