Sentry · Arazzo Workflow

Sentry Escalate and Assign an Issue

Version 1.0.0

Find a high-severity unresolved issue, review its events, then escalate priority and assign an owner.

1 workflow 1 source API 1 provider
View Spec View on GitHub Error MonitoringDebuggingObservabilityApplication Performance ManagementDeveloper ToolsArazzoWorkflows

Provider

sentry

Workflows

escalate-issue
Escalate the top high-severity unresolved issue and assign it to an owner.
Lists unresolved high-severity issues sorted by frequency, selects the top one, reviews its recent events, then updates it with a critical priority and an assignee. Ends early when no matching issue is found.
3 steps inputs: assignTo, organizationSlug, priority, query outputs: issueId, issueShortId, latestEventId, updatedStatus
1
findIssue
listOrganizationIssues
List unresolved issues matching the severity query, sorted by frequency, returning the single top candidate to escalate.
2
reviewEvents
listIssueEvents
Pull the issue's most recent events with full data to give the assignee context at escalation time.
3
escalateIssue
updateIssue
Escalate the issue by setting a critical priority, assigning an owner, and marking it seen and subscribed.

Source API Descriptions

Arazzo Workflow Specification

sentry-escalate-issue-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Sentry Escalate and Assign an Issue
  summary: Find a high-severity unresolved issue, review its events, then escalate priority and assign an owner.
  description: >-
    An escalation pattern for on-call response. The workflow searches for an
    unresolved fatal or error-level issue, branches on whether one was found,
    inspects its most recent events for context, and then escalates the issue by
    setting a critical priority and assigning it to a team or user while marking
    it seen and subscribed. Every step spells out its request inline so the flow
    can be read and executed without opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: sentryApi
  url: ../openapi/sentry-api-openapi.yml
  type: openapi
workflows:
- workflowId: escalate-issue
  summary: Escalate the top high-severity unresolved issue and assign it to an owner.
  description: >-
    Lists unresolved high-severity issues sorted by frequency, selects the top
    one, reviews its recent events, then updates it with a critical priority and
    an assignee. Ends early when no matching issue is found.
  inputs:
    type: object
    required:
    - organizationSlug
    - assignTo
    properties:
      organizationSlug:
        type: string
        description: The organization slug that owns the issue.
      assignTo:
        type: string
        description: Username or team slug to assign the escalated issue to.
      query:
        type: string
        description: Sentry query used to find issues to escalate.
        default: "is:unresolved level:error"
      priority:
        type: string
        description: Priority to set on escalation.
        default: "critical"
  steps:
  - stepId: findIssue
    description: >-
      List unresolved issues matching the severity query, sorted by frequency,
      returning the single top candidate to escalate.
    operationId: listOrganizationIssues
    parameters:
    - name: organization_slug
      in: path
      value: $inputs.organizationSlug
    - name: query
      in: query
      value: $inputs.query
    - name: sort
      in: query
      value: freq
    - name: limit
      in: query
      value: 1
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      issueId: $response.body#/0/id
      issueShortId: $response.body#/0/shortId
      issueTitle: $response.body#/0/title
    onSuccess:
    - name: issueFound
      type: goto
      stepId: reviewEvents
      criteria:
      - context: $response.body
        condition: $.length > 0
        type: jsonpath
    - name: noIssue
      type: end
      criteria:
      - context: $response.body
        condition: $.length == 0
        type: jsonpath
  - stepId: reviewEvents
    description: >-
      Pull the issue's most recent events with full data to give the assignee
      context at escalation time.
    operationId: listIssueEvents
    parameters:
    - name: organization_slug
      in: path
      value: $inputs.organizationSlug
    - name: issue_id
      in: path
      value: $steps.findIssue.outputs.issueId
    - name: full
      in: query
      value: true
    - name: limit
      in: query
      value: 5
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      latestEventId: $response.body#/0/eventId
      latestEventMessage: $response.body#/0/message
  - stepId: escalateIssue
    description: >-
      Escalate the issue by setting a critical priority, assigning an owner, and
      marking it seen and subscribed.
    operationId: updateIssue
    parameters:
    - name: organization_slug
      in: path
      value: $inputs.organizationSlug
    - name: issue_id
      in: path
      value: $steps.findIssue.outputs.issueId
    requestBody:
      contentType: application/json
      payload:
        priority: $inputs.priority
        assignedTo: $inputs.assignTo
        hasSeen: true
        isSubscribed: true
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      updatedStatus: $response.body#/status
  outputs:
    issueId: $steps.findIssue.outputs.issueId
    issueShortId: $steps.findIssue.outputs.issueShortId
    latestEventId: $steps.reviewEvents.outputs.latestEventId
    updatedStatus: $steps.escalateIssue.outputs.updatedStatus