Back to Spoki in Google Sheets
SheetXAI logo
Spoki logo
Spoki · Google Sheets Guide

Remove Opted-Out Contacts from a Spoki List Using a Sheet

2026-05-13
4 min read
See the Excel version →

The Scenario

You are a compliance manager. GDPR unsubscribe requests came in over the past two weeks. 400 customers have opted out. Their phone numbers are sitting in a Google Sheet. The next WhatsApp send to the "Newsletter" list is Friday at 9 AM.

If those 400 numbers are still in the list when Friday's send fires, you have a compliance problem. Legal has already flagged it once this quarter.

The bad version:

  • Open Spoki's contact list manager
  • Find the "Newsletter" list
  • Search for the first phone number
  • Remove it
  • Search for the second
  • Remove it
  • Do this 400 times
  • Lose track somewhere around row 200
  • Send to three people who opted out because you missed them.

The fast version is one prompt.

The Easy Way: One Prompt in SheetXAI

SheetXAI reads the column of opted-out numbers and removes every one from the Spoki list, writing the removal status back to the sheet so you have a compliance record.

Open the SheetXAI sidebar and type:

For each phone number in column A of this sheet, remove that contact from Spoki list "Newsletter" and write "removed" or the error into column B.

SheetXAI loops through all 400 numbers, calls Spoki's remove endpoint for each, and writes the result into column B. You have a row-level record of every removal before Friday morning.

What You Get

A clean "Newsletter" list and a documented audit trail:

  • Column B populated for every row — "removed" or a specific error
  • All 400 numbers processed — no manual searching in the Spoki UI
  • Per-row record — if legal asks which contacts were removed and when, you have the sheet

The compliance value is column B. If a question comes up about whether a specific number was removed before the Friday send, you check the sheet. The answer is there.

What If the Data Is Not Quite Ready

Opted-out contact sheets are often messy. SheetXAI handles normalization and removal together.

When phone numbers are in local format rather than E.164

The unsubscribe form collected numbers as "333 123 4567" instead of "+393331234567."

Normalize all numbers in column A to E.164 format with Italian country code +39. Then remove each contact from Spoki list "Newsletter" and write the result into column B.

When the same number appears twice in the opt-out list

The form was submitted twice by some users, so there are duplicates in column A.

Deduplicate column A, keeping each phone number once. Then remove each unique number from Spoki list "Newsletter" and write "removed" or any error into column B.

When you need to remove from two lists, not one

The opted-out contacts are on both the "Newsletter" list and the "PromoEstiva2026" list.

For each phone number in column A, remove that contact from both Spoki list "Newsletter" and Spoki list "PromoEstiva2026." Write the result for each list into columns B and C respectively.

When you also need to update a Spoki custom field to record the opt-out date

Your legal team wants the opt-out date stored on the contact record itself, not just in the sheet.

For each phone number in column A, remove the contact from Spoki list "Newsletter" and update the contact's custom field "gdpr_optout_date" to today's date. Write the result into column B.

The pattern: normalize the numbers, remove from the lists, record the result — all in one prompt, documented per row.

Try It

Get the 7-day free trial of SheetXAI and ask it to process any opted-out contact column against a Spoki list. The Spoki integration is included in every plan. For related workflows, see how to add contacts to a Spoki list from a sheet or the Spoki in Google Sheets overview.

Stop memorizing formulas.
Tell your spreadsheet what to do.

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

Learn more