[CRM integration]

Add postal mail actions to HubSpot workflows

Turn HubSpot deals, tickets, and lifecycle stages into approved postal mail, then write delivery proof, forwarded documents, and inbound mail photos back onto the right CRM record.

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
Deal-stage mail such as formal offers, notices, renewal packets, or win-back letters.
Contact, company, or ticket timelines that should hold mailed proof and inbound physical responses together.
Support or operations teams that escalate from email sequences to physical mail when a record stalls.
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, status, and any forwarded inbound document or mail photo 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, attachments, 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."