[Database integration]

Trigger postal mail from Airtable records

Use Airtable as the record-of-truth for notices, permit tasks, campaigns, and operations queues, then attach outbound mail status, forwarded documents, and inbound mail photos back to the same row.

recommended shape
record status becomes Ready to Mail
PDF rendered from fields
dry run validates address and cost
approval field gates the send
tracking and proof written to the row
Best for
Lightweight CRMs and ops trackers.
Permit, property, vendor, or stakeholder lists that need physical mail and a visible proof trail.
Approval tables where status changes should create postal mail and later collect returned artifacts.
Triggers
Record status changes to Ready to Mail.
A view contains approved recipients.
A formula identifies a deadline or failed digital follow-up.
[Workflow]
1

Airtable automation, script, Zapier, n8n, or agent reads the record.

2

Letter/PDF is generated from fields and attachments.

3

mailbox.bot dry run validates recipient, mail class, and cost.

4

Approval field gates the live send.

5

Webhook writes tracking, delivery proof, forwarded documents, and mail-photo attachments back to Airtable.

Technical pattern
An automation ('When record matches conditions' → 'Run script') calls POST /api/v1/mail from the script action.
An attachment field holds the generated PDF; a checkbox or single-select field is the approval gate the automation checks.
Store base_id, table_id and record_id in metadata; the event handler updates the record by id.
Keep the API key in the automation's input config, never in a formula or a shared view.
Metadata to preserve
source=airtable
base_id
table_id
record_id
view_id
workflow
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: <version>" \
  -H "X-Max-Cost-Cents: 1500" \
  -F "document=@record-notice.pdf" \
  -F "recipient_name=<recipient>" \
  -F "recipient_line1=<street>" \
  -F "recipient_city=<city>" \
  -F "recipient_state=<state>" \
  -F "recipient_zip=<zip>" \
  -F "mail_class=first_class" \
  -F "dry_run=true" \
  -F 'metadata[base_id]=<base_id>' \
  -F 'metadata[table_id]=<table_id>' \
  -F 'metadata[record_id]=<record_id>' \
  -F 'metadata[source]=airtable'
Agent prompts
"When an Airtable record enters Ready to Mail, use mailbox.bot to create a dry run and update the record with the estimate."
"Build an Airtable approval flow for certified notices with mailbox.bot delivery proof written back to the table."