Skip to main content

Send mail from Zapier

paperplane’s native Zapier app lets any Zap print and mail a real USPS letter — add the “Send Letter” action, map your fields, and letters go out from $1.99, with a free sandbox mode for testing.

Native app in the Zapier directory

Instead of Zapier's Gmail or Outlook action

An email step delivers to an inbox that gets ignored; a demand letter, a lease notice or an IRS reply has to arrive on paper. The Send Letter action puts the same Zap output in an envelope, with USPS proof when you ask for it.

How to set it up

  1. 1Search “paperplane” in Zapier’s app directory and add the Send Letter action to your Zap.
  2. 2Map trigger data into the action fields — letter text (or a PDF URL), recipient, return address, and your email for the receipt.
  3. 3Leave Sandbox on for the first run — the whole flow executes free and instantly, and nothing is mailed.
  4. 4Switch Sandbox off to go live. Pay hands-off from a prepaid credit balance, or approve the Stripe payment link the action returns.
  5. 5Optional: add the Letter Status trigger to react when the letter is printed, mailed, or delivered.

Under the hood: the API call the action makes

{
  "mail_class": "first_class",
  "sandbox": true,
  "text": "Dear Ms. Alvarez, ...",
  "to":   { "name": "Maria Alvarez", "line1": "1 Main St",
            "city": "Richmond", "state": "VA", "zip": "23220" },
  "from": { "name": "Alex Rivera", "line1": "12 Grove Ave",
            "city": "Richmond", "state": "VA", "zip": "23221" },
  "email": "alex@example.com"
}

Same call as curl (for testing)

curl -X POST https://sendpaperplane.com/v1/orders \
  -H 'Content-Type: application/json' \
  -d '{
    "mail_class": "first_class",
    "sandbox": true,
    "text": "Dear Ms. Alvarez, ...",
    "to":   { "name": "Maria Alvarez", "line1": "1 Main St",
              "city": "Richmond", "state": "VA", "zip": "23220" },
    "from": { "name": "Alex Rivera", "line1": "12 Grove Ave",
              "city": "Richmond", "state": "VA", "zip": "23221" },
    "email": "alex@example.com"
  }'

Under the hood

The Zapier app is a thin wrapper over the same public REST API our own website uses (POST /v1/orders) — no API key, per-order payment, USPS address verification built in. Anything the app doesn’t expose yet is one Webhooks-by-Zapier step away against the same endpoint.

Supported action fields

Every integration maps into the same fixed set of fields, the ones the REST API and MCP tools take directly.

FieldWhat it does
mail_classfirst_class, certified, certified_return_receipt, or priority
text or pdf_urlthe letter body as plain text, or a fetchable PDF to print as-is
torecipient name + street/city/state/zip, verified against USPS data
fromreturn address, printed on the envelope and used for undeliverable mail
emailwhere the receipt and status updates go — no account required

Or skip the automation tool: ask Claude or ChatGPT

Every integration here sits on the same MCP endpoint agents use directly. Instead of wiring a trigger to an action, ask Claude or ChatGPT to draft and mail the letter. Same three tools (quote_letter, send_letter, get_letter_status), same price, same free sandbox.

Send mail from ClaudeSend mail from ChatGPT

Related integrations

Send your first letter from Zapier.

Sandbox runs the whole pipeline for free and mails nothing. Live sends start at $1.99, one all-in price.

curl -X POST https://sendpaperplane.com/v1/orders \
  -H 'Content-Type: application/json' \
  -d '{
    "mail_class": "first_class",
    "sandbox": true,
    "text": "Dear Ms. Alvarez, ...",
    "to":   { "name": "Maria Alvarez", "line1": "1 Main St",
              "city": "Richmond", "state": "VA", "zip": "23220" },
    "from": { "name": "Alex Rivera", "line1": "12 Grove Ave",
              "city": "Richmond", "state": "VA", "zip": "23221" },
    "email": "alex@example.com"
  }'

All integrations · API docs

Common questions

Do I need a paperplane account or API key?

No. Each order carries its own payment — a prepaid credit code for hands-off Zaps, or a Stripe payment link a human approves. Sandbox orders need nothing at all.

How does payment work from a Zap?

Fund a prepaid credit balance once and Zaps draw from it automatically, or have the action return a payment_url for a human to approve. Sandbox runs are free.

What happens if the address is bad?

Every order is verified against USPS data before anything prints. Failures return a structured error with the corrected candidate, so your Zap can retry or alert you.