[CRM integration]

Add postal mail actions to HubSpot workflows

Let agents or workflow code draft, approve, send, track, and log certified mail, notices, postcards, and document packets from HubSpot CRM state.

recommended shape
source app trigger
agent or code drafts
mailbox.bot dry run
approval gate
delivery webhook
Best for
Deal-stage mail such as formal offers, notices, renewal packets, or win-back letters.
Contact or company workflows that need certified delivery proof.
Ticket workflows where failed email or ignored follow-up should become postal mail.
Triggers
Deal enters a selected stage.
Contact has no response after a defined follow-up window.
Ticket needs a formal mailed notice or document packet.
[Workflow]
1

HubSpot workflow, webhook, custom code action, or agent reads CRM context.

2

Agent drafts a letter or packet and calls mailbox.bot with dry_run=true.

3

Human approves sensitive, certified, or high-cost mail.

4

mailbox.bot prints, stamps, mails, tracks, and emits lifecycle webhooks.

5

The integration writes delivery proof, tracking, and status back to the HubSpot object.

Technical pattern
Use HubSpot object IDs in mailbox.bot metadata.
Use mailbox.bot REST for direct sends or MCP for agent-driven drafting and previews.
Subscribe to mailbox.bot webhooks and update HubSpot notes, timeline events, tasks, or custom properties.
Metadata to preserve
source=hubspot
object_type
object_id
deal_id
contact_id
company_id
ticket_id
workflow_id
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]=hubspot'
Agent prompts
"When this HubSpot deal enters Contract Sent, draft a certified letter and create a mailbox.bot dry run."
"If this customer ignores three email follow-ups, prepare a first-class mailed notice and ask for approval."