Skip to content

Send email to an app, not an inbox.

Point an alias at a URL and every message arrives there as a JSON request: sender, subject, text and HTML. Order emails become spreadsheet rows, contact forms become chat messages, alerts open tickets, and nobody has to keep a mailbox open for them.

Free. Works with Zapier, Make, n8n, Pipedream or any HTTPS endpoint you run.

Lumen Shoporders@lumen.exampleNew order #1042orders-7k@emailforward.xyzPOSThook.eu1.make.example/k29xq…{ "from": "orders@lumen.example", "subject": "New order #1042", "text": "Order #1042\n2 × Desk lamp, b…", … }200 OKOrdersOrderItemTotal#1040Wall clock€34.00#1041Linen throw€42.00#1042Desk lamp ×2€58.00

Some mail was never meant to be read

A lot of email is really data: an order, a lead, an alert, a sign-up code. The classic route parks it in a mailbox until someone opens it, reads it and types it somewhere else. A webhook hands it to the place it was going anyway.

What people wire it to

Anything that can receive an HTTPS request can receive your mail. A few setups that earn their keep:

Shop orders into a spreadsheet

Plenty of shop platforms only tell you about an order by email. Point those emails at an alias with a Make or Zapier webhook and each one becomes a row, without anyone copying numbers out of an inbox.

Uses subject, text

  1. orders@lumen.example
  2. orders-7k@emailforward.xyz
  3. Make: custom webhook
  4. Sheet: new row

What your URL receives

One POST per email, with a JSON body. Point at a field to see where it comes from.

The email
From
Lumen Shop <orders@lumen.example>
To
orders-7k+lumen@emailforward.xyz
Subject
New order #1042
Message-ID
<1042.a91f@lumen.example>
Lumen Shop#1042

Order #1042 2 × Desk lamp, brass Total: €58.00 Ship to: Porto

The request
POST /k29xq… Host: hook.eu1.make.example Content-Type: application/json User-Agent: emailforward.xyz-webhook/1.0
{}

Hover or tap a field.

aliasstring
The alias that received the mail, without the tag.
recipientTagstring | null
The part after + when the sender wrote alias+tag@…
messageIdstring | null
The email's Message-ID. Use it to drop the rare duplicate.
fromstring | null
The sender's address.
subjectstring | null
The subject line.
textstring
The body as plain text. Empty string if the mail had none.
htmlstring | null
The HTML body, with trackers removed and scripts stripped.
receivedAtstring
When the request was made, as an ISO 8601 UTC timestamp.

Attachments aren't included. If you need the files, keep an inbox or a Telegram chat on the alias as well.

Set up in three steps

  1. Get a URL

    In Zapier use Webhooks by Zapier → Catch Hook; in Make, a Custom webhook; in n8n, a Webhook node set to POST. Or use any HTTPS endpoint of your own.

  2. Add it to the alias

    On the alias page, add a recipient of type Webhook and paste the URL. We send one check request with {"emailforward_challenge": "…"}; a 200 or 204 answer confirms it.

  3. Send a test email

    The check isn't a real email, so send one to the alias. Your tool now has a real sample to map fields from.

A minimal receiver

export default async function handler(req, res) {
  const mail = req.body;

  // The one-time check when you add the URL.
  if (mail.emailforward_challenge) return res.status(200).end();

  // Rare retries can repeat a message.
  if (await seen(mail.messageId)) return res.status(200).end();

  res.status(200).end();
  await addOrderRow(mail.subject, mail.text);
}

Answer quickly: we wait up to 10 seconds. Do slow work after you respond.

Delivery rules

Request
POST with a JSON body. User-Agent: emailforward.xyz-webhook/1.0.
URL
HTTPS on a public host. Redirects aren't followed; local and private addresses are refused.
Success
Any 2xx status within 10 seconds.
Retries
Four more tries, after 30 s, 1, 2 and 4 minutes. Then the alias history shows the failure.
Duplicates
A URL that already accepted a message isn't sent it again, but dedupe on messageId to be safe.
Filtered mail
Mail held as spam, blocked by your rules or sent to a paused alias isn't posted.
Limits
Webhooks don't count toward the daily email cap. An alias takes up to 6 recipients, in any mix.
Security
The URL is the key, so keep it secret. Make, Zapier and n8n URLs already carry a random token; give your own endpoint one too.

Frequently asked

Give your next order email somewhere better to go.

Create an alias, then add your webhook from its page.

Create an alias

Rather read it on your phone? Forward it to Telegram