# Choosing a Trigger — AI Automation with n8n

Source: https://www.geekswithgeeks.com/en/n8n-ai-automation/core-triggers

> Compare manual, schedule, webhook and app triggers and know the test versus production URL difference.

## How a workflow gets started

A **Schedule** trigger runs on a timer (cron-like). A **Webhook** trigger waits for an HTTP request from another system. **App triggers** (for example Gmail or GitHub) fire on events from that app. A **Chat** trigger starts an AI chat. A **Manual** trigger is for testing. Pick the one that matches how the real event happens: polling on a timer is simple, but a webhook reacts instantly.

## Start, connect, branch

Choose the right trigger, call outside services safely and route items down different paths.

![Three steps: trigger, call, route.](assets/figures/n8n-ai-automation/section-2-map.svg) — Figure 2.1 — Trigger, call and route.

## Test vs production webhook URLs

A Webhook node shows two URLs. The test URL only listens while you click "Listen for test event". The production URL works only after the workflow is **activated**. Using the wrong one is the classic reason a webhook "does nothing".

```bash
# while testing in the editor
curl -X POST http://localhost:5678/webhook-test/new-lead \
  -H "Content-Type: application/json" -d '{"name":"Asha","email":"asha@example.com"}'

# after activating the workflow
curl -X POST http://localhost:5678/webhook/new-lead \
  -H "Content-Type: application/json" -d '{"name":"Asha","email":"asha@example.com"}'
```

## Activate to go live

Schedule and webhook triggers only fire in production when the workflow is switched to Active. Forgetting this is the most common reason a finished workflow never runs.

**Quiz:** Which URL works only after you activate the workflow?

- [ ] The test webhook URL
- [x] The production webhook URL
- [ ] Both
- [ ] Neither

*Answer:* The production webhook URL. Production webhooks are registered on activation; test URLs only listen during manual testing.
