Cross-Provider Workflow

Cross-System Ticket Mirror

Version 1.0.0

Open a Zendesk ticket and mirror it as a ServiceNow incident record.

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

Providers Orchestrated

zendesk servicenow

Workflows

mirror-ticket
Create a Zendesk ticket and mirror it into ServiceNow.
Creates a Zendesk ticket from a customer request and creates a matching ServiceNow incident record so internal teams have a system-of-record copy.
2 steps inputs: description, requesterEmail, servicenowTable, subject outputs: incidentNumber, ticketId
1
create-ticket
$sourceDescriptions.zendeskTickets.CreateTicket
Create a Zendesk support ticket from the customer request.
2
mirror-incident
$sourceDescriptions.servicenowTable.createRecord
Mirror the Zendesk ticket as a ServiceNow incident record.

Source API Descriptions

Arazzo Workflow Specification

itsm-cross-system-ticket-mirror.yml Raw ↑
arazzo: 1.0.1
info:
  title: Cross-System Ticket Mirror
  summary: Open a Zendesk ticket and mirror it as a ServiceNow incident record.
  description: >-
    A cross-provider ITSM workflow that keeps two systems of record in sync by
    creating a Zendesk customer-facing ticket and mirroring it as an internal
    ServiceNow incident record. Demonstrates orchestrating a customer support
    desk with an enterprise ITSM platform in a single Arazzo workflow.
  version: 1.0.0
sourceDescriptions:
  - name: zendeskTickets
    url: https://raw.githubusercontent.com/api-evangelist/zendesk/refs/heads/main/openapi/tickets-openapi-original.yml
    type: openapi
  - name: servicenowTable
    url: https://raw.githubusercontent.com/api-evangelist/servicenow/refs/heads/main/openapi/servicenow-table-api-openapi.yml
    type: openapi
workflows:
  - workflowId: mirror-ticket
    summary: Create a Zendesk ticket and mirror it into ServiceNow.
    description: >-
      Creates a Zendesk ticket from a customer request and creates a matching
      ServiceNow incident record so internal teams have a system-of-record copy.
    inputs:
      type: object
      properties:
        subject:
          type: string
        description:
          type: string
        requesterEmail:
          type: string
        servicenowTable:
          type: string
    steps:
      - stepId: create-ticket
        description: Create a Zendesk support ticket from the customer request.
        operationId: $sourceDescriptions.zendeskTickets.CreateTicket
        requestBody:
          contentType: application/json
          payload:
            ticket:
              subject: $inputs.subject
              comment:
                body: $inputs.description
              requester:
                email: $inputs.requesterEmail
        successCriteria:
          - condition: $statusCode == 201
        outputs:
          ticketId: $response.body#/ticket/id
          ticketSubject: $response.body#/ticket/subject
      - stepId: mirror-incident
        description: Mirror the Zendesk ticket as a ServiceNow incident record.
        operationId: $sourceDescriptions.servicenowTable.createRecord
        requestBody:
          contentType: application/json
          payload:
            short_description: $steps.create-ticket.outputs.ticketSubject
            description: $inputs.description
            correlation_id: $steps.create-ticket.outputs.ticketId
        successCriteria:
          - condition: $statusCode == 201
        outputs:
          incidentSysId: $response.body#/result/sys_id
          incidentNumber: $response.body#/result/number
    outputs:
      ticketId: $steps.create-ticket.outputs.ticketId
      incidentNumber: $steps.mirror-incident.outputs.incidentNumber