Interactive Email Automation via Zapier & Webhooks

MailInApp doesn't have an official Zapier app, and doesn't need one: the project webhook is already plain, signed JSON over HTTPS — exactly what Zapier's Webhooks by Zapier trigger (or Make, n8n, Pipedream, or anything else that catches an inbound webhook) expects out of the box.

Subject

Quick question — how'd we do?

Every poll vote, form submit, or purchase fires a signed webhook the moment it happens — point it at Zapier's generic Webhooks trigger and every interaction lands in your CRM, spreadsheet, or Slack channel with no code.

MailInApp doesn't have an official Zapier app, and doesn't need one: the project webhook is already plain, signed JSON over HTTPS — exactly what Zapier's Webhooks by Zapier trigger (or Make, n8n, Pipedream, or anything else that catches an inbound webhook) expects.

Enable it once per project

On the Responses page, enter an HTTPS URL and click Enable. MailInApp shows a signing secret (whsec_…) once — keep it if you plan to verify signatures later.

Catch it, filter it, act on it

In Zapier, a Webhooks by Zapier → Catch Hook trigger receives every event. A Filter by Zapier step right after it narrows to what matters — event.action equals submit or purchase, a specific event.blockId, or lowScore is true for a manager-alerting Zap on bad CSAT/NPS responses.

Nothing's ever silently dropped

A dead Zap URL or a temporary outage counts as a failed delivery, retried automatically with backoff (roughly 1 minute, 5 minutes, 30 minutes, 2 hours, then 6 hours). The interaction itself is always stored in MailInApp first, so a missed delivery loses nothing — the Responses page is the source of truth, the webhook is the real-time signal.

It works both directions

A separate Webhooks by Zapier → POST step, as the last step of a different Zap ("ticket resolved," "deal closed"), can call your contact list's row-upsert endpoint to add or update a MailInApp contact automatically, keeping a send list current without a human re-exporting a CSV.

Getting started

Enable the webhook on your project's Responses page, catch it with a Webhooks by Zapier trigger, add a filter step for the events you care about, then wire up whichever action — Sheets, CRM, Slack — fits your workflow.

A typical build-and-send sequence

  1. 1

    Enable a project webhook

    On the Responses page, enter an HTTPS URL and click Enable — MailInApp shows you a signing secret (whsec_…) once; keep it if you plan to verify signatures later.

  2. 2

    Catch it in Zapier

    Create a Zap with Webhooks by Zapier as the trigger, event Catch Hook, and paste in the Catch Hook URL as your project's webhook target.

  3. 3

    Filter to what matters

    Add a Filter by Zapier step matching event.action (submit, vote, purchase, …), event.blockId, or the lowScore flag, so the Zap only continues for the interactions you actually care about.

  4. 4

    Push data back the other way, optionally

    A separate Webhooks by Zapier → POST step at the end of another Zap (a resolved ticket, a closed deal) can call your contact list's row-upsert endpoint to keep a MailInApp send list current automatically.

Frequently asked questions

Is there an official Zapier app for MailInApp?

No — the project webhook is plain signed JSON, which Zapier's generic Webhooks by Zapier trigger already handles natively, so no dedicated app integration is needed.

What happens if my Zap or endpoint is briefly down?

A dead URL, a paused Zap, or an outage all count as a failed delivery — MailInApp retries automatically with backoff (roughly 1 minute, 5 minutes, 30 minutes, 2 hours, then 6 hours) against your webhook's current URL and secret, and still-failing deliveries show up under Failed deliveries with a manual Redeliver button.

Is an interaction ever lost if the webhook never succeeds?

No — the event is always stored in MailInApp first and shown on the Responses page regardless of delivery outcome; treat the webhook as a real-time signal and the Responses view as the source of truth.

Can I verify the webhook actually came from MailInApp?

Yes — every delivery carries an HMAC signature in the X-MailInApp-Signature header, verifiable against the signing secret shown once when the webhook was enabled.

Can automation push new contacts into MailInApp, not just pull events out?

Yes — a per-list API key authorizes a server-to-server row-upsert endpoint (Authorization: Bearer, not a Firebase ID token) that a Zap's final POST step can call to add or update contacts, capped at 500 rows per batch and rate-limited per key.

Build this in the studio

Start on the free plan — every interactive block and the full fallback engine are included on every tier.