Back to Attio in Excel
SheetXAI logo
Attio logo
Attio · Excel Guide

Bulk Create Deal Records in Attio From a Excel

2026-05-15
5 min read

The Scenario

The CRM went live last month. Before it did, the sales team captured everything in an Excel workbook — 60 deals, each with a name, value, stage, close date, and the company domain. The company records are already in Attio. The deals are not. The RevOps lead set a deadline: the workbook gets archived at the end of this week, so everything needs to be in the CRM before Friday.

You look at the PipelineImport table. Sixty rows. Five fields per row plus a relational lookup to connect each deal to its company. Creating them by hand through the Attio UI would take most of an afternoon and involve 60 separate company searches.

The bad version:

  • Open Attio, click New Deal, fill in every field, search for the company by domain, link it, save. Repeat 59 more times.
  • Try the CSV import — realize it doesn't support the company relationship field, so you'd still have to link each deal manually after the import.
  • Ask RevOps to extend the deadline while you wait for a script to be written.

The data is clean. The deadline is real.

The Easy Way: One Prompt in SheetXAI

SheetXAI is an AI agent that lives inside your Excel workbook. Through its built-in Attio integration it reads the PipelineImport table, creates each deal record, resolves the company by domain, links the deal, and writes the record ID back.

Read the Excel table 'PipelineImport' and create one Attio deal per row using DealName, Value, Stage, CloseDate, and CompanyDomain columns; write the Attio deal record ID into the DealID column.

What You Get

  • The DealID column fills with the Attio record ID for each deal.
  • Each deal is linked to its company via the domain lookup — no manual association.
  • Rows where no company matches the domain show 'company not found' in DealID so you can resolve those before Friday.
  • Stage and close date land in the correct Attio fields.

What If the Data Is Not Quite Ready

Value column has mixed formatting

"$45,000", "45k", "45000" — all meaning the same thing.

Normalize the Value column to a plain numeric amount in USD, then create one Attio deal per row in PipelineImport using DealName, normalized Value, Stage, CloseDate, and CompanyDomain; write the deal ID into DealID.

Some rows are missing a close date

For each row in PipelineImport, create an Attio deal with DealName, Value, and Stage; if CloseDate is not empty set the close date; look up the company by CompanyDomain and link it; write the deal ID or 'no close date' flag into DealID.

Company domain in the table doesn't match what's in Attio

For each row, try to find the Attio company by domain first; if no match is found, search by DealName's company name; write the match method and deal ID into DealID; flag rows where neither search found a match.

Check that Stage in PipelineImport is one of: Prospecting, Qualified, Proposal Sent, Negotiation, Closed Won, Closed Lost. Flag invalid rows in DealID. For valid rows, normalize Value, look up company by CompanyDomain, create the Attio deal, and write the deal ID into DealID.

Try It

Get the 7-day free trial of SheetXAI and open any Excel workbook with deals you need to move into Attio before a deadline, then ask it to run the import. The Attio integration is included in every SheetXAI plan. See also the spoke on bulk-importing company records, or the hub for a full comparison of Attio integration methods.

Stop memorizing formulas.
Tell your spreadsheet what to do.

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

Learn more