[Spreadsheet integration]

Send postal mail from Google Sheets rows

Use Sheets as a simple mail-merge, recipient list, permit tracker, or approval queue that creates mailbox.bot letters, postcards, and certified mail.

recommended shape
source app trigger
agent or code drafts
mailbox.bot dry run
approval gate
delivery webhook
Best for
Batch letters and postcards before a full app exists.
Ops teams maintaining recipient lists in spreadsheets.
Generated app prototypes where Sheets is the first database.
Triggers
Row status changes to approved.
New row arrives from a form or import.
Scheduled job scans rows with a due date or missing response.
[Workflow]
1

Script, Zapier, n8n, or an agent reads approved rows.

2

Template logic renders a letter or PDF.

3

mailbox.bot dry run validates addresses and estimates cost.

4

Approved rows are sent live.

5

Status, tracking, mail_id, and proof fields are written back to the row.

Technical pattern
Use row IDs or stable sheet keys in metadata.
Add columns for mail_status, mail_id, tracking, proof_url, and approved_by.
Use sandbox keys while testing the sheet workflow.
Metadata to preserve
source=google_sheets
spreadsheet_id
sheet_name
row_id
batch_id
approved_by
POST/api/v1/maildry_run=true
curl -X POST https://mailbox.bot/api/v1/mail \
  -H "Authorization: Bearer sk_agent_test_..." \
  -H "X-Mailbox-MD-Version: 3" \
  -H "X-Max-Cost-Cents: 1500" \
  -F "document=@notice.pdf" \
  -F "recipient_name=Recipient Name" \
  -F "recipient_line1=123 Main Street" \
  -F "recipient_city=San Francisco" \
  -F "recipient_state=CA" \
  -F "recipient_zip=94105" \
  -F "mail_class=certified" \
  -F "dry_run=true" \
  -F 'metadata[source]=google-sheets'
Agent prompts
"Build a Google Sheets mail-merge that sends approved rows through mailbox.bot with dry-run validation first."
"Create a spreadsheet workflow that writes mailbox.bot delivery proof back into each row."