Guide
Export your data as CSV and what each column means
An admin can download customers, jobs and invoices from CalSpark as CSV files. This guide shows where, what limits apply, what every column holds and a few things to check when you open the file in a spreadsheet.
By CalSpark team. Published . Updated .
Where to find the export
- Sign in as a company admin. Other roles do not see this page.
- Open Settings, then Data.
- Find the dataset you want: customers, jobs or invoices.
- Optionally set a From and a To date to limit the rows. Days are counted in your company time zone.
- Choose Download CSV.
Each export is capped at 100,000 rows. Exports are rate limited and recorded in an audit log, and they do not trigger webhooks or automations. Notes and internal fields are not included. Estimates are not part of the export.
Formats to know before you open it
- Timestamps are ISO 8601 in UTC, for example 2026-10-06T14:30:00Z. They are not in your local time. Convert them in your spreadsheet, or compare them as UTC.
- Money is in dollars with two decimals, with no currency symbol.
- The id columns are CalSpark ids. Use them to join the files: the customer_id in jobs and invoices matches the id in customers.
The customers file
| Column | What it holds |
|---|---|
| id | The CalSpark id of the customer. |
| first_name, last_name | The contact name. |
| company_name | The company, if the customer is a business. |
| email, phone | Contact details as stored. |
| address_street, address_city, address_state, address_zip | The address on file. |
| source | How the record was created, when CalSpark has that on file. |
| sms_consent | Whether the customer has agreed to receive texts. |
| email_opt_out | Whether the customer has opted out of emails from you. |
| created_at, updated_at | When the record was created and last changed, in UTC. |
Keep sms_consent and email_opt_out when you move customers to another tool. Texting or emailing a person who opted out is the kind of mistake that is easy to avoid and hard to undo.
The jobs file
| Column | What it holds |
|---|---|
| id, customer_id, customer_name | The job id, the customer id and the customer name. |
| status | Pending, scheduled, in progress, completed or cancelled. |
| scope_of_work | The description of the work. |
| scheduled_start, scheduled_end | The planned window, in UTC. |
| actual_start, actual_end | When the work really started and finished, in UTC, if it was recorded. |
| technicians | The technicians assigned to the job. |
| address_street, address_city, address_state, address_zip | Where the work happens. |
| source, created_at | How the job was created and when. |
The invoices file
| Column | What it holds |
|---|---|
| invoice_number | The number shown to the customer. |
| customer_id, customer_name, job_id | Who it is for and which job it came from. |
| status | Draft, sent, viewed, paid, partially paid, overdue, void or uncollectible. |
| invoice_date, due_date, sent_at, paid_at | The key dates. sent_at and paid_at are blank until those things happen. |
| subtotal, tax, discount, total | The money before and after tax and discount. |
| amount_paid, balance_due | What has been paid and what is still owed. |
To check your books, add up the total column for a month and compare it with your bookkeeping. To list who owes you money, filter on balance_due above zero.
Three common uses
- A backup before a big change. Download all three files and keep them with your other business records.
- A handoff to a bookkeeper. Send the invoices file for the month, and filter on paid_at to see what was received.
- A move to another tool. Use the customers file as the starting point, and keep the consent columns. The switching guide covers the plan.
Split a large export by date range. Pull one year at a time, and you stay well under the row cap and get files that open quickly.
Spreadsheet checks
- Zip codes with a leading zero can lose it when a spreadsheet treats them as numbers. Format the column as text before you open the file, or import it with the column set to text.
- Phone numbers can show in scientific notation if the spreadsheet guesses a number. Set the column to text.
- Save a copy before you sort. Sorting one column on its own scrambles the rows.
The CSV export is for people. If you want a script to read data on a schedule, use the public API. To bring a file back in, see import customers from a spreadsheet.
Questions
Who can export data?
Company admins only, from Settings, Data.
Can I export estimates?
Not in the CSV export. It covers customers, jobs and invoices.
Why do the times look wrong?
Timestamps are in UTC, not your local time zone. Convert them in your spreadsheet.
Is there a row limit?
Yes. Each export is capped at 100,000 rows. Use the From and To dates to split a large export.
Will exporting change anything in CalSpark?
No. It reads data and writes an entry in the audit log. It does not trigger webhooks or automations.
Keep reading
- How to import customers from a spreadsheetClean a customer spreadsheet, map columns, catch duplicates and test with ten rows before you load the rest into your field service software.
- How to Switch Field Service Software and Keep CustomersA cutover plan for moving your customer list to CalSpark: what moves, export steps for Jobber, Housecall Pro and QuickBooks, a parallel run, and a dated checklist.
- Webhooks and API: setup, examples and limitsTurn on the API in Company, Features, then create API keys and add a signed webhook endpoint under Settings, Developers. A worked example and the limits.
- Developer docs: REST API, webhooks and eventsThe CalSpark REST API: Bearer API keys, scopes, pagination, idempotency, signed webhooks and every event payload. Off until an admin enables it in Company, Features.
- Invoicing and online card paymentsInvoices with line items, PDF and email, pay links, card payment of the balance through your own Stripe account, staff-recorded partial payments and refunds. Estimates convert to draft invoices.
Try it with your own jobs
14-day free trial. No card. $49 a month flat for up to 10 users after that.