The Scenario
You are a CRM manager. Tomorrow at 10 AM an exclusive WhatsApp offer goes out to your VIP customers. The offer is configured in Spoki, the template is approved, the list is named "VIP Customers."
The problem: the list is empty. Your 1,200 VIP customers are in an Excel workbook on SharePoint — phone numbers, first names, and a custom membership_id field. Someone needs to get them into that list before 9 AM.
The bad version:
- Save the tab as a CSV
- Open Spoki's list manager, find "VIP Customers," open the importer
- Map phone, first_name, membership_id by hand
- Run the import
- Wait
- Discover the list shows 1,147 contacts instead of 1,200
- Dig through logs for the 53 failures
- The 10 AM send goes to 1,147 people and you spend the next hour explaining why 53 VIP customers were left out.
The fast version is one prompt the night before.
The Easy Way: One Prompt in SheetXAI
SheetXAI reads the workbook and pushes every contact directly into the named Spoki list, with per-row status so no failure is invisible.
Open the SheetXAI sidebar and type:
Sync all rows from this workbook into Spoki list "VIP Customers" — column A is phone (E.164), column B is first_name, column C is a custom field called membership_id. Batch up to 500 contacts per request and write the result into column D for each row.
SheetXAI reads the 1,200 rows, batches the requests, and writes "added" or any error into column D. You know before you leave whether all 1,200 are in the list.
What You Get
A fully loaded "VIP Customers" list in Spoki with no guesswork:
- Column D populated for every row — "added" or a specific error
- Batching handled automatically — 500-per-request limit respected
- membership_id carried in — no manual field mapping
- List-targeted sync — contacts land in "VIP Customers," not the general pool
The difference from a CSV import is that you know the exact list count before the campaign fires. If 12 rows failed, you see it in column D and fix it before 9 AM.
What If the Data Is Not Quite Ready
When phone numbers need E.164 normalization
Normalize all numbers in column A to E.164 with country code +39. Then sync all rows into Spoki list "VIP Customers" with first_name (B) and membership_id (C). Write the result into column D.
When some rows are missing membership_id
For rows where column C is blank, set membership_id to "UNKNOWN" before syncing. Then sync all rows into Spoki list "VIP Customers" and write results into column D.
When the list already has some of these contacts from a previous import
Sync all rows to Spoki list "VIP Customers". If a contact already exists in the list, skip them and write "already in list" into column D. For new contacts, write "added."
When contacts need to split across two Spoki lists by membership tier
For rows where column D is "Gold", sync into Spoki list "VIP Gold". For rows where column D is "Platinum", sync into Spoki list "VIP Platinum". Write the result and target list into column E for each row.
The pattern: target the list, batch the sync, record the result — all in one prompt.
Try It
Get the 7-day free trial of SheetXAI and open any segmented contact workbook, then ask it to push contacts into a named Spoki list. The Spoki integration is included in every plan. For more, see how to bulk import contacts into Spoki or the Spoki in Excel overview.
