Skip to main content

CONNECT

Use paperplane in Pipedream

Justin WinterBy · Updated August 26, 2026

paperplane built a real Pipedream component — a no-auth app plus three actions (Quote Letter, Send Letter, Get Letter Status) that mirror the MCP tool surface. It isn't in Pipedream's public app directory yet, but the finished source is ready to run: clone it, deploy it into your own account with the Pipedream CLI (pd deploy), and it works in any workflow today — free sandbox, no API key.

paperplane built a real Pipedream component package — not a hypothetical, and not something you’d have to assemble yourself from a generic HTTP step. It lives in this repo at integrations/pipedream/components/paperplane/: a no-auth app file plus three actions, paperplane-quote-letter, paperplane-send-letter, and paperplane-get-letter-status, matching Pipedream’s own registry conventions exactly (key naming, annotations, $.export("$summary", …)) so it’s a straight copy into their repo when it’s submitted. The honest part: it hasn’t been submitted yet — there is no paperplane listing in Pipedream’s public app directory today. What follows is how to run the finished component in your own account right now, ahead of that.

Run it today (before the public listing)

  • Install the Pipedream CLI and sign in: pd login.
  • Get the component source — clone this repo, or copy just integrations/pipedream/components/paperplane/.
  • Deploy an action straight into your own account: pd deploy actions/quote-letter/quote-letter.mjs (run from inside components/paperplane/), and again for send-letter and get-letter-status. Each becomes a private, custom action you can drop into any workflow — nothing waits on an upstream merge.
  • While iterating on one action, pd dev actions/quote-letter/quote-letter.mjs runs it locally with live reload instead of redeploying on every change.
  • Once paperplane’s upstream PR merges and Pipedream provisions the paperplane app listing, the same actions appear by searching “paperplane” when adding a step — this page will say so.

What the three actions do

  • Quote Letter (paperplane-quote-letter, POST /v1/quotes) — free, read-only. Set Mail Class and Page Count for a price only, or add the recipient plus Letter Text / PDF URL to also mint a single-use confirmation_token for the next step.
  • Send Letter (paperplane-send-letter, POST /v1/orders) — the write action: spends money and mails a real object unless Sandbox Mode is on, which it is by default. Pass in the Quote step’s confirmation_token so recipient, content, and price can’t drift between the two calls. Optional props cover Credit Code (instant payment from a prepaid balance), Webhook URL (signed delivery events instead of polling), and Idempotency Key.
  • Get Letter Status (paperplane-get-letter-status, GET /v1/orders/{id}) — free, read-only. Poll until a terminal status: delivered, refused, canceled, or failed.

All three share a Base URL prop defaulting to https://sendpaperplane.com — leave it unless you’re pointing at a self-hosted paperplane deployment.

Sandbox-first: an example workflow

Build the flow with Sandbox Mode left on its default (true) — nothing prints or mails until you flip it off on purpose:

[Schedule / HTTP trigger] → [paperplane-quote-letter] → [paperplane-send-letter] → [paperplane-get-letter-status]
  • Quote Letter — Mail Class Certified, Page Count 1, Recipient Name “Maria Alvarez”, Street “1 Main St”, City “Richmond”, State “VA”, ZIP “23220”, Letter Text “Pipedream integration test.”
  • Send Letter — same Mail Class and recipient, Letter Text repeated, Confirmation Token {{steps["paperplane-quote-letter"].$return_value.confirmation_token}}, Sandbox Mode left on.
  • Get Letter Status — Order ID {{steps["paperplane-send-letter"].$return_value.order.id}}.

Run it: Quote Letter’s $summary reports the price and confirms a confirmation token was minted; Send Letter returns a completed ord_test_… order — address verification, content screening, and simulated printing all ran, nothing mailed or charged; Get Letter Status confirms the order and its stage. When the shape is right, set Sandbox Mode to false and either pass a prepaid credit code for hands-off sending or route the response’s payment_url to a human to approve.

Where this fits

The shape mirrors the workflows the n8n and MCP surfaces target: an Airtable or Stripe-triggered flow that escalates a past-due invoice to a certified demand letter, a scheduled quote that posts to Slack for approval before the send step runs, a form submission that mails a real welcome letter. If a step would rather skip components entirely, the same backend is plain REST:

curl -X POST https://sendpaperplane.com/v1/orders \
  -H 'Content-Type: application/json' \
  -d '{
    "mail_class": "first_class",
    "sandbox": true,
    "text": "Pipedream integration test.",
    "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" }
  }'

Full reference on the developer docs, and the confirmation-token contract these actions implement is documented in how AI agents mail letters via MCP.

Related guides

Common questions

Is paperplane listed in the Pipedream app directory?

Not yet — pipedream.com/apps/paperplane doesn’t exist today. The component package (an app file plus three actions, built to Pipedream’s own contribution guidelines) is finished and ready to submit; the upstream PR into PipedreamHQ/pipedream just hasn’t been opened. Until it merges, you run the same source yourself with the Pipedream CLI — see below.

Do I need an API key or OAuth connection?

No. paperplane is a no-auth Pipedream app — there’s a Base URL prop (defaulting to the production deployment) instead of a connected account. Payment happens per order, not per connection: a prepaid credit code, a Stripe payment_url for a human to approve, or nothing at all for sandbox orders.

Is it safe to run Send Letter while building?

Yes — Sandbox Mode defaults to true on Send Letter. Sandbox orders run the entire pipeline (address verification, content screening, simulated printing, tracking) and return an ord_test_… id instantly, for free, without mailing anything. Quote Letter never spends money regardless of the flag.

What happens if the request fails — do I get a raw HTTP error?

No. The component’s shared _makeRequest method unwraps paperplane’s error envelope ({ code, reason, next[] }) into a readable message with the recommended next step, so a failed step in your workflow tells you what actually went wrong instead of just an HTTP status code.

Use paperplane in Pipedream

First-Class $1.99 · Certified $12.99 · Certified + Return Receipt $14.99

Read the developer docs