The Scenario
You are a sales analyst and the enrichment vendor just delivered. Three hundred company domains came back with firmographic data — employee count, funding stage, tech stack, revenue range. All of it is in a Google Sheet. The problem: your pipeline tracking system references Attio record IDs, not domains. You need to add an Attio record ID column to the enrichment output so you can join it to the rest of your data model.
You know the domains exist in Attio — the SDR team imported the target list two weeks ago. You do not know the record IDs. You need 300 lookups.
The bad version:
- Open Attio, search for the first domain, click the company, copy the record ID from the URL, paste it into column D of the sheet. Repeat 299 more times.
- Export all Attio companies as CSV, load it into a second sheet tab, VLOOKUP column A against the domain column of the export. This works in theory, but the domain formatting doesn't match between the two sources and you spend an hour normalizing before the VLOOKUP actually produces results.
- Hand it to whoever manages the CRM data and get it back two days from now.
The enrichment data is hot. The model is waiting for it. Two days is not on the table.
The Easy Way: One Prompt in SheetXAI
SheetXAI is an AI agent that lives inside your Google Sheet. Through its built-in Attio integration it reads each domain, calls the Attio search API, and writes the matched record ID and company name back to the sheet — one pass, 300 lookups.
For each domain in column A of this sheet, search Attio for a matching company record and write the Attio record ID and company name into columns B and C.
What You Get
- Column B fills with the Attio record ID for each matched domain.
- Column C fills with the company name as it appears in Attio — useful for spot-checking the match.
- Domains where no match is found show 'no match' in column B so you know exactly which rows need attention.
- The lookup normalizes domain formatting so minor variations don't cause false negatives.
What If the Data Is Not Quite Ready
Domain formatting is inconsistent across the sheet
"acme.com", "https://www.acme.com", "acme.co.uk/".
Normalize each domain in column A to bare domain format before searching; look up the matching Attio company for each and write the record ID into column B and the company name into column C; mark unmatched rows with 'no match'.
You want to look up by email instead of domain for person records
The enrichment was for contacts, not companies.
For each email in column A, search Attio for a matching person record and write the Attio record ID into column B and the person's full name into column C; mark unmatched rows with 'no match'.
You want to fuzzy-match on company name for rows where domain lookup fails
For each domain in column A, search Attio for a matching company; if no domain match is found, try searching by company name in column B; write the record ID, company name, and match method ('domain' or 'name' or 'no match') into columns C, D, and E.
Normalize domains, look up record IDs, flag low-confidence matches, and join enrichment data
Normalize each domain in column A. Search Attio for a matching company; write record ID into column B and company name into column C; if the match was approximate (name search used), flag 'low confidence' in column D; if no match at all, flag 'no match'. Leave column D blank for clean domain matches.
Try It
Get the 7-day free trial of SheetXAI and open any Google Sheet with domains or emails you need to resolve against Attio, then ask it to run the lookup. The Attio integration is included in every SheetXAI plan. See also the spoke on querying Attio records with filters, or the hub for a full overview of Attio integration methods.
