The Scenario
You are a small agency owner. It is the last working day of the month and the billing sheet is done.
You have a Google Sheet with 31 rows — one per client deliverable. Each row has a contact ID, description, quantity, and unit price. You need all of them created as draft invoices in FreeAgent so you can review and send them tomorrow morning.
The slow version:
- Open FreeAgent
- Click New Invoice, select the client from the dropdown, type the description, enter quantity and price
- Save as draft
- Go back to the sheet, find the next row
- Repeat 31 times
- It is 7 PM and you still have not reviewed a single invoice.
The fast version is one prompt.
The Easy Way: One Prompt in SheetXAI
SheetXAI is an AI agent inside your spreadsheet that can create FreeAgent invoices from your billing sheet in one go, writing the returned URLs back so you know exactly what was created.
Open the SheetXAI sidebar and type:
Create a FreeAgent invoice for each row in this sheet using the contact ID in column B, description in column C, quantity in column D, and price in column E. Save each as a draft. Write the returned FreeAgent invoice URL into column F.
SheetXAI reads each row, calls FreeAgent once per invoice, creates the draft, and writes the URL back to column F. You end up with a billing sheet where every row has a direct link to its invoice in FreeAgent. Review and send in the morning.
What You Get
A billing sheet with:
- Column F — FreeAgent invoice URL for each row, written back automatically
- Draft invoices in FreeAgent — one per row, ready to review before sending
- Column layout preserved — your existing columns are untouched, only F is written
Every URL is clickable and goes directly to that invoice in FreeAgent. No searching, no "did that one get created?" — you can see at a glance which rows have URLs and which do not.
If a row fails, SheetXAI writes a note to column F explaining why — usually a bad contact ID — so you can fix and retry just that row.
What If the Data Is Not Quite Ready
Billing sheets are never perfectly uniform by month-end. SheetXAI handles the variations without a separate cleanup pass.
When only some rows should be billed this month
Column G has a flag — some rows say "bill this month," some say "defer."
For every row where column G says 'bill this month', create a FreeAgent draft invoice using contact ID in column B, description in column C, quantity in column D, and price in column E. Write 'created' to column H for each row processed and the FreeAgent URL to column F.
When descriptions need combining before invoicing
You have a project name in column C and a deliverable detail in column D, and the invoice description should be both concatenated.
For each row in this sheet, combine the project name from column C and the deliverable from column D into a single description formatted as 'Project: [C] — [D]'. Create a FreeAgent draft invoice for each row using that combined description, contact ID from column B, quantity from column E, and price from column F. Write the URL to column G.
When unit prices need a tax adjustment first
Prices in column E are ex-VAT, but FreeAgent needs you to flag VAT separately on each line item.
For each row, create a FreeAgent draft invoice with the contact ID in column B, description in column C, quantity in column D, and net price in column E marked as 20% VAT applicable. Write the returned URL to column F.
When the sheet has mixed clients, currencies, and billing rules
Some clients are billed in GBP, some in EUR based on column H. Some rows are fixed-fee, some are hourly based on column I.
For each row where column I says 'fixed', create a FreeAgent draft invoice with quantity 1 and price from column E. For each row where column I says 'hourly', create a FreeAgent draft invoice with quantity from column D and price from column E. Use the currency in column H for each invoice. Write the URL to column F and 'created' to column G.
The pattern: your billing sheet is the source of truth. You describe the rules once in the prompt and SheetXAI applies them across every row, so month-end billing goes from an evening job to a five-minute check.
Try It
Get the 7-day free trial of SheetXAI and open your billing sheet, then ask it to create FreeAgent draft invoices for each row. The FreeAgent integration is included in every SheetXAI plan. See also how to track unpaid invoices in a Google Sheet or the FreeAgent in Google Sheets overview.
