Skip to content

Every plan, Free included

Parsed email in Zapier and Make

Send each email an endpoint receives to a Zap or a Make scenario, with the fields and line items your layouts read, and let it carry the order, booking or report on to your other tools. Our Zapier and Make apps are in review and not listed in their directories yet. Until they are, a catch hook in either one receives the same signed JSON today.

On every plan, Free included. Deliveries do not count against your quota.

Set it up

  1. 1

    Create a hook

    In Zapier, start a Zap with Webhooks by Zapier and its Catch Hook trigger. In Make, add a Webhooks module with a custom webhook. Copy the URL it gives you.

  2. 2

    Add it as a destination

    In the endpoint's Settings, under Forwarding, add Your server with that URL. Under What it gets, leave only Emails ticked, so each email goes as signed JSON.

  3. 3

    Send a sample

    Send test delivery posts the newest email, or a sample, once, so Zapier or Make learns its fields.

  4. 4

    Map the fields and turn it on

    Each email arrives as email.received JSON with the email under data: data.subject, data.from.address, data.fields and, on an endpoint with layouts, data.parsed.

Every setting, in full: The Zapier and Make docs

The apps are in review

Our Zapier and Make apps are not listed in the Zapier or Make directories yet. The steps above work today with the tools both already have: a Webhooks by Zapier catch hook and a Make custom webhook. Once the apps are listed, they add and remove that destination for you.

What the apps offer

Both connect with an API key. The trigger is a REST hook: turning a Zap or scenario on adds a JSON destination for emails to the endpoint you pick, and turning it off removes it.

The Zapier and Make apps
WhatZapierMake
TriggerNew Email (instant)Watch emails (instant)
ActionsCreate Endpoint, Send Test EmailCreate an endpoint, Send a test email
SearchFind Email: the newest matchSearch emails: newest first

What a Zap or scenario receives

One POST per email, the same signed JSON any destination gets. On an endpoint with layouts, data.parsed holds the fields and line items:

{
  "type": "email.received",
  "timestamp": "2026-10-29T17:33:26.882Z",
  "data": {
    "id": "3f2a9c1e-0000-4000-8000-000000000000",
    "endpoint": { "slug": "orders-acme", "name": "Orders" },
    "address": "orders-acme@mailhooks.cc",
    "subject": "Order #1001 confirmed",
    "from": { "name": "Acme Store", "address": "orders@acme.example" },
    "parsed": {
      "status": "matched",
      "layout": { "id": "orders", "name": "Acme orders" },
      "fields": { "order": "1001", "total": "37.50" },
      "lineItems": [
        { "sku": "ACME-TEE-M", "qty": "2", "price": "12.50" },
        { "sku": "ACME-MUG", "qty": "1", "price": "12.50" }
      ]
    },
    "...": "..."
  }
}

Shortened. The full JSON also carries the recipients, the text and HTML, the attachments (as signed links by default), the sender checks and the headers; see Signed JSON.

What to know

  • Every plan, Free included
  • The same signed email.received JSON as any destination
  • A URL that answers 410 Gone turns its destination off
  • Up to 10 destinations per endpoint
  • Apps: an instant New email trigger, two actions, a search
  • Apps connect with an API key (whcc_...)
  • Search: 60 per 10 minutes per account
  • No extra quota: each email counted once when it arrived

Plans, prices and limits: Pricing

Questions

More on mailhooks.cc