Skip to content
Book a demoStart free
Connectors

FreshBooks connector

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

FreshBooks connector pricing, tier and credits on kaivo.io

Kaivo is a fully managed data platform that syncs your FreshBooks 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.

Sync your FreshBooks invoices, clients, and expenses into BigQuery with Kaivo to report on billing and profitability alongside the rest of your business.

CategoryFinance & Payments
AuthenticationAPI key
SetupOn request, contact us to enable it

Getting started with the FreshBooks connector

Section titled “Getting started with the FreshBooks connector”
  1. Sign up for Kaivo and create a workspace.
  2. Ask us to enable the FreshBooks connector for your workspace. You can reach our team from the chat in the app.
  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.

Authenticate with your FreshBooks credentials. You provide:

Field Description
Client Secret
The Client Secret of your FreshBooks developer application.

| | Refresh Token |

The refresh token obtained from the OAuth 2.0 authorization flow.

|

Prerequisites

FreshBooks uses OAuth, so you need your own FreshBooks developer application:

  1. Go to the FreshBooks Developer Portal, create an app, then note its Client ID and Client Secret and set a Redirect URI.
  2. Complete the OAuth authorization flow once to obtain a Refresh Token.
  3. Find your Account ID in the FreshBooks URL (after /accounting/account/) when logged in, and your Business UUID from the /auth/api/v1/users/me API response (under your business membership).

Then enter those values below.

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

When you set up the connector, you provide:

Field Description
Client ID
The Client ID of your FreshBooks developer application.

| | Redirect URI |

The Redirect URI configured on your FreshBooks developer application.

| | Account ID |

Your FreshBooks Account ID, shown in the app URL after /accounting/account/ when logged in.

| | Business UUID |

Your FreshBooks Business UUID, available from the /auth/api/v1/users/me API response under your business membership.

|

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

accounts (2 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
Column Type Description
_kaivo_parent_id STRING Foreign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
type STRING
description STRING
auto_created BOOL
name STRING
number STRING
parent_account STRING
state STRING
sub_type STRING
system_account_name STRING
updated_at STRING
uuid STRING
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
Column Type Description
_kaivo_parent_id STRING Foreign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
value STRING
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
clients (41 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
accounting_systemid STRING
allow_email_include_pdf BOOL
allow_late_fees BOOL
allow_late_notifications BOOL
bus_phone STRING
currency_code STRING
email STRING
exceeds_client_limit FLOAT64
fax STRING
fname STRING
id FLOAT64
language STRING
level FLOAT64
lname STRING
mob_phone STRING
notified BOOL
num_logins FLOAT64
organization STRING
p_city STRING
p_code STRING
p_country STRING
p_province STRING
p_street STRING
p_street2 STRING
pref_email BOOL
pref_gmail BOOL
role STRING
s_city STRING
s_code STRING
s_country STRING
s_province STRING
s_street STRING
s_street2 STRING
signup_date STRING
updated STRING
userid FLOAT64
username STRING
uuid STRING
vis_state FLOAT64
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
expense_categories (12 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
category STRING
categoryid FLOAT64
created_at STRING
id FLOAT64
is_cogs BOOL
is_editable BOOL
parentid FLOAT64
transaction_posted BOOL
updated_at STRING
vis_state FLOAT64
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
expense_details (19 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
account_name STRING
amount__amount STRING
amount__code STRING
authorid STRING
categoryid STRING
clientid STRING
date STRING
expenseid FLOAT64
imported_from_csv BOOL
is_cogs BOOL
notes STRING
tax_amount1__amount STRING
tax_amount1__code STRING
tax_amount2__amount STRING
tax_amount2__code STRING
vendor STRING
vendorid STRING
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
expense_summaries (4 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
counts FLOAT64
id STRING
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
Column Type Description
_kaivo_parent_id STRING Foreign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
amount STRING
code STRING
count FLOAT64
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
expenses (30 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
version STRING
account_name STRING
accounting_systemid STRING
amount__amount STRING
amount__code STRING
bank_name STRING
billable BOOL
categoryid FLOAT64
clientid FLOAT64
compounded_tax BOOL
date STRING
expenseid FLOAT64
ext_invoiceid FLOAT64
ext_systemid FLOAT64
from_bulk_import BOOL
has_receipt BOOL
id FLOAT64
include_receipt BOOL
is_cogs BOOL
isduplicate BOOL
markup_percent STRING
notes STRING
potential_bill_payment BOOL
projectid FLOAT64
staffid FLOAT64
status FLOAT64
updated STRING
vis_state FLOAT64
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
Column Type Description
_kaivo_parent_id STRING Foreign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
value JSON
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
invoice_details (20 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
create_date STRING
currency_code STRING
discount_total__amount STRING
discount_total__code STRING
due_offset_days FLOAT64
invoice_number STRING
invoiceid FLOAT64
outstanding__amount STRING
outstanding__code STRING
paid__amount STRING
paid__code STRING
subtotal__amount STRING
subtotal__code STRING
tax__amount STRING
tax__code STRING
total__amount STRING
total__code STRING
v3_status STRING
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
Column Type Description
_kaivo_parent_id STRING Foreign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
value JSON
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
Column Type Description
_kaivo_parent_id STRING Foreign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
value JSON
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
invoices (2 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
taxes (9 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
accounting_systemid STRING
amount STRING
compound BOOL
id FLOAT64
name STRING
taxid FLOAT64
updated STRING
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
user (153 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
response__business_statuses__yp_zk5_g STRING
response__confirmed_at STRING
response__created_at STRING
response__email STRING
response__first_name STRING
response__id FLOAT64
response__identity_id FLOAT64
response__identity_origin STRING
response__identity_uuid STRING
response__language STRING
response__last_name STRING
response__links__me STRING
response__links__roles STRING
response__permissions__yp_zk5_g__bank_reconciliation_access BOOL
response__permissions__yp_zk5_g__beta_helios_async_expenses_access BOOL
response__permissions__yp_zk5_g__accountant_partner_limit FLOAT64
response__permissions__yp_zk5_g__accounting_reports_v2_general_ledger_access BOOL
response__permissions__yp_zk5_g__accounts_payable_access BOOL
response__permissions__yp_zk5_g__accounts_payable_beta_access BOOL
response__permissions__yp_zk5_g__accounts_payable_reports_access BOOL
response__permissions__yp_zk5_g__acss_direct_debit_access BOOL
response__permissions__yp_zk5_g__advanced_accounting_access BOOL
response__permissions__yp_zk5_g__andromeda_manual_mileage_tracking_access BOOL
response__permissions__yp_zk5_g__andromeda_mileage_tracker_dev_access BOOL
response__permissions__yp_zk5_g__attachments_access BOOL
response__permissions__yp_zk5_g__audit_log_access BOOL
response__permissions__yp_zk5_g__audit_log_backend_access BOOL
response__permissions__yp_zk5_g__audit_log_expense_access BOOL
response__permissions__yp_zk5_g__auto_bank_import_access BOOL
response__permissions__yp_zk5_g__bacs_direct_debit_access BOOL
response__permissions__yp_zk5_g__bacs_direct_debit_mandate_access BOOL
response__permissions__yp_zk5_g__bacs_fee_cap_limit FLOAT64
response__permissions__yp_zk5_g__bank_import_failure_notifications_access BOOL
response__permissions__yp_zk5_g__bank_rec_smart_match_access BOOL
response__permissions__yp_zk5_g__beta_mobile_create_expense_subcategory_access BOOL
response__permissions__yp_zk5_g__bill_payment_reconciliation_access BOOL
response__permissions__yp_zk5_g__business_accountant_limit FLOAT64
response__permissions__yp_zk5_g__cardapp_new_payment_methods_access BOOL
response__permissions__yp_zk5_g__client_limit FLOAT64
response__permissions__yp_zk5_g__core_data_from_es_access BOOL
response__permissions__yp_zk5_g__credit_notes_payment_method_access BOOL
response__permissions__yp_zk5_g__credit_reconciliation_access BOOL
response__permissions__yp_zk5_g__customizable_dashboard_access BOOL
response__permissions__yp_zk5_g__display_credits_plan_summary_access BOOL
response__permissions__yp_zk5_g__documents_ocr_access BOOL
response__permissions__yp_zk5_g__documents_ocr_bill_access BOOL
response__permissions__yp_zk5_g__documents_ocr_bill_complete_access BOOL
response__permissions__yp_zk5_g__documents_ocr_bill_plan_access BOOL
response__permissions__yp_zk5_g__documents_ocr_complete_plan_access BOOL
response__permissions__yp_zk5_g__documents_ocr_match_expenses_access BOOL
response__permissions__yp_zk5_g__documents_ocr_plan_access BOOL
response__permissions__yp_zk5_g__email_verification_with_code_page_access BOOL
response__permissions__yp_zk5_g__emails_page_access BOOL
response__permissions__yp_zk5_g__embedded_payroll_access BOOL
response__permissions__yp_zk5_g__embedded_payroll_journal_entries_access BOOL
response__permissions__yp_zk5_g__enhanced_project_client_typeahead_access BOOL
response__permissions__yp_zk5_g__es_migrations_access BOOL
response__permissions__yp_zk5_g__estimate_convert_to_project_access BOOL
response__permissions__yp_zk5_g__fiscal_year_access BOOL
response__permissions__yp_zk5_g__flexcoa_advanced_accounting_access BOOL
response__permissions__yp_zk5_g__flexcoa_beta_rollout_access BOOL
response__permissions__yp_zk5_g__flexible_chart_of_accounts_access BOOL
response__permissions__yp_zk5_g__helios_bulk_actions_invoices_beta_access BOOL
response__permissions__yp_zk5_g__helios_company_taxes_beta_access BOOL
response__permissions__yp_zk5_g__helios_dashboard_access BOOL
response__permissions__yp_zk5_g__helios_expense_rebilling_beta_access BOOL
response__permissions__yp_zk5_g__helios_invoice_archive_beta_access BOOL
response__permissions__yp_zk5_g__helios_late_fee_reminder_beta_access BOOL
response__permissions__yp_zk5_g__helios_manual_mileage_tracking_access BOOL
response__permissions__yp_zk5_g__helios_push_resource_to_use_execute_beta_access BOOL
response__permissions__yp_zk5_g__helios_pushnotifications_beta_access BOOL
response__permissions__yp_zk5_g__helios_rebill_time_access BOOL
response__permissions__yp_zk5_g__helios_remote_search_beta_access BOOL
response__permissions__yp_zk5_g__helios_stripe_virtual_terminal_beta_access BOOL
response__permissions__yp_zk5_g__helios_sync_throttle_beta_access BOOL
response__permissions__yp_zk5_g__helios_virtual_terminal_beta_access BOOL
response__permissions__yp_zk5_g__helios_virtual_terminal_advertising_beta_access BOOL
response__permissions__yp_zk5_g__helios_virtual_terminal_tutorial_beta_access BOOL
response__permissions__yp_zk5_g__historical_payroll_minimum_access BOOL
response__permissions__yp_zk5_g__improved_bank_transfer_education_for_clients_access BOOL
response__permissions__yp_zk5_g__invoice_pdf_email_access BOOL
response__permissions__yp_zk5_g__ios_beta_payment_schedules_access BOOL
response__permissions__yp_zk5_g__ios_beta_zendesk_widget_access BOOL
response__permissions__yp_zk5_g__latest_released_api_version_access BOOL
response__permissions__yp_zk5_g__launchpad_cards_version_access BOOL
response__permissions__yp_zk5_g__launchpad_cards_version_with_personalization_access BOOL
response__permissions__yp_zk5_g__limit_add_businesses_access BOOL
response__permissions__yp_zk5_g__manual_journal_entries_feature_access BOOL
response__permissions__yp_zk5_g__metapane_payment_methods_improvement_access BOOL
response__permissions__yp_zk5_g__mobile_receipt_rebilling_access BOOL
response__permissions__yp_zk5_g__modern_friendbuy_access BOOL
response__permissions__yp_zk5_g__mtd_enhancements_access BOOL
response__permissions__yp_zk5_g__new_payments_page BOOL
response__permissions__yp_zk5_g__new_setup_quiz_access BOOL
response__permissions__yp_zk5_g__no_seat_employee_access BOOL
response__permissions__yp_zk5_g__opus_items_services_page_access BOOL
response__permissions__yp_zk5_g__opus_my_team_page_access BOOL
response__permissions__yp_zk5_g__outstanding_invoices_summary_access BOOL
response__permissions__yp_zk5_g__partial_payments_access BOOL
response__permissions__yp_zk5_g__payment_links_access BOOL
response__permissions__yp_zk5_g__payments_withdrawal_report_access BOOL
response__permissions__yp_zk5_g__paypal_gateway_access BOOL
response__permissions__yp_zk5_g__paypal_tiered_pricing_access BOOL
response__permissions__yp_zk5_g__payroll_notifications_access BOOL
response__permissions__yp_zk5_g__payroll_user_invite_access BOOL
response__permissions__yp_zk5_g__plaid_integration_access BOOL
response__permissions__yp_zk5_g__premium_contractor_role_access BOOL
response__permissions__yp_zk5_g__project_line_items_access BOOL
response__permissions__yp_zk5_g__project_profitability_access BOOL
response__permissions__yp_zk5_g__project_service_estimates_access BOOL
response__permissions__yp_zk5_g__project_widget_updates_access BOOL
response__permissions__yp_zk5_g__proposals_candidate_access BOOL
response__permissions__yp_zk5_g__recurring_ach_access BOOL
response__permissions__yp_zk5_g__recurring_paypal_access BOOL
response__permissions__yp_zk5_g__recurring_revenue_monarch_updates_access BOOL
response__permissions__yp_zk5_g__refunds_access BOOL
response__permissions__yp_zk5_g__retained_earnings_access BOOL
response__permissions__yp_zk5_g__retainers_limit FLOAT64
response__permissions__yp_zk5_g__retainers_feature_access BOOL
response__permissions__yp_zk5_g__rich_proposals_access BOOL
response__permissions__yp_zk5_g__rounded_time_tracking_access BOOL
response__permissions__yp_zk5_g__sales_managed_receipt_access BOOL
response__permissions__yp_zk5_g__saltedge_integration_access BOOL
response__permissions__yp_zk5_g__save_emails_access BOOL
response__permissions__yp_zk5_g__scopes_ui_phase1_access BOOL
response__permissions__yp_zk5_g__sepa_direct_debit_access BOOL
response__permissions__yp_zk5_g__sepa_direct_debit_mandate_access BOOL
response__permissions__yp_zk5_g__sepa_fee_cap_limit FLOAT64
response__permissions__yp_zk5_g__solvvy_support_chat_access BOOL
response__permissions__yp_zk5_g__staff_limit FLOAT64
response__permissions__yp_zk5_g__stripe_ach_access BOOL
response__permissions__yp_zk5_g__stripe_advanced_payments_access BOOL
response__permissions__yp_zk5_g__stripe_payments_intent_access BOOL
response__permissions__yp_zk5_g__stripe_unified_account_access BOOL
response__permissions__yp_zk5_g__team_members_access BOOL
response__permissions__yp_zk5_g__team_utilization_report_access BOOL
response__permissions__yp_zk5_g__ted_report_refactor_access BOOL
response__permissions__yp_zk5_g__time_entry_billed_amount_access BOOL
response__permissions__yp_zk5_g__time_zone_enhancement_access BOOL
response__permissions__yp_zk5_g__wepay_kyc_redirect_access BOOL
response__permissions__yp_zk5_g__yodlee_fastlink_upgrade_access BOOL
response__profile__first_name STRING
response__profile__has_password BOOL
response__profile__is_email_confirmed BOOL
response__profile__last_name STRING
response__profile__setup_complete BOOL
response__profile__time_format FLOAT64
response__profile__timezone STRING
response__setup_complete BOOL
response__subscription_statuses__yp_zk5_g STRING
response__timezone STRING
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
Column Type Description
_kaivo_parent_id STRING Foreign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
value JSON
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: user__response__business_memberships

Section titled “Subtable: user__response__business_memberships”
Column Type Description
_kaivo_parent_id STRING Foreign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
business__account_id STRING
business__active BOOL
business__address__city STRING
business__address__country STRING
business__address__id FLOAT64
business__address__postal_code STRING
business__address__province STRING
business__address__street STRING
business__address__street2 STRING
business__advanced_accounting_enabled BOOL
business__business_uuid STRING
business__date_format STRING
business__first_day_of_week FLOAT64
business__id FLOAT64
business__industry STRING
business__name STRING
business__phone_number__id FLOAT64
business__phone_number__phone_number STRING
business__status STRING
business__timezone STRING
fasttrack_token STRING
id FLOAT64
role STRING
unacknowledged_change BOOL
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: user__response__business_memberships__business__business_clients

Section titled “Subtable: user__response__business_memberships__business__business_clients”
Column Type Description
_kaivo_parent_id STRING Foreign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
value JSON
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
Column Type Description
_kaivo_parent_id STRING Foreign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
active BOOL
business_id FLOAT64
group_id FLOAT64
id FLOAT64
identity_id FLOAT64
identity_uuid STRING
role STRING
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
Column Type Description
_kaivo_parent_id STRING Foreign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
title STRING
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: user__response__profile__professions

Section titled “Subtable: user__response__profile__professions”
Column Type Description
_kaivo_parent_id STRING Foreign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
value JSON
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
Column Type Description
_kaivo_parent_id STRING Foreign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
accountid STRING
created_at STRING
id FLOAT64
links__destroy STRING
role STRING
systemid FLOAT64
userid FLOAT64
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.

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

How long does the initial sync take for FreshBooks?

Section titled “How long does the initial sync take for FreshBooks?”

It depends on how much history is in your FreshBooks 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.

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 FreshBooks’s schema changes?

Section titled “What happens when FreshBooks’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 FreshBooks, 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?

Section titled “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 FreshBooks 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 FreshBooks connector in Kaivo and all of its synced data is deleted with it.

Use invoices and invoice_details to track billed revenue, payment status, and overdue amounts.

Use expenses, expense_categories, and expense_summaries to see where money goes by category.

Join clients to invoices and expenses to compare what each client bills against what they cost.

Use accounts and taxes to prepare period tax figures from the same data your books use.

Use FreshBooks data in your AI and BI tools

Section titled “Use FreshBooks data in your AI and BI tools”

Once FreshBooks 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 FreshBooks data.

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

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

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

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

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

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

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

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