Use case

Gmail to webhook, no API required

The easiest way to make Gmail programmable

Google makes it notoriously difficult to read Gmail programmatically. But there's a simpler path: forward to an EmailConnect alias and get structured JSON at your webhook. No OAuth, no Workspace, no restricted scopes.

The problem with the Gmail API

If you've ever tried to programmatically read a Gmail inbox, you know the pain. Google requires OAuth 2.0 with consent screens, your app needs verification for sensitive scopes like gmail.readonly, and if you're not using Google Workspace you're dealing with per-user tokens and refresh logic. For a team of ten people, that's ten separate OAuth flows to maintain.

All of this to do something conceptually simple: "when an email arrives, send me the data."

The forwarding shortcut

Gmail has a built-in forwarding feature that's free, requires no API credentials, and works with any Gmail account. You add a forwarding address in Gmail's settings, confirm it with a single click, and every incoming email gets forwarded automatically.

The trick is where you forward to. Point it at an EmailConnect alias, and every forwarded email becomes a structured webhook call to your endpoint, with the sender, recipient, subject, body, links, and attachments all parsed into clean JSON.

Gmail inboxfree forwardingEmailConnect aliasparse & structureYour webhookstructured JSON

How it works

1. Create an alias

Set up a domain on EmailConnect and create an alias, or use a catch-all if you want to handle multiple Gmail accounts under one domain. Point the alias at your webhook URL.

2. Enable forwarding in Gmail

In Gmail, go to Settings → Forwarding and POP/IMAP, add your alias address, and click the confirmation link that arrives. That's it. No API keys, no client secrets, no scopes.

3. Receive structured data

From that moment on, every email that lands in that Gmail inbox gets forwarded to your alias. EmailConnect parses it and delivers a webhook POST to your endpoint with everything extracted:

{
  "message": {
    "sender": {
      "name": "Acme Corp",
      "email": "billing@acme.com"
    },
    "subject": "Your invoice #1042 is ready",
    "content": {
      "text": "Hi, your invoice for February is attached...",
      "links": [
        {
          "url": "https://acme.com/invoices/1042",
          "domain": "acme.com"
        }
      ]
    },
    "attachments": [
      {
        "filename": "invoice-1042.pdf",
        "contentType": "application/pdf",
        "size": 48210,
        "downloadUrl": "https://files.emailconnect.eu/d/a1b2c3/invoice-1042.pdf"
      }
    ]
  },
  "spam": {
    "isSpam": false,
    "score": 0.2,
    "authentication": {
      "dkim": { "result": "pass" },
      "spf": { "result": "pass" },
      "dmarc": { "result": "pass" }
    }
  }
}

Why this beats the API approach

Gmail API

  • OAuth 2.0 per user
  • App verification for sensitive scopes
  • Token refresh logic
  • Polling or Pub/Sub setup
  • Google Workspace for some features

Gmail forwarding + EmailConnect

  • One confirmation click per account
  • No API credentials at all
  • Real-time push (no polling)
  • Works with any free Gmail account
  • Built-in spam scoring and authentication

What teams are building with this

The pattern opens up a range of workflows that would normally require the Gmail API or a paid Google Workspace integration:

  • Centralized team inbox: multiple team members forward to a shared alias, and your backend processes everything through a single webhook
  • Notification processing: forward order confirmations, shipping updates, or platform alerts from Gmail to your system for automated extraction
  • Lead capture: sales reps forward inbound inquiries, and your CRM picks them up via the webhook without manual data entry
  • Multi-account monitoring: aggregate mail from several Gmail accounts into one processing pipeline using a catch-all alias

Scaling up with a catch-all

If you're forwarding from multiple Gmail accounts, a catch-all alias is the cleanest approach. Set up a domain on EmailConnect, enable the catch-all, and forward each Gmail account to a unique address under that domain (e.g. alice@ingest.yourapp.com, bob@ingest.yourapp.com). Your webhook receives everything, and the recipient field tells you which source account it came from.

A note on Google Workspace

This approach works equally well with Google Workspace accounts. If your organization already uses Workspace but you'd rather avoid building against the Gmail API, the forwarding path gives you the same result with far less engineering effort. Workspace admins can even configure forwarding at the organization level.

Get started

You can set this up in under five minutes on the free tier. Create an alias, enable forwarding in Gmail, and your webhook starts receiving parsed emails immediately. No billing details required.

Thinking about a different source?

This pattern isn't limited to Gmail. Outlook, Yahoo, and most major providers support forwarding too. If it can forward, EmailConnect can parse it. Let us know what you're building.

Try it free

Set up a Gmail-to-webhook pipeline in under five minutes. No credit card needed.

Create your aliasView documentation

More use cases