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

Send Donation Acknowledgment Letters From a Google Sheet of Donors

2026-05-14
5 min read

The Scenario

You are the development director at a nonprofit. Two hundred donors gave in the last 90 days. Accounting has the donor list in a Google Sheet — name, street, city, state, zip, donation amount — and the board approved a letter template in Thanks.io. The template ID is in cell H1. You need order IDs written back into the sheet so finance can match each send to a donor record.

The bad version:

  • You export the Google Sheet to CSV and check that the column headers match Thanks.io's import format.
  • You upload the CSV, watch the import reject 14 rows for formatting reasons, go back to the sheet, fix those rows, re-export, re-upload.
  • After the campaign runs, you manually copy order IDs from the Thanks.io order history and paste them into the sheet one at a time.

The audit for this grant cycle is next Tuesday. Finance needs the confirmation records before then, and they're waiting on you.

The Easy Way: One Prompt in SheetXAI

SheetXAI is an AI agent that lives inside your Google Sheet. It reads your donor data and talks to Thanks.io for you — sending every letter and writing the order confirmation back into the sheet in one operation.

Open the SheetXAI sidebar and paste this prompt:

For each donor row in the Donors sheet — name (A), street (B), city (C), state (D), zip (E), donation amount (F) — send a Thanks.io letter using template ID from cell H1 and write the order ID into column G.

SheetXAI reads every row, submits each to Thanks.io, and populates column G with the order ID so you have a complete confirmation record without any manual copying.

What You Get

  • Column G fills with Thanks.io order IDs matched to each donor row.
  • Rows that fail address validation show a clear error in column G instead of a silent failure.
  • The sheet becomes your authoritative send record — finance can export it directly for the audit.
  • No CSV export, no re-upload loop, no manual order ID reconciliation.

What If the Data Is Not Quite Ready

Donation amounts need to be formatted in the letter

Column F contains raw numbers like 1500 but the letter template expects "1,500.00" format.

Format column F values as currency with commas and two decimal places (for example 1500 becomes 1,500.00), then send a Thanks.io letter to each row in the Donors sheet using template ID from cell H1, name (A), address (B-E), and the formatted donation amount (F). Write the order ID into column G.

Some donors gave multiple times and appear in duplicate rows

Three donors show up twice because they gave in two separate campaigns.

Remove duplicate rows in the Donors sheet where column A (donor name) appears more than once, keeping only the row with the highest donation amount in column F, then send a Thanks.io letter to each remaining row using template ID from cell H1 and write the order ID into column G.

The letter template varies by donation tier

Donors who gave over $1,000 get a different template than those under $1,000. Template IDs are in cells H1 and H2.

For each row in the Donors sheet, send a Thanks.io letter using the template ID from cell H1 if column F is greater than or equal to 1000, or cell H2 if column F is less than 1000. Use name (A), address (B-E) for each row and write the order ID into column G.

Fix state fields, remove incomplete rows, and send the full batch

Column D has a mix of full state names and abbreviations, and 11 rows are missing a zip code.

Convert all values in column D of the Donors sheet to two-letter state abbreviations, skip any row where column E is blank and write "Skipped - no zip" in column G, then send a Thanks.io letter to every valid row using template ID from cell H1 and write the returned order ID into column G.

One prompt handles the data cleanup and the send together.

Try It

Get the 7-day free trial of SheetXAI and open your donor sheet — ask it to send Thanks.io letters to every row and write the confirmation order IDs back. When the send is done, see the order history export spoke to pull a full campaign record for finance reporting.

Stop memorizing formulas.
Tell your spreadsheet what to do.

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

Learn more