Back to Thanks.io in Google Sheets
SheetXAI logo
Thanks.io logo
Thanks.io · Google Sheets Guide

Build a Thanks.io Mailing List From a Google Sheet of Prospects

2026-05-14
5 min read

The Scenario

Your B2B sales team is running an account-based direct mail campaign. The plan: handwritten-style notecards to 150 warm prospects, Thanks.io as the fulfillment layer. Your RevOps manager has the prospect list in a Google Sheet — first name, last name, street, city, state, zip, all clean. Nobody has actually created the Thanks.io mailing list yet or loaded any recipients, and the campaign is supposed to go out this week.

The bad version:

  • You log into Thanks.io and create a new list manually, name it, save it.
  • You go back to the sheet, export it to CSV, check that the column headers match Thanks.io's import format exactly.
  • The import rejects 12 rows because the street field has "Suite" abbreviations that Thanks.io doesn't like — you go back, clean those rows, re-export, re-upload.

You have a pipeline review in two days and this campaign was supposed to already be running.

The Easy Way: One Prompt in SheetXAI

SheetXAI is an AI agent that lives inside your Google Sheet. It reads your prospect data and talks to Thanks.io for you — creating the list and loading all 150 recipients in one operation.

Open the SheetXAI sidebar and paste this prompt:

Create a new Thanks.io mailing list called ABM Prospects Q3, then add all 150 recipients from this sheet using first name (A), last name (B), street (C), city (D), state (E), and zip (F).

SheetXAI creates the list, then adds every row as a recipient. The new list ID comes back in the sidebar so you can reference it for the send.

What You Get

  • A new Thanks.io mailing list named exactly as specified, created in one call.
  • All 150 recipients loaded in a batch — not one at a time.
  • The returned list ID available in the sidebar for use in your next prompt or campaign trigger.
  • Any rows that fail validation are called out explicitly, not silently dropped.

What If the Data Is Not Quite Ready

Some rows have a blank zip code

Eleven rows in the sheet are missing column F.

Create a new Thanks.io mailing list called ABM Prospects Q3 and add all recipients from this sheet where column F is not blank, using first name (A), last name (B), street (C), city (D), state (E), zip (F). Skip any row with a missing zip and write "Skipped" in column G for those rows.

The list ID already exists and I want to add to it

You already created the list last week. The ID is in cell B1.

Use the batch recipient create to add every row from the Prospects sheet to Thanks.io mailing list ID in cell B1, using columns A through F for the address fields.

First and last names are in one column

Column A has full names like "Maria Torres" and needs to be split.

Split column A on the first space to separate first and last names, then create a new Thanks.io mailing list called ABM Prospects Q3 and add all recipients using the first-name portion, last-name portion, street (B), city (C), state (D), and zip (E).

Deduplicate, clean, then load the full list

Some email domains in the sheet appear twice because the same prospect was added from two sources, and a few state values are still spelled out.

Remove duplicate rows where columns A and B (first and last name) match exactly, convert column E to two-letter state abbreviations, then create a new Thanks.io mailing list called ABM Prospects Q3 and add all remaining rows using first name (A), last name (B), street (C), city (D), state (E), and zip (F).

The cleanup and the list creation run in the same prompt.

Try It

Get the 7-day free trial of SheetXAI and open your prospect sheet — ask it to create a Thanks.io mailing list and load every row in one shot. When the list is live, see the spoke on bulk-sending postcards for the next step in the campaign.

Stop memorizing formulas.
Tell your spreadsheet what to do.

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

Learn more