Skip to main content

Send mail from Make

paperplane is a listed Make app: add the “Send a Letter” module to any scenario and real USPS mail goes out from $1.99 per letter — typed fields, no JSON, free sandbox included.

Listed app in the Make directory

Instead of Make's HTTP module against a mail API

A raw HTTP module works, but you build the JSON, store a key and parse errors by hand. The listed module has typed fields, Sandbox as a switch and the returned payment_url as an output.

How to set it up

  1. 1Search “paperplane” when adding a module to your scenario and choose Send a Letter.
  2. 2Fill the typed fields — letter text or PDF URL, recipient, return address, receipt email — mapping scenario variables as needed.
  3. 3Run once with Sandbox on: the whole pipeline executes free and instantly.
  4. 4Turn Sandbox off for real mail; pay from a prepaid credit balance or handle the returned payment_url.
  5. 5Optional: add the Watch Letter Status module to branch on printed / mailed / delivered.

Under the hood: the request the module sends

{
  "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 Make app is typed modules over our public REST API. The generic HTTP module against POST /v1/orders remains fully supported for anything the app doesn’t cover.

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 Make.

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

How do I test without spending money?

Enable Sandbox on the module — rendering, screening, and simulated fulfillment run instantly and free, and nothing is printed or mailed.

Can a scenario send Certified Mail?

Yes — set the mail class field to Certified (or Certified + Return Receipt for electronic proof of delivery). The response carries the exact all-in total.

Do I need an API key?

No — each order carries its own payment via credit balance or Stripe link, and sandbox needs nothing.