The Scenario
It's the week before a new survey wave launches. Your CRM team just sent you a Salesforce export — 500 customer records, name, email, and company — and your job is to get them into Simplesat before the surveys go out so the responses come back tagged to the right accounts.
You've done this twice before, once manually and once with a half-working script somebody wrote and left undocumented. The script lives in a Notion page titled "maybe still works?" You're not finding out today.
The bad version:
- Download the Salesforce export, open it in Excel, match the column order to what Simplesat's bulk import expects
- Go to Simplesat, find the customer import section, figure out which CSV format it needs
- Upload, get an error on 23 rows where the company field has a comma, fix those manually, re-upload
The survey wave launches in two days. Every hour spent on the import is an hour not spent on survey copy or routing rules.
The Easy Way: One Prompt in SheetXAI
SheetXAI is an AI agent that lives inside your Excel workbook. It reads the rows and writes each one to Simplesat using the built-in integration — deduplicating by email so you don't create duplicates for customers already in the system.
Paste the Salesforce export into your workbook and run this in the SheetXAI sidebar:
Upsert all 500 rows from my Excel export into Simplesat — use column B as email, column A as name, column C as company — and write the Simplesat customer ID into column D
What You Get
- Each row is upserted to Simplesat — created if no customer with that email exists, updated if one does
- New customers are created with name, email, and company populated
- Column D receives the Simplesat customer ID for each row
- Safe to run more than once — email dedup prevents duplicates
What If the Data Is Not Quite Ready
You also want a status column so you know which rows succeeded vs. failed
Upsert all rows to Simplesat using column B as email, column A as name, column C as company, write the Simplesat customer ID to column D, and write "done" to column E on success or the error message on failure
Some rows have a blank email column and should be skipped
For each row where column B is not blank, upsert to Simplesat using column B as email, column A as name, column C as company, write the customer ID to column D — for rows where column B is blank, write "skipped - no email" to column E
The company field has inconsistent formatting across the export
Normalize column C to title case and strip trailing punctuation, then upsert all rows using column B as email, column A as name, and cleaned column C as company — write the Simplesat customer ID to column D
Normalize, upsert, and flag failures in one pass
Normalize column C to title case, upsert all rows to Simplesat using column B as email, column A as name, cleaned column C as company, write the Simplesat ID to column D, and write the error reason to column E for any row that fails
Cleanup, import, and exception log — one prompt.
Try It
Get the 7-day free trial of SheetXAI and open any Excel workbook with a CRM export staged for Simplesat, then ask it to upsert the rows and write back customer IDs. See also the team member upsert spoke for syncing agent profiles, or return to the Simplesat hub.
