You connected Gmail. The node is green in the editor. Then production stays quiet—or every poll returns nothing—while new mail sits in the inbox. Searches for n8n gmail trigger not working usually surface docs and forum threads. Here is a single checklist aimed at self-hosted n8n.

Scope of this article: documented against self-hosted n8n 2.44.6. Not tested on n8n Cloud. Notification examples use Slack or SMTP only.

What the Gmail Trigger actually does

The Gmail Trigger polls Gmail on an interval (often about every minute by default, depending on your Poll Times). Each successful poll should only return new messages that match your filters. It is not a push webhook from Google unless you deliberately use a different push-style setup.

So “not working” usually means one of: workflow inactive, OAuth broken, filters too tight, poll never running in production, or you only tested with Execute workflow in the editor.

Checklist: why Gmail Trigger stays quiet

Work top to bottom.

1. Workflow not published / not active

Triggers that poll on a schedule need a published workflow. Draft-only saves do not keep listening in production.

Fix: publish / activate. Confirm the workflow is active. Watch Executions after the next poll window.

2. OAuth / Google Cloud client (self-hosted classic)

Self-hosted n8n needs your own Google Cloud OAuth client with the Gmail API enabled, redirect URI copied from the n8n credential dialog, and a completed Sign in with Google.

Common breaks:

  • Redirect URI mismatch
  • Gmail API not enabled on the GCP project
  • App in Testing with an expired test-user grant (Google often forces reconnect about every 7 days in Testing)
  • Wrong Google account authorized (personal vs Workspace)

Fix: open the credential → reconnect. Confirm the same Google user owns the inbox you are watching. Re-check redirect URI character-for-character.

3. You only ran a manual test in the editor

Clicking Execute workflow can exercise downstream nodes with pinned or sample data without proving the trigger poll path. A green canvas after a manual run does not mean the trigger is polling.

Fix: publish, wait at least one full poll interval, send yourself a matching test email, then inspect Executions for a production run that started from the Gmail Trigger.

4. Filters and labels exclude the message

Search filters, label filters, “unread only,” spam/trash exclusions, or a filter aimed at the wrong mailbox will yield successful polls with zero items. That looks identical to “not triggering” from outside.

Fix: temporarily loosen filters. Confirm the test message is in the primary inbox (or the exact label you filter on). Remember: simple mode often exposes a snippet / preview, not the full body—filters that expect full-body text can miss.

5. Poll Times / missed window / rate limits

If Poll Times are very sparse, you may be waiting longer than you think. If Google returns errors (quota, invalid_grant), the execution list shows failures—open them instead of assuming silence means “no mail.”

Fix: read the error text on failed executions. For invalid_grant, reconnect OAuth. For quota, slow the poll or reduce parallel Gmail workflows.

6. Downstream nodes fail (false “trigger broken”)

The trigger may have returned messages, then a label / Slack / LLM node failed. From Slack’s point of view “nothing happened.”

Fix: open the execution graph. If Gmail Trigger has items and a later node is red, fix that node (Slack invite/scopes, missing label IDs, LLM key)—not the trigger credential.

7. Empty / no-preview messages

Some triage workflows intentionally skip messages with empty preview text before any AI call. Those runs can look “idle” even though the trigger fired.

Fix: know whether your workflow has a “has content?” gate. Test with a normal plain-text email that has a non-empty snippet.

Minimal documented pattern (inbox triage shape)

A common production shape:

  1. Gmail Trigger (poll) with credentials fixed.
  2. Normalize sender / subject / preview.
  3. Optional empty-content skip.
  4. Classify (rules and/or LLM).
  5. Apply Gmail labels; optional Slack urgent alert.
  6. Publish; verify with a real test email in production mode.

Documented against self-hosted n8n 2.44.6; not tested on n8n Cloud. Real Gmail OAuth, labels, Slack, and LLM quality still need verification in your Google project and workspace.

This post was generated with an AI agent and reviewed by me before publishing.