Back to Altoviz in Google Sheets
SheetXAI logo
Altoviz logo
Altoviz · Google Sheets Guide

Bulk-Create Altoviz Customers and Draft Invoices From a Google Sheet

2026-05-13
4 min read
See the Excel version →

The Scenario

You run a freelance agency. This month you signed 40 new client contracts — the biggest month you have had. Every client needs an Altoviz customer record. Every contract needs a draft invoice in Altoviz before you can send it to the client.

It is 4 PM on the last business day of the month. Finance wants everything in Altoviz by close of day so the draft invoices can be reviewed first thing tomorrow.

The slow version of this afternoon:

  • Open Altoviz
  • Create customer 1 — company name, email, click Save
  • Navigate to Invoices → New → find the customer → enter service → enter amount → Save as draft
  • Back to the sheet. Next row.
  • Do that forty times
  • Make a typo on row 23 and not notice until finance flags it
  • You are still there at 7 PM.

The fast version is one prompt.

The Easy Way: One Prompt in SheetXAI

SheetXAI is an AI agent inside your Google Sheet that reads each row and creates the Altoviz records for you, then writes the returned IDs back so you have a full audit trail.

Open the SheetXAI sidebar and type:

Read company name, email, service, and amount from rows 2 through 41 of this sheet. Create an Altoviz customer and a draft sale invoice for each row, then paste the invoice IDs back into column E.

SheetXAI reads the sheet, creates each customer in Altoviz, creates each draft invoice linked to that customer, and writes the invoice ID into column E row by row. By the time you finish your coffee, column E has 40 IDs and finance has 40 draft invoices waiting in Altoviz.

What You Get

A complete Altoviz record for every row:

  • 40 Altoviz customer records — one per contract row, created from name and email
  • 40 draft sale invoices — each linked to the correct customer, with the right service and amount
  • Invoice IDs in column E — so you can look up any invoice directly from the sheet

The column-E audit trail is the detail that matters. If finance disputes a draft, you do not search Altoviz — you Ctrl+F the sheet, find the invoice ID, click through. The sheet becomes your source of truth for what was created and when.

Want to run the same process again next month with a new batch of rows? Give SheetXAI the new row range and it picks up from where the last run left off, skipping any row that already has a value in column E.

What If the Data Is Not Quite Ready

New client lists are rarely clean when they come out of a CRM or a signed-contract tracker. SheetXAI handles the cleanup and the creation in the same prompt.

When some rows have inconsistent company names

The CRM exported "ACME Corp", "Acme Corporation", and "acme corp" for what is clearly the same client.

Normalize the company names in column A — merge obvious variants of the same name into one canonical form. Then create an Altoviz customer and draft invoice for each unique company, and write invoice IDs into column E.

When some rows are missing an amount

A few contracts came in without a confirmed fee. You do not want to skip those rows entirely, but you also cannot create a zero-dollar invoice.

For rows where column D (amount) is blank, create the Altoviz customer record only and write "PENDING AMOUNT" into column E. For all rows where column D has a value, create both the customer and the draft invoice and write the invoice ID into column E.

When the service column has multiple values

Some clients signed for two services and the cell says "Retainer + Strategy." You need separate line items on the invoice.

For each row in the sheet, create an Altoviz customer from columns A and B. For column C, if it contains a "+" separator, create a draft invoice with two line items split on the "+" character. Write the invoice ID into column E.

When you need to skip rows that were already processed last week

You ran the first half of the batch last Thursday. Column E already has IDs for rows 2 through 22. You need to pick up from row 23.

For every row in the sheet where column E is blank, create an Altoviz customer using the name and email columns and a draft sale invoice using service and amount. Write the returned invoice ID into column E. Skip any row where column E already has a value.

The pattern: you tell SheetXAI the skip condition once. It applies it to every row without you checking each one manually.

Try It

Get the 7-day free trial of SheetXAI and open any client list or contract tracker sheet, then ask it to create Altoviz records for each row. The Altoviz integration is included in every SheetXAI plan. For related workflows, see how to pull outstanding invoices for aged-debt analysis or the Altoviz in Google Sheets overview.

Stop memorizing formulas.
Tell your spreadsheet what to do.

Join 4,000+ professionals saving hours every week with SheetXAI.

Learn more