If your n8n workflow isn't triggering automatically, there are a few common causes depending on the trigger type (e.g., webhook, cron, polling). Here's a full diagnostic checklist to help you figure out what's wrong and how to fix it:
β Why Your n8n Workflow Isn't Triggering Automatically
π 1. Webhook Trigger Not Working
Possible Causes:
- β Wrong webhook URL used in the external service
- β Workflow is inactive
- β n8n is running without webhook URLs being exposed publicly
- β Firewall or reverse proxy blocking requests
- β Webhook method mismatch (GET vs POST)
β
Fix It:
Make sure the workflow is active (toggle ON).
Use the exact URL shown in the Webhook node (Production URL, not Test).
Ensure n8n is accessible from the internet:
Check logs in n8n Execution History and external service (e.g., Stripe, GitHub).
β° 2. Cron Trigger Not Executing
Possible Causes:
- β Workflow is not active
- β Incorrect cron expression (e.g., wrong timezone, future-only config)
- β Server time is misconfigured
β
Fix It:
- Double-check the cron expression in the Cron Node
- Confirm that the workflow is active
- Check your system or Docker container's timezone
- Run a test execution manually to confirm the rest of the workflow works
π 3. Polling Trigger (e.g., IMAP, RSS, Airtable) Not Working
Possible Causes:
- β Credential/auth issues (token expired or revoked)
- β Service rate limits or polling delays
- β Trigger not designed for frequent polling
β
Fix It:
- Re-authorize or update credentials in Credential Manager
- Check for errors in the Execution log or n8n terminal logs
- If using services like Gmail/IMAP, ensure "Less secure app access" is enabled if required
- Add a delay or SplitInBatches node to avoid rate limits
π« 4. Workflow Not Set to Trigger Automatically
Possible Causes:
- Workflow is only run manually
- Trigger node is not a real trigger (e.g., HTTP Request instead of Webhook)
β
Fix It:
- Make sure the first node in your workflow is a Trigger Node (Webhook, Cron, etc.)
- Confirm the workflow is active
- Check n8n settings: If you're in manual mode or using
n8n start --tunnel, workflows may only run on demand
π 5. Errors Preventing Trigger Execution
Possible Causes:
- Execution fails early, causing workflow to stop silently
- Function node throws error without handling
β
Fix It:
- Check the Execution History for failed runs
- Use βContinue on failβ and add IF Nodes to inspect errors
- Add logging (e.g., Set node to debug values, Telegram alerts)
βοΈ 6. Docker or Production Config Mistake
Common in self-hosted setups:
WEBHOOK_TUNNEL_URL is not set
n8n process was restarted but workflows werenβt activated again
- Missing volume for persisted data (causing loss of active workflow states)
β
Fix It:
- Use a
.env or Docker Compose file with:
WEBHOOK_URL=https://yourdomain.com
GENERIC_TIMEZONE=Asia/Bangkok
- Ensure that
~/.n8n or data volume is persisted
- Restart with
n8n start (not just n8n)
π οΈ Bonus: Use Logs to Debug
n8n start --log-level=debug
- Monitor logs for:
- Webhook registration
- Cron scheduler
- Credential/auth failures
β
Quick Fix Checklist
| β
Check | Description |
| ----------------------------- | -------------------------- |
| Is workflow active? | Toggle must be ON |
| Using correct URL? | For webhooks |
| Trigger configured correctly? | Cron, Webhook, etc. |
| Credentials valid? | No expired tokens |
| Port/domain exposed? | Use HTTPS or tunnel |
| Execution log errors? | Check n8n history |
| Docker/env config? | Set WEBHOOK_URL properly |