Triggers
Triggers determine when your routine runs. Each routine can have one or more triggers, and the routine will run whenever any of its triggers fire.
Trigger types
Manual
The simplest trigger — the routine only runs when you click Run in the web app.
Use cases:
- On-demand reports
- Testing new routines
- Routines you run occasionally
Incoming email
Runs every time a new email arrives in your inbox.
You can optionally limit this to a specific Gmail account if you have multiple accounts connected.
Use cases:
- Inbox organization, reply drafting, and scheduling help (Auto-inbox)
- Real-time notifications
- Immediate email processing
Incoming email triggers run on every email. Make sure your routine’s instructions handle high volume efficiently — for example, by quickly skipping emails that don’t match your criteria.
Email to assistant
Runs when you send or forward an email to your assistant’s address (e.g., alex@town.com).
Use cases:
- Ask for help with tasks
- Forward threads for summarizing or processing
- On-demand analysis of specific emails
Schedule
Runs on a recurring schedule. When setting up a scheduled trigger, you choose:
- When to run — The time and frequency (e.g., every weekday at 8 AM, every Monday at 9 AM, daily at 6 PM)
- Timezone — Your local timezone so times are accurate for you
Common schedule examples:
| Schedule | Description |
|---|---|
| Every day at 6:00 AM | Daily morning routines |
| Weekdays at 9:00 AM | Business-day summaries |
| Every Friday at 6:00 PM | Weekly wrap-up reports |
| Every Sunday at midnight | Weekend batch processing |
| Every 2 hours | Frequent check-ins |
| First of each month at 8:30 AM | Monthly reports |
Use cases:
- Morning briefings
- Daily or weekly summaries
- Scheduled reports
Calendar triggers
Town supports four calendar triggers that let your routines react to events on your Google Calendar.
Calendar start
Runs before (or after) a calendar event starts. You can set how many minutes before the event you want the routine to run.
Timing options:
- 15 minutes before (default) — Great for quick meeting prep
- 1 hour before — Enough time for research and preparation
- 5 minutes after — For actions that should happen right as a meeting begins
Use cases:
- Pre-meeting prep (research attendees, summarize relevant emails)
- Send meeting reminders with context
- Prepare briefing documents
Calendar end
Runs after a calendar event ends. You can set how many minutes after the event you want the routine to run.
Use cases:
- Post-meeting follow-ups
- Summarize meeting notes and action items
- Send thank-you emails to attendees
Calendar RSVP
Runs when your RSVP status changes for an event — for example, when you accept, decline, or mark “maybe” on an invitation.
RSVP statuses that can trigger routines:
| Status | Meaning |
|---|---|
| Invited but not responded | You received an invite but haven’t replied yet |
| Accepted | You accepted the invite |
| Declined | You declined the invite |
| Maybe | You marked the invite as tentative |
Use cases:
- Prepare for newly accepted meetings
- Follow up after declining (suggest alternatives)
- Process meeting invites automatically
Calendar changed
Runs when a calendar event is created, updated, or cancelled.
Change types:
| Change | Description |
|---|---|
| Created | A new event was added to the calendar |
| Updated | Event details changed (time, location, attendees, etc.) |
| Cancelled | Event was cancelled or deleted |
Use cases:
- Get notified when meetings are cancelled
- Track when meeting times change
- Alert when attendees are added or removed
Voice recording
Runs when a voice recording has been transcribed. This works with recordings made through the Town iOS app.
Use cases:
- Automatically summarize voice notes
- Extract action items from meeting recordings
- Process and organize voice memos
Slack mention
Runs when someone @mentions your Town assistant in Slack. Requires the Slack integration to be connected.
Use cases:
- Answer team questions in Slack
- Process requests made in channels
- Trigger routines from Slack conversations
Webhook
Runs when an external system sends an authenticated HTTP request to a routine-specific webhook URL.
Webhook-triggered runs are configured from the routine’s settings page rather than the trigger picker. They are useful when you want another system, automation platform, or server to start a routine directly.
Use cases:
- Start a routine from Zapier
- Trigger a routine from your app or backend
- Pass structured event data into Town for processing
See Webhook Triggers for setup, security, and request examples.
Multiple triggers
Routines can have more than one trigger. For example, a routine might run:
- Every Monday at 9 AM (scheduled), and
- Whenever you click Run (manual)
This means you get the scheduled automation plus the ability to run it on demand whenever you want.
Triggers vs. modes
Triggers control when a routine runs. Modes control how it runs — specifically, whether actions require your approval or execute automatically. These are independent settings:
- A scheduled routine can require approval (it proposes actions and waits for your OK)
- An incoming-email routine can be autonomous (it acts immediately on every email)
Best practices
Match trigger frequency to routine complexity. Simple, fast routines work well with incoming email. Complex, slower routines are better on a schedule.
Test with manual first. Before enabling automatic triggers, use manual to verify the routine works correctly.
Set your timezone. When using scheduled triggers, always set your local timezone so “9 AM” means 9 AM for you.
Town