The Scenario
Twelve minutes before your Monday standup, you notice the message in Slack: "Hey, can you confirm the NPS wave went out to the churned cohort?" It did not. The list has been sitting in an Excel workbook since Thursday — 150 emails, names, plan tiers — and nobody pushed them into Delighted.
You open Delighted. There is no bulk upload from a workbook. There is a CSV import, but it requires a specific format, a header row with exact column names, and it processes one file at a time.
The bad version:
- Export the Excel table as CSV, open the file, rename the header columns to match Delighted's import format ("email", "name"), delete the columns Delighted doesn't accept
- Upload the file, watch Delighted reject three rows because of trailing spaces in the email field, fix them manually, re-upload
- Discover the upload didn't capture the plan tier as a custom property, because you forgot to format that column header correctly — start over
The NPS wave is now a Tuesday problem. And you have to explain that in standup.
The Easy Way: One Prompt in SheetXAI
SheetXAI is an AI agent that lives inside your Excel workbook. It reads the workbook, understands the structure, and through its built-in Delighted integration it creates each survey contact directly — no CSV formatting, no upload dialog, no column renaming.
For each row in the Churned Customers sheet, create a Delighted person using the email from column A and name from column B to schedule an NPS survey
What You Get
- One Delighted person record created per row in the Churned Customers sheet
- Email and name mapped exactly as written, no manual header renaming
- Survey scheduled automatically per Delighted's delivery settings
- Any rows with malformed emails surfaced as errors in the SheetXAI response so you can fix and re-run just those rows
What If the Data Is Not Quite Ready
Some contacts are marked "pending" and some "sent" — you only want the pending ones
Read all rows in the Survey Queue sheet where column C says 'pending', create a Delighted survey contact for each using columns A (email) and B (name), and update column C to 'sent' after each successful enrollment
You want to pass a custom property — plan tier — so you can filter responses later
For each row in the Churned Customers sheet, create a Delighted person using column A (email) and column B (name), and pass the value in column C as a custom property called 'plan_tier'
The list has duplicates and you want to skip anyone already in Delighted
Read all rows in the Churned Customers sheet, check if each email already exists in Delighted before creating, skip any that are already enrolled, and write 'skipped' in column D for those rows
Full enrollment, dedup, status update, and confirmation in one pass
Read all rows in the Survey Queue sheet where column C is 'pending', check whether each email already exists in Delighted, skip existing contacts and write 'already enrolled' in column D, create new contacts with email from column A, name from column B, and plan tier from column E as a custom property, then update column C to 'sent' for each successfully created record
Describe the condition, the property, and the writeback in one prompt — SheetXAI handles the sequence.
Try It
Get the 7-day free trial of SheetXAI and open any Excel workbook with a customer list you've been meaning to push into Delighted, then ask it to enroll the pending rows. Or see how to pull NPS responses back out into your workbook once the wave is complete. The full overview is at Delighted + Excel.
