The Scenario
Your broker sent the list on Monday. An Excel workbook 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:
- Export the workbook as a CSV. Open the CSV. Copy row 1's name and address fields into the Handwrytten recipient form, type the message from column F, select card ID 4421, submit. Go back to the CSV. 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 from a CSV into a web form, field by field.
The Easy Way: One Prompt in SheetXAI
SheetXAI is an AI agent that lives inside your Excel workbook. It reads the workbook, 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 workbook
- 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 worksheets and you only want to send once
The workbook has both a 'Clients' sheet and a 'Referred Clients' sheet, and there's overlap.
Combine the rows from my 'Clients' and 'Referred Clients' worksheets, 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.
One prompt, one pass. No switching between worksheets, no second cleanup run afterward.
Try It
Get the 7-day free trial of SheetXAI and open your client or contact workbook, then ask it to push your anniversary or thank-you card orders to Handwrytten in a single prompt. Also see: Import contacts and templates into Handwrytten from an Excel workbook and the Handwrytten integration overview.
