Skip to Content

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. If the routine only cares about some of your mail, the Smart email trigger below is the cheaper choice.

Smart email trigger

A cheaper version of the incoming-email trigger. Instead of starting the routine on every email, you write a condition in plain language — for example “the email is an invoice or receipt from a vendor” — and Town checks each incoming email against it, running the routine only when it matches.

You can also narrow it with the same optional filters before the condition is judged:

  • From — only fire when the sender is one of the addresses you list (exact addresses, not domains)
  • Sender domains — only fire when the sender is at one of the domains you list (subdomains included)
  • Subject contains — only fire when the subject contains one of your phrases

Those filters cost nothing: they’re checked before anything else runs, so an email that doesn’t match them never reaches the condition. Judging a condition, and the run it may start, is where the work happens — so put anything that’s a literal sender or subject match into the filters, and save the condition for judgement they can’t express. A trigger with filters and no condition is fine too: it then fires on everything the filters allow, just like an incoming-email trigger.

Use cases:

  • Routines that only care about some of your mail (invoices, order confirmations, mail from one client)
  • Replacing a routine whose instructions start with “if this email isn’t about X, stop”
  • Cutting the credit cost of an existing incoming-email routine

Nothing switches over on its own. Existing incoming-email routines keep running on every email until you change their trigger — you can ask your Townie to switch a specific routine to the smart email trigger, or edit the trigger yourself. Town’s own stock routines (like Auto-inbox) aren’t affected.

If Town can’t judge the condition for some reason, the routine runs anyway. That keeps a smart trigger from silently skipping mail you care about, so a routine may occasionally run on an email that didn’t match.

One smart email trigger per routine.

Outgoing email

Runs every time you send an email from a connected account — the mirror of the incoming email trigger. This includes emails Town helped you draft, as long as you reviewed and sent them yourself.

You can optionally limit this to a specific connected account if you have more than one.

Use cases:

  • Logging or following up on the emails you send
  • Kicking off a task after you send an email
  • Keeping a record of outbound commitments

Outgoing email triggers run on every email you send. Make sure your routine’s instructions handle high volume efficiently — for example, by quickly skipping messages that don’t match the recipient or topic you care about.

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:

ScheduleDescription
Every day at 6:00 AMDaily morning routines
Weekdays at 9:00 AMBusiness-day summaries
Every Friday at 6:00 PMWeekly wrap-up reports
Every Sunday at midnightWeekend batch processing
Every 2 hoursFrequent check-ins
First of each month at 8:30 AMMonthly 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:

StatusMeaning
Invited but not respondedYou received an invite but haven’t replied yet
AcceptedYou accepted the invite
DeclinedYou declined the invite
MaybeYou 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:

ChangeDescription
CreatedA new event was added to the calendar
UpdatedEvent details changed (time, location, attendees, etc.)
CancelledEvent 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.

Last updated on