CodingIdeas.ai

MailHook — Stop Polling Your Inbox Every 30 Seconds Inside n8n

Your n8n workflow is burning API calls waiting for an email reply that might arrive in 4 hours. MailHook is a webhook bridge that listens for inbound email events via SendGrid and wakes your workflow exactly when the reply lands — zero polling, zero wasted cycles.

Difficulty

intermediate

Category

Developer Tools

Market Demand

High

Revenue Score

7/10

Platform

Web App

Vibe Code Friendly

No

Hackathon Score

6/10

Validated by Real Pain

— sourced from real community discussions

Redditreal demand

n8n builders need to pause a workflow and resume it only when a specific email reply arrives, but have no native option besides wasteful polling every 30 seconds or complex manual webhook setups.

What is it?

n8n users consistently hit a wall when they need to pause a workflow and resume it only when a specific email reply arrives. Polling every 30 seconds is wasteful and brittle; rolling your own webhook setup requires SendGrid domain verification, inbound parse config, and custom middleware most users cannot wire up in an afternoon. MailHook abstracts all of that: you get a unique reply-to address per workflow run, SendGrid inbound parse fires a webhook, a Vercel edge function matches the reply to the waiting execution ID, and n8n resumes via its built-in webhook trigger. Buildable in one weekend using SendGrid Inbound Parse, Vercel Functions, and Supabase to store pending execution state. The June 2026 n8n community is exploding with automation agency builders who pay for tools that eliminate polling overhead.

Why now?

n8n's June 2026 community growth (50,000+ forum members) combined with SendGrid Inbound Parse being free up to 1,000 emails/month makes this zero-cost to validate — and no competitor has built a purpose-built n8n execution-resume bridge.

  • Unique reply-to address generated per workflow execution (Implementation note: prefix + execution ID encoded in address local-part)
  • SendGrid Inbound Parse webhook receiver that matches replies to waiting n8n executions
  • Supabase-backed execution state store with TTL expiry for abandoned waits
  • One-click n8n node snippet users paste to register a wait and receive the resume webhook URL

Target Audience

n8n automation builders and agency developers — estimated 80,000+ active n8n cloud and self-hosted users.

Example Use Case

A recruiter automation sends 200 outbound emails and MailHook resumes each candidate workflow branch the moment a reply arrives, feeding reply text directly into the next Claude node for classification.

User Stories

  • As an n8n agency builder, I want my workflow to pause and resume when a client replies to an automated email, so that I can eliminate 30-second polling loops that waste API calls.
  • As a solo automation founder, I want a dashboard showing all pending email waits across my workflows, so that I can debug stuck executions without digging through n8n logs.
  • As a Pro tier user, I want to register up to 5,000 email listens per month, so that I can run high-volume outreach automations without hitting rate limits.

Done When

  • Register: done when calling /api/register returns a unique reply-to email address within 500ms and row appears in Supabase.
  • Resume: done when a reply sent to the generated address causes n8n to receive a webhook POST with the reply body within 10 seconds.
  • Dashboard: done when user sees all pending and completed executions with status badges and expiry countdown without any page refresh.
  • Billing: done when Stripe checkout completes and user's monthly listen quota updates immediately in the UI.

Is it worth building?

$9/month Starter (500 listens) + $29/month Pro (5,000 listens). $29/month x 50 users = $1,450 MRR at month 3. Realistic path: $5k MRR by month 8 with n8n community distribution.

Unit Economics

CAC: $8 via community content. LTV: $348 (12 months at $29/month). Payback: 0.3 months. Gross margin: 89%.

Business Model

SaaS subscription

Monetization Path

Free tier: 50 listens/month. Paid tiers unlock volume and multiple reply-address pools.

Revenue Timeline

First dollar: week 3 via beta upgrade. $1k MRR: month 3. $5k MRR: month 9.

Estimated Monthly Cost

SendGrid: $15, Vercel: $20, Supabase: $25, Stripe fees: ~$15. Total: ~$75/month at launch.

Profit Potential

Full-time viable at $5k–$8k MRR with zero marginal infra cost per additional user.

Scalability

High — stateless edge functions scale horizontally; add Upstash Redis for sub-100ms execution lookup.

Success Metrics

Week 2: 5 beta builders testing. Month 1: 20 paid. Month 3: 75% month-2 retention.

Launch & Validation Plan

Post in r/n8n offering free beta access; DM 15 n8n agency builders on LinkedIn before writing a single line.

Customer Acquisition Strategy

First customer: post a short demo video in the n8n community forum and Discord showing a workflow resume on reply — offer 3 months free for first 10 users. Ongoing: n8n template marketplace listing, r/n8n posts, and YouTube tutorial targeting 'n8n wait for email reply' search.

What's the competition?

Competition Level

Low

Similar Products

n8n built-in polling (wasteful), Pipedream inbound email (not n8n-native), Mailparser (extracts data but does not resume workflows) — none provide a stateful execution-resume bridge for n8n specifically.

Competitive Advantage

Zero-config for n8n users, purpose-built reply matching, no self-hosted SendGrid domain management required.

Regulatory Risks

Email content passes through SendGrid servers — document data retention policy and offer EU inbound parse endpoint for GDPR compliance.

What's the roadmap?

Feature Roadmap

V1 (launch): register, inbound parse, resume webhook, usage dashboard. V2 (month 2-3): reply content extraction node, multi-workflow per user. V3 (month 4+): Make and Zapier adapters, team accounts.

Milestone Plan

Phase 1 (Week 1-2): schema, register and inbound API routes, SendGrid wired. Phase 2 (Week 3-4): dashboard, Stripe billing, n8n snippet docs. Phase 3 (Month 2): 20 paid users, community launch post.

How do you build it?

Tech Stack

Next.js API routes, Supabase for execution state, SendGrid Inbound Parse for email webhooks, Resend for transactional email, Stripe for billing — build with Cursor for backend logic, v0 for dashboard UI.

Suggested Frameworks

Express.js, Supabase JS SDK, SendGrid Node SDK

Time to Ship

2 weeks

Required Skills

SendGrid Inbound Parse setup, Vercel edge functions, Supabase row-level security, Stripe webhooks.

Resources

SendGrid Inbound Parse docs, n8n webhook trigger docs, Supabase quickstart, Vercel Functions docs.

MVP Scope

app/api/inbound/route.ts (SendGrid inbound parse receiver), app/api/register/route.ts (register execution wait), app/dashboard/page.tsx (active waits list), lib/db/schema.ts (executions table), lib/matcher.ts (reply-to address matcher), lib/n8n.ts (resume webhook caller), .env.example (required env vars), seed.ts (demo execution rows).

Core User Journey

Copy snippet into n8n -> call /api/register to get reply-to address -> send email -> reply arrives -> workflow resumes automatically.

Architecture Pattern

n8n node POSTs execution ID to /api/register -> Supabase stores pending execution -> email reply arrives at SendGrid -> inbound parse fires /api/inbound -> matcher looks up execution ID -> POST to n8n resume webhook -> Supabase row marked complete.

Data Model

User has many Pools. Pool has many Executions. Execution has one ReplyAddress and one ResumeWebhookURL. Execution status: pending, completed, expired.

Integration Points

SendGrid Inbound Parse for email events, Supabase for execution state, n8n webhook trigger for resume, Stripe for billing, Resend for transactional emails.

V1 Scope Boundaries

V1 excludes: Make/Zapier support, custom SMTP bring-your-own-server, team accounts, email threading analysis, mobile app.

Success Definition

A paying n8n builder finds MailHook via the community forum, wires it into their workflow without contacting support, and renews after month one.

Challenges

SendGrid domain verification requires users to own a domain or share yours — shared domain pooling is the hard non-technical problem to solve cleanly and securely for multi-tenant use.

Avoid These Pitfalls

Do not build a shared reply-address pool before solving replay-attack spoofing — someone guessing another user's reply address must be impossible. Do not skip TTL expiry or Supabase will fill with zombie executions. Finding first 10 paying customers will take longer than building — budget 3x more time for community distribution than development.

Security Requirements

Supabase Auth with magic link. RLS on executions table scoped to user_id. HMAC signature verification on SendGrid inbound POST. Rate limit /api/register to 60 req/min per user.

Infrastructure Plan

Vercel for Next.js app and API routes, Supabase for Postgres and auth, Vercel Cron for TTL expiry, Sentry for error tracking, GitHub Actions for CI.

Performance Targets

100 DAU at launch, 2,000 req/day. /api/inbound under 300ms. Dashboard under 2s LCP. No caching needed at launch scale.

Go-Live Checklist

  • Security audit on inbound route complete.
  • Stripe payment flow tested end-to-end.
  • Sentry error tracking live.
  • Vercel monitoring dashboard configured.
  • Custom domain with SSL active.
  • Privacy policy and terms published.
  • 5 beta n8n builders signed off.
  • Rollback plan: revert Vercel deployment documented.
  • Launch post drafted for r/n8n and n8n forum.

First Run Experience

On first run: dashboard shows 3 seeded demo executions (one pending, one completed, one expired) with fake reply-to addresses. User can immediately copy the n8n snippet, call /api/register with their Supabase anon key, and see a new execution row appear. No SendGrid domain setup required for first test — a shared sandbox domain is pre-configured.

How to build it, step by step

1. Define schema in lib/db/schema.ts: executions table with id, user_id, reply_address, resume_url, status, expires_at. 2. Run npx create-next-app and install Supabase JS, SendGrid, Stripe, Resend. 3. Build /api/register route that creates an execution row and returns a unique reply-to address. 4. Configure SendGrid Inbound Parse to POST to your /api/inbound route. 5. Build /api/inbound route that parses the from/to headers, looks up execution by reply address, and POSTs to resume_url. 6. Build app/dashboard/page.tsx showing active and completed executions per user with Supabase Auth. 7. Add Stripe billing with two price tiers and a usage counter increment on each inbound event. 8. Write the n8n HTTP Request node snippet and publish it as a gist linked from the dashboard. 9. Add TTL cron job via Vercel Cron to expire executions older than 72 hours. 10. Deploy to Vercel, verify end-to-end by sending a test reply and watching the n8n webhook fire.

Generated

June 16, 2026

Model

claude-sonnet-4-6

Disclaimer: Ideas on this site are AI-generated and may contain inaccuracies. Revenue estimates, market demand figures, and financial projections are illustrative assumptions only — not financial advice. Do your own research before making any business or investment decisions. Technology availability, pricing, and market conditions change rapidly; always verify details independently.