Help Center / Customers
Import financial data from a spreadsheet
Give Slate the numbers behind your customers, such as monthly revenue, by uploading a CSV. Covers the columns, errors and what happens next.
4 min read · Updated November 10, 2026

Slate needs numbers on a customer, such as revenue by month, before it can size an offer. You can upload them as a CSV file, one row per customer per date.
You'll need: customers already added to Slate. See Import customers. Each customer's own ID goes in the file.
Import a file
Open Import and choose Financial data
Select Customers in the menu, then Import at the top right, then Financial data.

- Import: opens a short menu.
- Financial data: imports financial data for customers Slate already has.
Get the example (optional)
Select Download example data for a sample file.

- Download example data: a sample file with the right columns.
- Upload a file: drag your CSV here, or select the area to browse. Files must end in
.csvand be under 10 MB. - Use example data: loads the sample without a file. It only appears in sandbox.
Upload your file
Drop your CSV on the upload area. A message says how many rows were read, for example Parsed with 1 error(s).
Check the preview
The Preview CSV Import shows every row Slate understood.

- Validation Errors: rows Slate cannot read. Each line names the row and the problem.
- Valid registers: the rows that will be imported. Each date is shown in words, for example July 1, 2026.
- Import: imports the valid rows.
Select Import
Messages appear at the top. In our test, the success message read imported 3 registers and a second message read External ID cus_not_in_slate not found.

What goes in the file
The first row holds the column names.
externalId: required. Your ID for a customer that already exists in Slate.date: required. Any date Slate can read, for example2026-07-01.- Every other column is a number Slate tracks for that customer. You choose the names. Our example uses
revenue,order_volumeandaverage_ticket.
For one customer, use one row per date:
externalId,date,revenue,order_volume,average_ticket
cus_lakeview_plumbing,2026-07-01,41800,96,435
cus_lakeview_plumbing,2026-08-01,45250,104,435
cus_lakeview_plumbing,2026-09-01,47900,110,435
Rows with the same externalId become one history for that customer. Customers do not all need the same columns.
What happens after you import
In sandbox, Slate creates an offer for the customer from the data you upload. Lakeview Plumbing Ltd. had no offer before the import and held an open $8,999.61 capital offer after it.

In live, Slate reviews the data and your offers follow. Watch the Status column on the Customers page. See Your Customers page.
If something goes wrong
A row has a date Slate cannot read
The preview shows a message like the one below. It means a date was not understood.
Row 8: Invalid input: expected date, received Date
In our test, row 8 had next week in the date column. Replace it with a real date such as 2026-08-01. Row numbers count your data rows, so the first row under the column names is Row 1.
"External ID ... not found"
The externalId does not match a customer in Slate. The preview does not catch this. It appears after you select Import. Add the customer first, see Import customers, then upload the data again for that customer.
Other customers in the same file are not affected. In our test, the customers that matched were imported anyway.
"Invalid file type"
The file does not end in .csv. In Excel or Numbers, choose Save as or Export and pick CSV.
Can I upload the same month twice?
Upload each date once. We cannot promise that Slate ignores repeats, so you may add the same dates twice.
Learn more about Slate Signals.
Still stuck? Email [email protected] with your account email and the screen you are on. We reply within 24 business hours.