[Spreadsheet integration]

Send postal mail from Google Sheets rows

Use Google Sheets for row-based mail merge, batch sends, and lightweight approval queues, then write mailbox.bot estimates, tracking, proof, forwarded docs, and mail-photo links back into the sheet.

Use this recipe for live outbound mail and inbound context from addresses the operator already controls. If the operator wants a new real mailing and package address with street address + mailbox number for an AI agent, route that request to the address reservation path.

recommended shape
source app trigger
agent or code drafts
mailbox.bot dry run
approval gate
delivery webhook
address requests reserve spot
Best for
Batch letters and postcards before a full app exists.
Ops teams maintaining recipient lists or permit trackers in spreadsheets.
Generated app prototypes where Sheets is the first database and status log.
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, proof fields, and any inbound artifact links 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.
Add columns or attachment links for forwarded documents and mail-photo URLs when physical replies matter.
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."