Alert Templates
SetGet includes 21 system email templates that define how notifications are formatted and delivered. Templates control the subject line, body structure, and variable placeholders for each notification type. They are used by triggers and state mappings to produce consistently formatted messages across all notification channels.
Templates are managed at the workspace level and are accessible from Workspace Settings > Reminders > Templates.
Template categories
The 21 templates are organized into five categories based on the type of event they represent.
Issue lifecycle (11 templates)
These templates cover the primary lifecycle events of a work item, from creation through completion and archival.
| # | Template name | Used for | Subject line pattern |
|---|---|---|---|
| 1 | State Change | Work item state transitions | [Project] Issue #ID moved to State |
| 2 | Assignment | Work item assigned or reassigned | [Project] Issue #ID assigned to User |
| 3 | Issue Created | New work item created | [Project] New issue: Title |
| 4 | Priority Alert | Priority level changed | [Project] Issue #ID priority changed to Level |
| 5 | Label Changed | Labels added or removed | [Project] Issue #ID labels updated |
| 6 | Issue Completed | Work item reached completed state | [Project] Issue #ID completed |
| 7 | Property Change | Generic property modification | [Project] Issue #ID property updated |
| 8 | Date Changed | Start date or due date modified | [Project] Issue #ID dates updated |
| 9 | Link Updated | External link added or removed | [Project] Issue #ID links updated |
| 10 | Relation Changed | Work item relation added or removed | [Project] Issue #ID relations updated |
| 11 | Issue Archived | Work item archived or unarchived | [Project] Issue #ID archived |
Due date (2 templates)
These templates are specifically designed for time-sensitive deadline notifications.
| # | Template name | Used for | Subject line pattern |
|---|---|---|---|
| 12 | Due Date Reminder | Upcoming deadline warning (pre-due date) | [Project] Issue #ID due in N days |
| 13 | Due Date Overdue | Deadline has passed | [Project] Issue #ID is overdue |
WARNING
The Due Date Reminder template is for proactive warnings before the deadline. The Due Date Overdue template is for reactive alerts after the deadline has passed. Make sure triggers use the correct template for the intended timing.
Collaboration (4 templates)
These templates cover team interaction events.
| # | Template name | Used for | Subject line pattern |
|---|---|---|---|
| 14 | Comment Added | New comment on a work item | [Project] New comment on Issue #ID |
| 15 | Mention | User @mentioned in a comment or description | [Project] User mentioned you in Issue #ID |
| 16 | Cycle Issue Added | Work item added to a cycle | [Project] Issue #ID added to Cycle |
| 17 | Module Issue Added | Work item added to a module | [Project] Issue #ID added to Module |
Authentication (2 templates)
These templates handle account security and access flows. They are not configurable through the trigger system and are sent automatically by the authentication subsystem.
| # | Template name | Used for | Subject line pattern |
|---|---|---|---|
| 18 | Password Reset | Password reset request | SetGet: Reset your password |
| 19 | Magic Sign-In Code | Passwordless login code | SetGet: Your sign-in code |
TIP
Authentication templates cannot be bound to triggers. They are sent automatically when a user requests a password reset or magic sign-in link. They are listed here for completeness and can be previewed in the Templates page.
Workspace (2 templates)
These templates handle workspace-level communications.
| # | Template name | Used for | Subject line pattern |
|---|---|---|---|
| 20 | Workspace Invitation | Invitation to join a workspace | You've been invited to Workspace on SetGet |
| 21 | Welcome | Welcome message after joining a workspace | Welcome to Workspace on SetGet |
Template variables
Each template uses variables that are automatically populated with data from the event context. Variables are enclosed in double curly braces: {{variable_name}}.
Common variables (available in all templates)
| Variable | Description | Example value |
|---|---|---|
{{workspace_name}} | Name of the workspace | Engineering |
{{workspace_slug}} | URL-friendly workspace identifier | engineering |
{{recipient_name}} | Display name of the notification recipient | Jane Smith |
{{recipient_email}} | Email address of the recipient | jane@example.com |
{{app_url}} | Base URL of the SetGet instance | https://app.setget.io |
{{current_date}} | Current date in the workspace's locale | March 29, 2026 |
{{current_time}} | Current time in the workspace's timezone | 14:30 UTC |
Work item variables (available in issue-related templates)
| Variable | Description | Example value |
|---|---|---|
{{issue_id}} | Sequential issue identifier | ENG-142 |
{{issue_title}} | Title of the work item | Fix login redirect loop |
{{issue_url}} | Direct URL to the work item | https://app.setget.io/engineering/issues/ENG-142 |
{{issue_state}} | Current state name | In Progress |
{{issue_priority}} | Current priority level | High |
{{issue_assignee}} | Current assignee display name | John Doe |
{{issue_creator}} | Creator display name | Jane Smith |
{{issue_due_date}} | Due date if set | April 15, 2026 |
{{issue_labels}} | Comma-separated list of labels | Bug, Backend, Critical |
{{project_name}} | Name of the project containing the work item | Platform API |
{{project_identifier}} | Project identifier prefix | ENG |
Event-specific variables
| Variable | Available in | Description |
|---|---|---|
{{old_state}} | State Change, Issue Completed | Previous state name |
{{new_state}} | State Change, Issue Completed | New state name |
{{old_assignee}} | Assignment | Previous assignee name (or "Unassigned") |
{{new_assignee}} | Assignment | New assignee name (or "Unassigned") |
{{old_priority}} | Priority Alert | Previous priority level |
{{new_priority}} | Priority Alert | New priority level |
{{comment_body}} | Comment Added | Text content of the comment (truncated to 500 chars) |
{{comment_author}} | Comment Added | Display name of the comment author |
{{mention_context}} | Mention | Surrounding text where the mention occurred |
{{mentioner_name}} | Mention | Display name of the user who mentioned you |
{{cycle_name}} | Cycle Issue Added | Name of the cycle |
{{module_name}} | Module Issue Added | Name of the module |
{{days_overdue}} | Due Date Overdue | Number of days past the due date |
{{days_until_due}} | Due Date Reminder | Number of days until the due date |
{{link_url}} | Link Updated | URL of the added or removed link |
{{relation_type}} | Relation Changed | Type of relation (blocks, is blocked by, etc.) |
{{related_issue_id}} | Relation Changed | ID of the related work item |
{{actor_name}} | All event templates | Display name of the user who caused the event |
Authentication and workspace variables
| Variable | Available in | Description |
|---|---|---|
{{reset_link}} | Password Reset | Password reset URL (time-limited) |
{{signin_code}} | Magic Sign-In Code | Six-digit sign-in code |
{{inviter_name}} | Workspace Invitation | Name of the user who sent the invitation |
{{invite_link}} | Workspace Invitation | Invitation acceptance URL |
{{workspace_description}} | Welcome | Brief description of the workspace |
Previewing templates
The template preview feature lets you see how a template renders with sample data before activating it in a trigger.
How to preview
- Navigate to Workspace Settings > Reminders > Templates.
- Click on any template in the list.
- The preview panel opens on the right side, showing the template rendered with sample data.
- All variables are populated with realistic placeholder values so you can evaluate formatting and layout.
The preview renders in HTML format, matching what the recipient will see in their email client. For SMS previews, the plain-text body is shown instead.
Sample data
The preview system generates sample data automatically:
| Variable category | Sample data source |
|---|---|
| Workspace fields | Current workspace name and slug |
| Recipient fields | Your own user profile |
| Work item fields | Synthetic sample data (e.g., "ENG-42", "Fix login redirect") |
| Event fields | Synthetic before/after values |
| Dates and times | Current date and time |
Testing templates
Beyond preview, you can send a real test notification to verify end-to-end delivery.
Sending a test email
- Open the template preview.
- Click Send Test Email.
- The system sends the template to your registered email address with sample data.
- Check your inbox (and spam folder) to verify delivery and formatting.
Sending a test SMS
- Open the template preview.
- Click Send Test SMS (only available if SMS is configured).
- The system sends the plain-text body of the template to your registered phone number.
- Verify the SMS arrives and the message content is readable.
TIP
Always send a test notification after making changes to your SMTP configuration or SMS provider settings. This confirms that the delivery pipeline is working correctly.
WARNING
Test sends are recorded in the History log with a "test" label. They count toward your daily send statistics.
Language-aware rendering
Templates support language-aware rendering based on the recipient's locale preference:
- If the recipient has a locale set in their profile, the template renders date formats, number formats, and static label text in that locale.
- If no locale is set, the workspace default locale is used.
- Variable content (work item titles, comment bodies, user names) is always rendered as-is regardless of locale, since this content is user-generated.
Supported locale elements:
| Element | Example (en-US) | Example (tr-TR) |
|---|---|---|
| Date format | March 29, 2026 | 29 Mart 2026 |
| Time format | 2:30 PM | 14:30 |
| Priority labels | High | Yuksek |
| State labels | In Progress | Devam Ediyor |
| Button text | View Issue | Goruntuye Git |
Template structure
Each template consists of the following components:
| Component | Description | Editable |
|---|---|---|
| Subject line | Email subject with variable placeholders | No (system-defined) |
| Header | SetGet branding and workspace context | No (system-defined) |
| Body | Main notification content with variables and formatting | No (system-defined) |
| Action button | Direct link to the relevant entity in SetGet | No (system-defined) |
| Footer | Unsubscribe link and workspace information | No (system-defined) |
| SMS body | Plain-text short version for SMS delivery | No (system-defined) |
TIP
System templates are not user-editable in the current version of SetGet. They are designed to cover the standard notification scenarios. If you need custom formatting, submit a feature request through support.
Template-to-trigger mapping
Each trigger must reference exactly one template. The following table summarizes the recommended mapping between event types and templates:
| Event type | Primary template | Alternative template |
|---|---|---|
state_changed | State Change | Property Change |
assignee_changed | Assignment | Property Change |
priority_changed | Priority Alert | Property Change |
comment_added | Comment Added | --- |
issue_created | Issue Created | --- |
due_date_passed | Due Date Overdue | Due Date Reminder |
label_changed | Label Changed | Property Change |
property_changed | Property Change | --- |
issue_completed | Issue Completed | State Change |
mentioned | Mention | Comment Added |
date_changed | Date Changed | Property Change |
cycle_changed | Cycle Issue Added | Property Change |
module_changed | Module Issue Added | Property Change |
link_changed | Link Updated | Property Change |
relation_changed | Relation Changed | Property Change |
archive_changed | Issue Archived | Property Change |
Template rendering pipeline
When a notification is dispatched, the template rendering follows this pipeline:
- Template selection --- The trigger or state mapping specifies which template to use.
- Variable resolution --- The system collects all variable values from the event context (work item, actor, project, etc.).
- Locale detection --- The recipient's locale preference is read from their profile. If not set, the workspace default locale is used.
- HTML rendering --- For email, the template body is rendered as HTML with variable substitution, locale-aware formatting, and the SetGet email layout (header, body, action button, footer).
- Plain text extraction --- For SMS, the template's SMS body is rendered as plain text with variable substitution.
- In-app rendering --- For in-app notifications, a condensed version of the template is rendered in the notification panel format.
Variable fallbacks
If a variable is not available in the event context (e.g., {{old_assignee}} when the work item was previously unassigned), the system uses sensible defaults:
| Variable | Fallback value |
|---|---|
{{old_assignee}} | "Unassigned" |
{{old_state}} | "None" |
{{old_priority}} | "None" |
{{issue_due_date}} | "Not set" |
{{issue_labels}} | "None" |
{{cycle_name}} | "None" |
{{module_name}} | "None" |
Email layout structure
All email templates share a consistent layout:
+------------------------------------------+
| SetGet logo + Workspace name (header) |
+------------------------------------------+
| |
| Subject line / Event title |
| |
| Event details with variables |
| (state change, comment body, etc.) |
| |
| [ View in SetGet ] (action button) |
| |
+------------------------------------------+
| Notification preferences link (footer) |
| Unsubscribe link |
+------------------------------------------+The action button links directly to the relevant entity in SetGet. Clicking it takes the recipient to the work item, comment, or other entity referenced in the notification.
Frequently asked questions
Can I create custom templates? Not in the current version. The 21 system templates cover the standard notification scenarios. Custom template support is planned for a future release.
Can I edit the subject line of a template? No. Subject lines are system-defined to ensure consistency. They include the project identifier, work item ID, and event-specific context.
Why do some templates appear in the list but cannot be assigned to triggers? The Authentication templates (Password Reset, Magic Sign-In Code) and Workspace templates (Invitation, Welcome) are sent automatically by their respective subsystems and cannot be assigned to user-configured triggers.
How do I know which variables are available for a template? The template preview panel shows all available variables and their sample values. Variables that are not relevant to the template's event type are not displayed.
Related pages
- Alerts overview --- Introduction to the alert system
- Triggers --- Configure event-based notification triggers
- State mappings --- State-to-state transition alerts
- SMS configuration --- Set up SMS delivery providers
- Notification preferences --- Per-user channel configuration
- Alert history --- View send logs and delivery status
- Best practices --- Design an effective notification strategy
- Admin email templates --- Instance-level email template management