Skip to content

Alert Triggers

Triggers are the core mechanism of the SetGet alert system. A trigger defines which event should generate a notification, which template to use for formatting, and who should receive the notification. When the specified event occurs and any configured conditions are satisfied, the system dispatches notifications through the channels enabled in each recipient's preferences.

How triggers work

The trigger evaluation flow is:

  1. A user or system action modifies a work item (e.g., changes state, adds a comment, updates priority).
  2. The backend NotificationDispatcher fires the corresponding event.
  3. The alert system evaluates all active triggers that match the event type.
  4. For each matching trigger, conditions are checked against the work item's current properties.
  5. If conditions pass, the system resolves the recipient list.
  6. For each recipient, the system checks their notification preferences to determine which channels are enabled.
  7. Notifications are dispatched through the enabled channels (in-app, email, SMS) using the configured template.

Event types reference

SetGet supports 16 event types that can be used as trigger sources. Each event type corresponds to a specific action on a work item or its related entities.

Event typeFires whenTypical use case
state_changedA work item's state is updated (e.g., "Todo" to "In Progress")Notify assignees and watchers about workflow progression
assignee_changedA work item is assigned to a different user or unassignedAlert the new assignee about their new responsibility
priority_changedA work item's priority level is changedEscalate awareness when priority increases to Urgent or High
comment_addedA new comment is posted on a work itemKeep subscribers informed about discussion activity
issue_createdA new work item is created in the projectNotify project leads about incoming work
due_date_passedA work item's due date has elapsed without completionAlert assignees and managers about overdue items
label_changedLabels are added to or removed from a work itemNotify label owners when their area is affected
property_changedAny tracked property on a work item is modifiedCatch-all for property updates not covered by specific events
issue_completedA work item transitions to a completed stateNotify stakeholders that deliverables are ready
mentionedA user is @mentioned in a comment or descriptionDeliver a targeted notification to the mentioned user
date_changedA work item's start date or due date is modifiedAlert planners when schedules shift
cycle_changedA work item is added to or removed from a cycleNotify cycle leads about scope changes
module_changedA work item is added to or removed from a moduleNotify module owners about scope changes
link_changedA link is added to or removed from a work itemInform collaborators about new external references
relation_changedA relation (blocks, is blocked by, relates to) is added or removedAlert dependent teams about relationship changes
archive_changedA work item is archived or unarchivedNotify the team when items are removed from or restored to active view

TIP

The property_changed event is a broad catch-all. If a more specific event type exists for the property you care about (e.g., priority_changed for priority), use the specific event type for cleaner trigger logic.

Event categories

The 16 event types fall into four logical categories:

Core lifecycle events

These events track the fundamental lifecycle of a work item from creation to completion and archival.

EventCategory
issue_createdCreation
state_changedWorkflow progression
issue_completedCompletion
archive_changedArchival

Property change events

These events fire when specific properties on a work item are modified.

EventProperty
assignee_changedAssignee
priority_changedPriority
label_changedLabels
date_changedStart date or due date
property_changedAny other tracked property

Collaboration events

These events relate to human interaction on work items.

EventInteraction
comment_addedNew comment posted
mentionedUser @mentioned

Relationship events

These events fire when a work item's relationships to other entities change.

EventRelationship
cycle_changedCycle membership
module_changedModule membership
link_changedExternal links
relation_changedWork item relations (blocks, relates to, etc.)

Time-based events

EventCondition
due_date_passedDue date has elapsed (evaluated on a background schedule)

WARNING

The due_date_passed event is evaluated by a background scheduler, not by a user action. It fires once when the due date passes. If you need recurring reminders, create multiple triggers with different conditions or use the automation system.

Creating a trigger

Step 1: Navigate to triggers

  1. Open your workspace.
  2. Go to Settings > Reminders > Triggers.
  3. Click Create Trigger.

Step 2: Select the event type

Choose one of the 16 event types from the dropdown. This determines which actions will cause the trigger to fire.

Consider which event most precisely matches your notification need. For example, if you want to notify people when a work item is marked as a blocker, use priority_changed with a condition that filters for the "Urgent" priority level, rather than the generic property_changed event.

Step 3: Choose a template

Select the email template to use for formatting the notification. SetGet provides 21 system templates organized by category. The template determines the subject line, body structure, and variable placeholders used in the notification.

Each event type has a natural template match:

Event typeRecommended template
state_changedState Change
assignee_changedAssignment
priority_changedPriority Alert
comment_addedComment Added
issue_createdIssue Created
due_date_passedDue Date Overdue
label_changedLabel Changed
issue_completedIssue Completed
mentionedMention
date_changedDate Changed
cycle_changedCycle Issue Added
module_changedModule Issue Added
link_changedLink Updated
relation_changedRelation Changed
archive_changedIssue Archived
property_changedProperty Change

See Templates for the full template catalog and variable reference.

Step 4: Select recipients

Define who should receive the notification when this trigger fires. You can combine multiple recipient types.

Recipient typeDescription
AssigneesThe current assignee(s) of the work item
CreatorThe user who originally created the work item
SubscribersAll users who have subscribed to the work item
Specific usersOne or more workspace members selected by name

Recipient resolution rules:

  • If a user appears in multiple recipient types (e.g., they are both the assignee and a subscriber), they receive only one notification per channel.
  • The actor who caused the event is excluded from notifications by default. For example, if a user changes the state of their own work item, they do not receive a state change notification.
  • Specific users always receive the notification regardless of their subscription status.

Step 5: Set conditions (optional)

Conditions narrow the scope of the trigger so it fires only for work items that match specific criteria. Without conditions, the trigger fires for every occurrence of the selected event in the workspace.

Available condition fields:

Condition fieldOperatorsExample
Projectis, is notOnly fire for work items in the "Backend" project
Stateis, is notOnly fire when the new state is "In Review"
Priorityis, is not, greater than, less thanOnly fire when priority is Urgent or High
Labelcontains, does not containOnly fire for items labeled "Bug"
Assigneeis, is notOnly fire for items assigned to a specific user

Conditions are evaluated with AND logic --- all conditions must be true for the trigger to fire.

TIP

Use conditions to prevent noise. A state_changed trigger without conditions fires on every state transition in the workspace. Adding a condition like "State is In Review" limits notifications to a single meaningful transition.

Step 6: Activate the trigger

Review your configuration and click Save. The trigger is created in an active state by default and begins processing events immediately.

Managing triggers

Viewing triggers

The Triggers page displays all configured triggers in a table with the following columns:

ColumnDescription
NameAuto-generated from the event type and template
EventThe event type that activates this trigger
TemplateThe email template used for formatting
RecipientsSummary of recipient types
ConditionsNumber of active conditions
StatusActive or Disabled
CreatedCreation date

Editing a trigger

  1. Click on any trigger row to open the detail view.
  2. Modify the event type, template, recipients, or conditions.
  3. Click Save to apply changes.

Changes take effect immediately for new events. Events that were already dispatched before the edit are not affected.

Enabling and disabling triggers

To temporarily stop a trigger from firing without deleting it:

  1. Click the toggle switch in the Status column.
  2. The trigger changes to Disabled and stops processing events.
  3. Toggle again to re-enable.

Disabled triggers are preserved with their full configuration. No notifications are sent while a trigger is disabled.

Deleting a trigger

  1. Click the delete icon on the trigger row.
  2. Confirm the deletion in the dialog.

WARNING

Deleting a trigger is permanent and cannot be undone. If you might need the trigger again, disable it instead.

Trigger examples

Example 1: Notify the team lead when a blocker is created

Goal: When any work item's priority is changed to Urgent, notify the engineering lead immediately.

SettingValue
Event typepriority_changed
TemplatePriority Alert
RecipientsSpecific users: Engineering Lead
ConditionsPriority is Urgent

Example 2: Remind assignees about overdue items

Goal: When a work item's due date passes, notify the assignee and the project creator.

SettingValue
Event typedue_date_passed
TemplateDue Date Overdue
RecipientsAssignees, Creator
ConditionsNone (applies to all overdue items)

Example 3: Notify reviewers when work enters review

Goal: When a work item transitions to the "In Review" state, notify specific reviewers.

SettingValue
Event typestate_changed
TemplateState Change
RecipientsSpecific users: Reviewer A, Reviewer B
ConditionsState is "In Review"

TIP

This scenario is also a good candidate for a State mapping, which provides a more intuitive interface for state-to-state transition alerts.

Example 4: Keep module owners informed about scope changes

Goal: When a work item is added to the "Authentication" module, notify the module owner.

SettingValue
Event typemodule_changed
TemplateModule Issue Added
RecipientsSpecific users: Auth Module Owner
ConditionsNone

Example 5: Alert on new bugs

Goal: When a new work item is created with the "Bug" label, notify the QA team.

SettingValue
Event typeissue_created
TemplateIssue Created
RecipientsSpecific users: QA Lead, QA Engineer
ConditionsLabel contains "Bug"

Example 6: Notify stakeholders when work is completed

Goal: When any work item reaches a completed state, notify the creator and all subscribers.

SettingValue
Event typeissue_completed
TemplateIssue Completed
RecipientsCreator, Subscribers
ConditionsNone

Trigger execution order

When multiple triggers match the same event, they all fire independently. There is no priority or ordering between triggers. Each trigger evaluates its own conditions and dispatches to its own recipient list.

If a user would receive multiple notifications for the same event from different triggers, the system deduplicates at the channel level --- the user receives one notification per channel, using the template from the first matching trigger.

Performance considerations

  • Each active trigger adds evaluation overhead to every matching event. Keep the number of active triggers reasonable for your workspace size.
  • Use conditions to narrow trigger scope rather than creating many broad triggers.
  • The property_changed event fires frequently. Use it with specific conditions to avoid excessive notifications.
  • The due_date_passed event is evaluated on a background schedule and does not add real-time processing overhead.

Trigger audit and maintenance

Over time, triggers can become stale as projects evolve, team members change roles, and workflows are restructured. Regular maintenance keeps your trigger set effective.

Quarterly review checklist

  • [ ] List all active triggers and verify each one still serves a purpose.
  • [ ] Check that "specific user" recipients still hold the relevant role (e.g., a reviewer who moved to a different team).
  • [ ] Review the History page for triggers that have not fired in 30+ days --- they may be obsolete.
  • [ ] Verify that conditions still match current project states, labels, and priorities.
  • [ ] Disable triggers that are no longer needed rather than leaving them active.

Identifying noisy triggers

A noisy trigger fires too often and generates more notifications than are useful. To identify noisy triggers:

  1. Go to Workspace Settings > Reminders > History.
  2. Sort by trigger and count sends per trigger over the last 7 days.
  3. If a trigger is responsible for more than 30% of all notifications, review its conditions.

Common fixes for noisy triggers:

ProblemFix
No conditions setAdd conditions to narrow scope
Broad event type (property_changed)Switch to a more specific event type
Recipients include all workspace membersNarrow to Assignees, Creator, or specific users
Trigger covers all projectsAdd a project condition

Limits

LimitValue
Maximum triggers per workspace100
Maximum conditions per trigger10
Maximum specific user recipients per trigger50
Maximum recipient types per triggerAll 4 types can be combined