Skip to main content
Back to Blog
Direct Mail MarketingOctober 7, 2026

Send Physical Mail from Salesforce: Automate Direct Mail

W

WriteToMail Team

Your Salesforce pipeline tracks every deal stage, every follow-up, every account. But when a prospect goes cold, a payment goes overdue, or a deal closes, what happens next? Usually another email — the one they'll ignore.

Physical mail is different. A postcard or letter sitting on someone's desk doesn't have an unsubscribe button. Adding a physical mail touchpoint to your Salesforce workflows can meaningfully improve response rates, especially at high-stakes moments like collections, win-back campaigns, and deal-close follow-ups.

This guide shows you exactly how to send physical mail from Salesforce — using three methods that range from zero-code CSV exports to fully automated API triggers — all connected to WriteToMail's bulk mailing platform.


Why Physical Mail Belongs in Your Salesforce Workflow

The average office worker receives 120 emails per day. The average household receives two pieces of personal mail. That asymmetry is opportunity.

Physical mail also carries different psychological weight. A letter or postcard signals effort. It implies the sender thought it was worth printing, stamping, and physically delivering. That perception influences how recipients respond — even when the underlying message is the same.

Specific Salesforce use cases where physical mail outperforms digital-only follow-up:

  • Past-due accounts: Accounts with overdue balances are often email-fatigued. A physical invoice reminder or demand letter cuts through when email chains don't.
  • Post-close thank-you cards: A postcard mailed after a deal closes reinforces the relationship before onboarding begins.
  • Cold lead reactivation: Prospects who haven't responded to email sequences in 60+ days often respond to a physical touchpoint.
  • High-value prospect outreach: Sending a personalized letter to a $100K+ opportunity before a call is a differentiator almost no competitor will match.

According to the USPS Household Diary Study, 81% of households read or scan their physical mail daily. That kind of reliable attention is hard to replicate in any digital channel.


Three Methods to Send Physical Mail from Salesforce

Method 1: CSV Export from Salesforce Reports (No Code Required)

This is the fastest path if you don't have developer resources or want to test before building automation. It takes about 10 minutes the first time.

Step 1: Build a Salesforce Report

In Salesforce, navigate to Reports > New Report. Choose your object — Contacts, Leads, Accounts, or Opportunities depending on your use case.

Add the columns WriteToMail needs for mail merge:

  • First Name
  • Last Name
  • Company (optional)
  • Mailing Street
  • Mailing City
  • Mailing State
  • Mailing Zip
  • Any custom fields you want as variable data (e.g., Amount Due, Deal Value, Agent Name)

Filter by whatever criteria matches your campaign — deal stage, account status, last activity date, etc.

Step 2: Export the Report as CSV

Click Export in the top right of the report view. Select Details Only and format as CSV. Salesforce will download the file to your machine.

Step 3: Clean the CSV

Open the file in Excel or Google Sheets. Check for:

  • Missing or incomplete addresses (remove these rows or flag for cleanup)
  • Merged name fields (split into First Name / Last Name columns if needed)
  • State abbreviations vs. full state names (WriteToMail accepts both)

Rename your column headers to match WriteToMail's expected field names. At minimum: FirstName, LastName, Address1, City, State, Zip.

Step 4: Upload to WriteToMail

Log into your WriteToMail account and start a new mailing. Choose your format — letter, postcard, or check. Upload your CSV file. The platform will prompt you to map each column to the corresponding field in your mail template.

If your letter includes a placeholder like {{FirstName}} or {{AmountDue}}, map those to the corresponding CSV columns. WriteToMail will personalize each piece automatically with variable data merge.

Preview a sample piece, confirm the recipient list, and submit. WriteToMail handles printing, postage, and USPS First-Class Mail delivery from there.

For a detailed walkthrough of the CSV upload workflow, see our guide on running a direct mail campaign from a CSV file.


Method 2: Zapier Automation (Triggered Sends, No Code)

If you want mail to go out automatically when a Salesforce event happens — not on a manual schedule — Zapier is the right tool. This creates a real-time trigger workflow without writing a line of code.

How it works:

Zapier sits between Salesforce and WriteToMail. When a defined event fires in Salesforce (a deal moves to "Closed Won," an opportunity stage changes, a contact field updates), Zapier catches that event and sends the contact's data to WriteToMail for a physical mail send.

Setting up the Zap:

  1. Trigger: Choose Salesforce as the trigger app. Common triggers:

    • "Updated Record" on Opportunities (filter by Stage = "Closed Won")
    • "New Record" in a custom object or report
    • "Updated Field" on a Contact (e.g., Days Overdue > 30)
  2. Filter (optional): Add a Zapier filter step to narrow the trigger. For example, only fire when Deal Value > 10000 or Account Status = Delinquent.

  3. Action: Connect WriteToMail as the action app. Map the Salesforce data fields (First Name, Last Name, Address) to WriteToMail's required fields. Select the mail template you've pre-built in WriteToMail.

  4. Test: Run the Zap with a test record to confirm the mail triggers correctly before activating.

Once active, the workflow runs automatically. A deal closes in Salesforce at 2pm on a Tuesday — the thank-you postcard is in motion before you leave the office.

This approach works especially well for sales teams running automated physical mail alongside their CRM pipeline. The combination of digital outreach and physical mail at key pipeline moments creates a multi-channel sequence that's difficult to ignore.


Method 3: API Integration (Developer-Built, Fully Automated)

For teams that want deep automation — mail triggered by any CRM event, with dynamic content, at scale — an API-based integration is the right architecture.

WriteToMail's platform supports programmatic mail sends. A developer can build a Salesforce Flow or Apex trigger that fires when specific conditions are met, then sends a POST request to WriteToMail's API with recipient data and template parameters.

Basic API workflow:

// Salesforce Apex trigger fires when Opportunity Stage = "Negotiation"
// POST to WriteToMail API endpoint

POST https://api.writetomail.com/v1/mail
Headers:
  Authorization: Bearer YOUR_API_KEY
  Content-Type: application/json

Body:
{
  "template_id": "tmpl_abc123",
  "recipient": {
    "first_name": "{{Opportunity.Contact.FirstName}}",
    "last_name": "{{Opportunity.Contact.LastName}}",
    "address": "{{Opportunity.Contact.MailingStreet}}",
    "city": "{{Opportunity.Contact.MailingCity}}",
    "state": "{{Opportunity.Contact.MailingState}}",
    "zip": "{{Opportunity.Contact.MailingPostalCode}}"
  },
  "merge_fields": {
    "deal_name": "{{Opportunity.Name}}",
    "rep_name": "{{Opportunity.Owner.Name}}"
  }
}

What this enables:

  • Mail triggers the instant a record meets criteria — no manual export, no Zapier latency
  • Dynamic content per recipient (different letter body depending on Opportunity type or account segment)
  • Full logging — you can write the API response back to the Salesforce record to track that mail was sent
  • Batch sends for large account segments via Salesforce Scheduled Flows

For teams evaluating the build-vs-buy decision or comparing WriteToMail to enterprise alternatives like Lob, our physical mail API guide for developers covers the technical tradeoffs in detail.


Field Mapping for Salesforce Mail Merge

Getting the field mapping right is the most common friction point. Here's how Salesforce fields typically map to WriteToMail's mail merge placeholders:

Salesforce Field WriteToMail CSV Column Letter Placeholder
Contact: First Name FirstName {{FirstName}}
Contact: Last Name LastName {{LastName}}
Contact: Mailing Street Address1 {{Address1}}
Contact: Mailing City City {{City}}
Contact: Mailing State State {{State}}
Contact: Mailing Zip Zip {{Zip}}
Opportunity: Amount AmountDue {{AmountDue}}
Account: Name Company {{Company}}
Owner: Name RepName {{RepName}}

For the CSV export method, rename your Salesforce column headers to match these before uploading. For API integrations, map dynamically in your request body.


Common Salesforce-to-Mail Use Cases

Sales follow-up after demo: Export leads who attended a demo but haven't advanced in 14 days. Send a postcard with a direct CTA and a QR code linking to a case study. Physical mail reactivates prospects who've tuned out email.

Closed Won thank-you card: Trigger a thank-you postcard automatically when a deal moves to Closed Won. A postcard mailed within 48 hours of signing makes a strong impression before the onboarding process begins.

Past-due invoice notices: For accounts with invoices 30+ days overdue, export accounts matching that filter and send a formal payment demand letter. Physical mail carries more weight than an email for collections — particularly when it arrives as a printed document rather than another notification.

Legal notices and demand letters: Law firms and businesses using Salesforce as a matter management tool can trigger formal demand letters when account status changes. WriteToMail's demand letter template supports this use case directly.

Win-back campaigns: Export contacts who churned in the last 90 days. A personalized letter with a specific reactivation offer is more likely to land than a generic email sequence.


Troubleshooting Common Integration Issues

Problem: CSV upload fails with address validation error

Salesforce often exports addresses as a single "Billing Address" string rather than split fields. WriteToMail requires separate columns for street, city, state, and zip. Fix by splitting the address field in Excel using the Text to Columns feature before uploading.

Problem: Variable fields show as blank in the mailed piece

This means the CSV column header doesn't exactly match the placeholder name in your template. Check capitalization and spacing — {{FirstName}} will not match a column named First Name (with a space). Rename the column header to match exactly.

Problem: Zapier trigger fires but WriteToMail send doesn't complete

Usually a missing required field. WriteToMail requires a complete mailing address to process a send. Check that the Salesforce contact record has all address fields populated. Add a Zapier filter step to stop the workflow if MailingStreet is empty.

Problem: Duplicate sends to the same contact

If you're running both a Zapier trigger and a manual CSV export, you may send twice. Build a custom field in Salesforce — Physical Mail Sent (Date) — and update it via the API response or manually after each CSV send. Filter your reports and Zap triggers to exclude records where that field is populated.

Problem: Salesforce report exports more fields than WriteToMail needs

Extra columns don't break the upload, but they can make field mapping confusing. After export, delete columns not used in your template before uploading. Keep only the fields your letter or postcard actually references.


What You Can Send

WriteToMail supports multiple mail formats depending on the Salesforce use case:

  • Letters: Full-page personalized letters via USPS First-Class Mail. Best for formal notices, demand letters, and client correspondence.
  • Postcards: Printed postcards with full-color design. Best for sales follow-up, win-back campaigns, and announcement mailings.
  • Checks: Physical checks mailed to recipients. Useful for rebates, refunds, or incentive disbursements tied to deal milestones.
  • PDF upload: Upload an existing PDF document and have it printed and mailed. Useful when your Salesforce templates already produce formatted PDFs.

For campaigns involving hundreds or thousands of Salesforce contacts, WriteToMail's bulk mailing via CSV handles the volume. Our guide on sending bulk direct mail from a spreadsheet covers data hygiene and formatting at scale.


Conclusion

Salesforce gives you the data. WriteToMail turns that data into physical mail that actually gets read. Whether you use a simple CSV export, a Zapier workflow, or a direct API integration, the core mechanic is the same: CRM events trigger physical touchpoints that email can't replicate.

Start with the CSV export method if you want to move fast. Run a test campaign to your best 50 prospects or a segment of overdue accounts. Measure response. Once you've validated the channel, build the automation layer with Zapier or the API.

The businesses winning with physical mail in 2026 aren't doing anything exotic — they're just adding a channel that their competitors have abandoned. Sending physical mail from Salesforce is less about technology and more about showing up in a place your buyers didn't expect.

WriteToMail handles the printing, postage, and delivery. You just need the list.


Sources

  1. Statista — Email Volume Statistics — Referenced in context of daily email volume per office worker and inbox saturation.
  2. USPS Postal Pro — Household Diary Study — Cited for the statistic that 81% of households read or scan physical mail daily.
  3. WriteToMail Pricing — Platform pricing tiers for letters, postcards, and bulk mailing plans.
  4. WriteToMail for Law Firms — Capabilities for law firms sending demand letters and formal correspondence via Salesforce-triggered mail.
  5. WriteToMail — Bulk Mailing via CSV — Platform capability reference for CSV-based variable data mail merge and bulk sending.
integration

Ready to Try Direct Mail?

Create professional letters and we'll print and mail them for you. No stamps, no trips to the post office.