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

Bulk Send Personalized Handwritten Cards From a Google Sheet

2026-05-14
5 min read

The Scenario

Your broker sent the list on Monday. A Google Sheet with 120 rows — past clients, their home addresses, closing dates, and a personalized note column you spent an hour filling in over the weekend. The anniversary cards need to be ordered by Wednesday so they arrive before the closing-date month ends.

You open Handwrytten. There's an order form. One recipient at a time.

The bad version:

  • Copy row 1's name and address fields into the recipient form, type the message from column F, select card ID 4421, submit. Switch back to the sheet. Row 2.
  • By row 18, you've pasted the wrong message into the wrong order and caught it only because the preview looked off. Back to fix it. Back to row 19.
  • By row 40, you've been at this for two hours, your coffee is cold, and you've got 80 rows left.

Nobody told you the job was data entry. You're a real-estate broker. The personalized notes in column F are the part that took craft — and now you're spending your Tuesday afternoon transcribing them into a web form, field by field.

The Easy Way: One Prompt in SheetXAI

SheetXAI is an AI agent that lives inside your Google Sheet. It reads the sheet, understands the column structure, and through its Handwrytten integration it can place card orders for every row in a single pass.

Open the SheetXAI sidebar and paste this prompt:

Send a Handwrytten thank-you card to every row in my 'Clients' sheet — name in column A, address in B, city in C, state in D, zip in E, personalized message in F — use card ID 4421 and my saved signature

What You Get

  • One order placed per row, using the exact name, address, and message from the sheet
  • Card ID 4421 applied to every order, with your saved signature
  • Order confirmation status written back to column G — a confirmation ID for successes, an error note for any row with a missing or malformed field
  • Rows with blank addresses skipped automatically, flagged in column G so nothing falls through silently

What If the Data Is Not Quite Ready

The address fields are formatted inconsistently

Some rows have the full address in one column. Others split it across three. Handwrytten needs them separated.

Before placing orders, normalize the address data in my 'Clients' sheet: if column B contains a full street address including city and state, split it — put the street in B, city in C, state in D, zip in E — then send a Handwrytten card to every row using card ID 4421 and the message in column F

The message column has some blanks

Fifteen rows have nothing in column F. You want a fallback message for those.

Send a Handwrytten card to every row in my 'Clients' sheet using card ID 4421. For rows where column F is blank, use the message: 'Thank you for trusting us with your home — it was our honor.' For all other rows, use column F.

Some clients appear in two tabs and you only want to send once

The sheet has both a 'Clients' tab and a 'Referred Clients' tab, and there's overlap.

Combine the rows from my 'Clients' and 'Referred Clients' tabs, deduplicate by email address in column G, then send a Handwrytten card to each unique recipient using card ID 4421 and the message in column F

The full pipeline: normalize, deduplicate, and send in one shot

In my 'Clients' sheet, normalize any full-address entries in column B into separate city, state, and zip fields. Then combine with 'Referred Clients,' deduplicate by email in column G, and send a Handwrytten card to every unique recipient using card ID 4421. For rows with blank messages in column F, use 'Thank you for being part of our client family.' Write the order status back to column H.

The pattern: every cleanup step and the send action happen together. You don't run three prompts — you run one.

Try It

Get the 7-day free trial of SheetXAI and open your client or contact sheet, then ask it to push your anniversary or thank-you card orders to Handwrytten in a single prompt. Also worth reading: Import contacts and templates into Handwrytten from a sheet and the Handwrytten integration overview.

Stop memorizing formulas.
Tell your spreadsheet what to do.

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

Learn more