Skip to content

Automation Actions

Actions define what happens when a rule's trigger fires and its conditions pass. Each rule can have one or more actions, and they execute in the order they are listed. SetGet provides 12 action types covering state management, assignments, organization, communication, and integrations.

How actions execute

When a rule matches:

  1. Actions execute sequentially in the order they appear in the rule.
  2. Each action runs to completion before the next one starts.
  3. If an action fails, subsequent actions in the same rule still execute (fail-open behavior).
  4. Failed actions are logged in the Execution History with error details.
  5. Actions that modify the work item save changes to the database immediately.

WARNING

Actions that modify work item properties (state, priority, assignees, labels) can trigger other automation rules. See Advanced Patterns for guidance on preventing infinite loops.

Action summary table

ActionEffectParameters
change_stateMove to a specified stateTarget state
change_prioritySet priority levelTarget priority
assignAdd assignee(s)User(s) to assign
unassignRemove assignee(s)User(s) to remove, or all
add_labelApply label(s)Label(s) to add
remove_labelRemove label(s)Label(s) to remove
move_to_cycleAdd to a cycleTarget cycle
move_to_moduleAdd to a moduleTarget module
add_commentPost an automated commentComment text
send_notificationTrigger notificationRecipients, message
call_webhookMake HTTP requestURL, method, headers, body
archiveArchive the work item(none)

change_state

Moves the work item to a specified workflow state.

Parameters

ParameterTypeRequiredDescription
target_stateState selectorYesThe state to transition to

Configuration

  1. In the action editor, select Change State.
  2. Choose the target state from the dropdown. The dropdown shows all states defined in the project, grouped by state group.
  3. Save the action.

Example usage

Move work items to "In Review" when a reviewer is assigned:

  • Trigger: assignee_changed
  • Condition: Added assignee has "Reviewer" role label
  • Action: change_state to "In Review"

Side effects

  • Changing state dispatches a notification to all subscribers of the work item.
  • The state change is recorded in the work item's activity log.
  • Other rules with state_changed triggers may fire.

Error handling

If the target state does not exist (for example, it was deleted after the rule was created), the action fails and logs an error: "Target state not found". The work item remains in its current state.


change_priority

Sets the work item's priority to a specified level.

Parameters

ParameterTypeRequiredDescription
target_priorityEnumYesnone, low, medium, high, or urgent

Configuration

  1. Select Change Priority in the action editor.
  2. Choose the target priority from the dropdown.
  3. Save the action.

Example usage

Escalate overdue items to Urgent:

  • Trigger: due_date_passed
  • Condition: Priority is not "Urgent"
  • Action: change_priority to urgent

Side effects

  • Priority changes dispatch notifications to subscribers.
  • The change is recorded in the activity log.
  • Rules with priority_changed triggers may fire.

Error handling

Priority values are fixed enums. This action does not fail under normal circumstances. If an invalid priority value is somehow configured, the action logs an error and skips.


assign

Adds one or more users as assignees to the work item.

Parameters

ParameterTypeRequiredDescription
user_idsArray of user IDsYesUsers to add as assignees

Configuration

  1. Select Assign in the action editor.
  2. Use the member picker to select one or more workspace members.
  3. Save the action.

Example usage

Auto-assign new bugs to the triage lead:

  • Trigger: issue_created
  • Condition: Label contains "Bug"
  • Action: assign the triage lead

Side effects

  • New assignees are automatically subscribed to the work item's notifications.
  • The assignment is recorded in the activity log.
  • Rules with assignee_changed triggers may fire.
  • If the user is already assigned, the action is a no-op for that user (no duplicate assignment).

Error handling

If a specified user ID does not correspond to a valid workspace member, that user is skipped. An error is logged but the action continues with remaining valid users.


unassign

Removes one or more users from the work item's assignee list.

Parameters

ParameterTypeRequiredDescription
user_idsArray of user IDsConditionalUsers to remove. Required if remove_all is false.
remove_allBooleanNoIf true, remove all assignees. Default: false.

Configuration

  1. Select Unassign in the action editor.
  2. Either toggle Remove All Assignees on, or select specific members to remove.
  3. Save the action.

Example usage

Remove all assignees when an item is moved to "Cancelled":

  • Trigger: state_changed
  • Condition: New state group is "cancelled"
  • Action: unassign with remove_all: true

Side effects

  • Removed assignees remain subscribed to the work item unless they manually unsubscribe.
  • The unassignment is recorded in the activity log.
  • Rules with assignee_changed triggers may fire.

Error handling

If a specified user is not currently assigned, the action is a no-op for that user. No error is logged.


add_label

Applies one or more labels to the work item.

Parameters

ParameterTypeRequiredDescription
label_idsArray of label IDsYesLabels to add

Configuration

  1. Select Add Label in the action editor.
  2. Use the label picker to select one or more project labels.
  3. Save the action.

Example usage

Tag escalated items with a visual indicator:

  • Trigger: priority_changed
  • Condition: New priority is "Urgent"
  • Action: add_label "Escalated"

Side effects

  • Label changes are recorded in the activity log.
  • Rules with label_changed triggers may fire.
  • If the label is already present, the action is a no-op (no duplicate).

Error handling

If a label ID does not correspond to a valid project label (for example, the label was deleted), that label is skipped and an error is logged.


remove_label

Removes one or more labels from the work item.

Parameters

ParameterTypeRequiredDescription
label_idsArray of label IDsYesLabels to remove

Configuration

  1. Select Remove Label in the action editor.
  2. Use the label picker to select the labels to remove.
  3. Save the action.

Example usage

Remove the "Needs Triage" label after triage is complete:

  • Trigger: state_changed
  • Condition: New state is "In Progress"
  • Action: remove_label "Needs Triage"

Side effects

  • Label changes are recorded in the activity log.
  • Rules with label_changed triggers may fire.

Error handling

If the label is not currently on the work item, the action is a no-op. No error is logged.


move_to_cycle

Adds the work item to a specified cycle.

Parameters

ParameterTypeRequiredDescription
cycle_idCycle selectorYesThe target cycle

Configuration

  1. Select Move to Cycle in the action editor.
  2. Choose the target cycle from the dropdown. Active and upcoming cycles are listed.
  3. Save the action.

Example usage

Automatically add new high-priority items to the current sprint:

  • Trigger: issue_created
  • Condition: Priority is "High" or "Urgent"
  • Action: move_to_cycle current active cycle

Side effects

  • The work item appears in the cycle's work item list.
  • Cycle progress metrics are updated.
  • If the work item is already in the target cycle, the action is a no-op.

Error handling

If the target cycle has ended or been deleted, the action fails and logs: "Target cycle not found or inactive". The work item is not added to any cycle.

TIP

When selecting a cycle, choose the current active cycle. If you want the rule to always target the latest active cycle, update the rule's cycle selection at the start of each new sprint.


move_to_module

Adds the work item to a specified module.

Parameters

ParameterTypeRequiredDescription
module_idModule selectorYesThe target module

Configuration

  1. Select Move to Module in the action editor.
  2. Choose the target module from the dropdown.
  3. Save the action.

Example usage

Route security-related items to the Security module:

  • Trigger: label_changed
  • Condition: Added labels contain "Security"
  • Action: move_to_module "Security Hardening"

Side effects

  • The work item appears in the module's work item list.
  • Module progress metrics are updated.
  • If the work item is already in the target module, the action is a no-op.

Error handling

If the target module does not exist, the action fails and logs: "Target module not found". The work item is not added to any module.


add_comment

Posts an automated comment on the work item. The comment is attributed to the automation system, not to any individual user.

Parameters

ParameterTypeRequiredDescription
bodyStringYesThe comment text. Supports plain text and basic Markdown.

Configuration

  1. Select Add Comment in the action editor.
  2. Enter the comment text in the text area. You can use Markdown for formatting.
  3. Save the action.

Template variables

You can include dynamic values in the comment text using template variables:

VariableDescription
{{issue.identifier}}Work item identifier (e.g., PROJ-123)
{{issue.title}}Work item title
{{issue.state}}Current state name
{{issue.priority}}Current priority level
{{actor.name}}Name of the user who triggered the event
{{rule.name}}Name of the automation rule

Example comment template:

This item was automatically escalated to **{{issue.priority}}** priority by the "{{rule.name}}" automation.

Side effects

  • The comment appears in the work item's activity feed.
  • Subscribers are notified of the new comment.
  • Rules with comment_added triggers may fire. Use caution to avoid loops.

Error handling

If the comment body is empty, the action is skipped. An error is logged: "Comment body is empty".

WARNING

If another rule has a comment_added trigger, adding a comment via automation can cause that rule to fire. Ensure you have re-entrancy guards in place. See Advanced Patterns.


send_notification

Sends an in-app notification and optionally an email notification to specified recipients.

Parameters

ParameterTypeRequiredDescription
recipientsArrayYesWho to notify: specific users, assignees, subscribers, or project members
messageStringYesNotification message text. Supports template variables.
include_emailBooleanNoAlso send an email notification. Default: false.

Configuration

  1. Select Send Notification in the action editor.
  2. Choose recipients from the dropdown:
    • Specific users: Select individual members.
    • Assignees: All current assignees of the work item.
    • Subscribers: All users subscribed to the work item.
    • Project members: All members of the project.
  3. Enter the notification message.
  4. Optionally toggle Send email on.
  5. Save the action.

Example usage

Alert the engineering lead when a blocker is created:

  • Trigger: issue_created
  • Condition: Label contains "Blocker"
  • Action: send_notification to engineering lead with message "New blocker: {{issue.identifier}} - {{issue.title}}"

Side effects

  • Notifications appear in recipients' notification center.
  • Email notifications are sent if enabled and the recipient has email notifications turned on.

Error handling

If no valid recipients are found (for example, "assignees" is selected but the work item has no assignees), the action completes without sending anything. A warning is logged.


call_webhook

Makes an HTTP request to an external URL. This action enables integration with external services, CI/CD pipelines, monitoring tools, and custom backends.

Parameters

ParameterTypeRequiredDescription
urlStringYesThe endpoint URL
methodEnumYesGET, POST, PUT, PATCH, or DELETE
headersKey-value pairsNoCustom HTTP headers (e.g., Authorization)
bodyString (JSON)NoRequest body. Supports template variables. Required for POST/PUT/PATCH.
timeout_secondsIntegerNoRequest timeout. Default: 30 seconds. Maximum: 60 seconds.

Configuration

  1. Select Call Webhook in the action editor.
  2. Enter the target URL.
  3. Select the HTTP method.
  4. Add any required headers (such as Authorization: Bearer <token> or Content-Type: application/json).
  5. Enter the request body as JSON. Use template variables for dynamic data.
  6. Save the action.

Example usage

Notify an external monitoring service when an item reaches Urgent:

  • Trigger: priority_changed
  • Condition: New priority is "Urgent"
  • Action: call_webhook POST to https://monitoring.example.com/api/alerts

Example body:

json
{
  "event": "urgent_escalation",
  "issue_id": "{{issue.identifier}}",
  "title": "{{issue.title}}",
  "priority": "{{issue.priority}}",
  "url": "https://app.setget.dev/{{workspace.slug}}/projects/{{issue.project_id}}/issues/{{issue.id}}"
}

Side effects

  • The HTTP request is made from the SetGet API server.
  • Response status and body are logged in the execution history.
  • External services may take further action based on the webhook payload.

Error handling

ScenarioBehavior
Connection timeoutAction fails after the configured timeout. Error logged.
HTTP 4xx responseAction marked as failed. Response body logged.
HTTP 5xx responseAction marked as failed. One automatic retry after 30 seconds.
Invalid URLAction fails immediately. Error logged.
Network unreachableAction fails. Error logged.

WARNING

Webhook URLs and headers may contain sensitive information (API keys, tokens). These values are stored encrypted in the database and are never exposed in the UI after saving. Treat webhook configurations as secrets.


archive

Archives the work item. Archived items are removed from active views but preserved in the archive for reference.

Parameters

This action has no parameters.

Configuration

  1. Select Archive in the action editor.
  2. Save the action. No additional configuration needed.

Example usage

Auto-archive completed items after 7 days:

  • Trigger: scheduled (daily at 2 AM)
  • Condition: State group is "completed" AND updated_at_age_days greater than 7
  • Action: archive

Side effects

  • The work item is removed from active project views (list, board, spreadsheet, calendar).
  • The work item appears in the project's archive section.
  • Archive status is recorded in the activity log.
  • The work item can be restored from the archive manually.

Error handling

If the work item is already archived, the action is a no-op. No error is logged.


Combining multiple actions

A single rule can have multiple actions. They execute in order. Common multi-action patterns:

PatternActions
Triage routingchange_state to Triage, assign triage lead, add_label "Needs Triage"
Escalationchange_priority to Urgent, add_label "Escalated", send_notification to lead
Completion cleanupremove_label "In Progress", add_comment "Completed by automation", archive
External syncchange_state, call_webhook to sync with external tracker

TIP

Order matters. If an action depends on a previous action's result (e.g., notifying about the new state), place the state change action first.