Cross-Provider Workflow

Major Incident Multi-Channel Notification

Version 1.0.0

Log a ServiceNow major incident, alert Slack, and page on-call by SMS.

1 workflow 3 source APIs 3 providers
View Spec View on GitHub ArazzoWorkflowsCross-Provider

Providers Orchestrated

servicenow slack twilio

Workflows

major-incident-notify
Create a ServiceNow incident, alert Slack, then page on-call by SMS.
Creates a high-impact ServiceNow incident record, posts an alert to the incident Slack channel, and sends an SMS page to the on-call engineer.
3 steps inputs: accountSid, description, fromNumber, onCallNumber, shortDescription, slackChannel outputs: incidentNumber, messageSid, messageTs
1
create-incident
$sourceDescriptions.servicenowTable.createRecord
Create a high-impact ServiceNow incident record.
2
alert-slack
$sourceDescriptions.slackChat.postChatPostmessage
Broadcast the incident to the incident response Slack channel.
3
page-oncall
$sourceDescriptions.twilioMessaging.createMessage
Page the on-call engineer by SMS via Twilio.

Source API Descriptions

Arazzo Workflow Specification

itsm-major-incident-multi-notify.yml Raw ↑
arazzo: 1.0.1
info:
  title: Major Incident Multi-Channel Notification
  summary: Log a ServiceNow major incident, alert Slack, and page on-call by SMS.
  description: >-
    A cross-provider ITSM workflow that records a high-severity ServiceNow major
    incident, broadcasts it to the incident response Slack channel, and pages the
    on-call engineer by SMS through Twilio. Demonstrates orchestrating an
    enterprise ITSM platform with messaging and programmable SMS providers for a
    coordinated major-incident response in a single Arazzo workflow.
  version: 1.0.0
sourceDescriptions:
  - name: servicenowTable
    url: https://raw.githubusercontent.com/api-evangelist/servicenow/refs/heads/main/openapi/servicenow-table-api-openapi.yml
    type: openapi
  - name: slackChat
    url: https://raw.githubusercontent.com/api-evangelist/slack/refs/heads/main/openapi/slack-chat-openapi.yml
    type: openapi
  - name: twilioMessaging
    url: https://raw.githubusercontent.com/api-evangelist/twilio/refs/heads/main/openapi/twilio-messaging-openapi.yml
    type: openapi
workflows:
  - workflowId: major-incident-notify
    summary: Create a ServiceNow incident, alert Slack, then page on-call by SMS.
    description: >-
      Creates a high-impact ServiceNow incident record, posts an alert to the
      incident Slack channel, and sends an SMS page to the on-call engineer.
    inputs:
      type: object
      properties:
        shortDescription:
          type: string
        description:
          type: string
        slackChannel:
          type: string
        accountSid:
          type: string
        fromNumber:
          type: string
        onCallNumber:
          type: string
    steps:
      - stepId: create-incident
        description: Create a high-impact ServiceNow incident record.
        operationId: $sourceDescriptions.servicenowTable.createRecord
        requestBody:
          contentType: application/json
          payload:
            short_description: $inputs.shortDescription
            description: $inputs.description
            impact: '1'
            urgency: '1'
        successCriteria:
          - condition: $statusCode == 201
        outputs:
          incidentNumber: $response.body#/result/number
      - stepId: alert-slack
        description: Broadcast the incident to the incident response Slack channel.
        operationId: $sourceDescriptions.slackChat.postChatPostmessage
        requestBody:
          contentType: application/x-www-form-urlencoded
          payload:
            channel: $inputs.slackChannel
            text: MAJOR INCIDENT declared. On-call is being paged.
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          messageTs: $response.body#/ts
      - stepId: page-oncall
        description: Page the on-call engineer by SMS via Twilio.
        operationId: $sourceDescriptions.twilioMessaging.createMessage
        requestBody:
          contentType: application/x-www-form-urlencoded
          payload:
            AccountSid: $inputs.accountSid
            From: $inputs.fromNumber
            To: $inputs.onCallNumber
            Body: Major incident declared. Join the incident bridge now.
        successCriteria:
          - condition: $statusCode == 201
        outputs:
          messageSid: $response.body#/sid
    outputs:
      incidentNumber: $steps.create-incident.outputs.incidentNumber
      messageTs: $steps.alert-slack.outputs.messageTs
      messageSid: $steps.page-oncall.outputs.messageSid