Cross-Provider Workflow

ServiceNow Incident to Slack Notification

Version 1.0.0

Log a ServiceNow incident record, then notify a Slack channel.

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

Providers Orchestrated

servicenow slack

Workflows

incident-to-slack
Create a ServiceNow incident record, then post it to Slack.
Creates an incident record in the ServiceNow incident table and posts the returned incident number and short description to a Slack channel.
2 steps inputs: description, impact, shortDescription, slackChannel, tableName outputs: incidentNumber, messageTs
1
create-incident
$sourceDescriptions.servicenowTable.createRecord
Create an incident record in the ServiceNow Table API.
2
notify-slack
$sourceDescriptions.slackChat.postChatPostmessage
Post the new incident number to a Slack channel.

Source API Descriptions

Arazzo Workflow Specification

itsm-servicenow-incident-to-slack-notify.yml Raw ↑
arazzo: 1.0.1
info:
  title: ServiceNow Incident to Slack Notification
  summary: Log a ServiceNow incident record, then notify a Slack channel.
  description: >-
    A cross-provider ITSM workflow that records a new incident in the ServiceNow
    Table API and immediately notifies the responding team in Slack with the
    created incident number. Demonstrates orchestrating an enterprise ITSM
    platform with a team messaging provider 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
workflows:
  - workflowId: incident-to-slack
    summary: Create a ServiceNow incident record, then post it to Slack.
    description: >-
      Creates an incident record in the ServiceNow incident table and posts the
      returned incident number and short description to a Slack channel.
    inputs:
      type: object
      properties:
        tableName:
          type: string
        shortDescription:
          type: string
        description:
          type: string
        impact:
          type: string
        slackChannel:
          type: string
    steps:
      - stepId: create-incident
        description: Create an incident record in the ServiceNow Table API.
        operationId: $sourceDescriptions.servicenowTable.createRecord
        requestBody:
          contentType: application/json
          payload:
            short_description: $inputs.shortDescription
            description: $inputs.description
            impact: $inputs.impact
        successCriteria:
          - condition: $statusCode == 201
        outputs:
          incidentSysId: $response.body#/result/sys_id
          incidentNumber: $response.body#/result/number
      - stepId: notify-slack
        description: Post the new incident number to a Slack channel.
        operationId: $sourceDescriptions.slackChat.postChatPostmessage
        requestBody:
          contentType: application/x-www-form-urlencoded
          payload:
            channel: $inputs.slackChannel
            text: A new ServiceNow incident has been logged.
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          messageTs: $response.body#/ts
    outputs:
      incidentNumber: $steps.create-incident.outputs.incidentNumber
      messageTs: $steps.notify-slack.outputs.messageTs