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

Create FreeAgent Contacts in Bulk From a Spreadsheet of New Clients or Suppliers

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

The Scenario

You are a bookkeeper. A new client has handed you access to their FreeAgent account. They have 60 supplier contacts in an Excel sheet — names, emails, contact types — and none of them exist in FreeAgent yet. You need to get all 60 in before you can process the first batch of bills, and the client wants to start sending bills this afternoon.

The slow version:

  • Open FreeAgent, click Contacts, click New Contact
  • Fill in first name, last name, email, contact type
  • Save
  • Go back to the Excel sheet, find the next row
  • Repeat 60 times
  • It is 2:30 PM and you have created 14 contacts.

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 contacts from each row of your sheet and write the returned URLs back so you have a record of what was created.

Open the SheetXAI sidebar and type:

Create a FreeAgent contact for each row in this sheet using first name from column A, last name from column B, email from column C, and contact type from column D. Write the returned FreeAgent contact URL into column E.

SheetXAI reads each row, calls FreeAgent once per contact, creates the record, and writes the contact URL back to column E. All 60 suppliers are in FreeAgent before lunch.

What You Get

A contact import sheet with:

  • Column E — FreeAgent contact URL for each row, written automatically
  • All 60 contacts created in FreeAgent — names, emails, and contact types as specified
  • Rows without URLs — any that failed (bad email format, duplicate) stand out immediately

Every URL in column E goes directly to that contact in FreeAgent. You can click straight to any record to verify details or start creating bills. No searching, no "I think I added that one."

What If the Data Is Not Quite Ready

Contact import sheets are rarely perfectly structured on delivery.

When first and last names are in the same column

Column A has "David Smith" — not split into first and last name columns.

For each row in this sheet, split the full name in column A into first name and last name. Create a FreeAgent contact using the split names, email from column B, and contact type from column C. Write the returned contact URL to column D.

When contact type needs to be inferred from another column

Column D says "Invoice Received" or "Purchase Order" instead of "Supplier" or "Client."

For each row, determine the contact type: if column D contains 'Invoice' or 'Purchase', set the type to 'Supplier'; if it contains 'Sale' or 'Client', set the type to 'Customer'. Create a FreeAgent contact with first name from column A, last name from column B, email from column C, and the inferred type. Write the URL to column E.

When some rows already exist in FreeAgent and should not be duplicated

Your client may have already created a few contacts manually. You want to skip rows where the email already exists in FreeAgent.

For each row in this sheet, check whether a FreeAgent contact with the email in column C already exists. If it does, write 'ALREADY EXISTS' to column E. If it does not, create the contact and write the returned URL to column E.

When the full import needs validation, creation, and a completion summary

You want to run the full import and get a summary of what succeeded, what was skipped, and what failed, so you can hand the client a clean record.

Create a FreeAgent contact for each row in this sheet using first name from column A, last name from column B, email from column C, and contact type from column D. Write the returned URL to column E. Write 'created', 'skipped — duplicate', or 'failed — [reason]' to column F for each row. After the last row, add a summary section showing total created, total skipped, and total failed.

The pattern: instead of doing 60 repetitive FreeAgent form submissions, you describe the import once and SheetXAI processes every row and gives you an audit trail of what happened.

Try It

Get the 7-day free trial of SheetXAI and open your contacts sheet, then ask it to create FreeAgent contacts for each row and write the URLs back. The FreeAgent integration is included in every SheetXAI plan. See also how to export FreeAgent contacts and deduplicate against a CRM list or the FreeAgent 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