Cross-Provider Workflow

Claude Draft Reply to Zendesk Request

Version 1.0.0

Draft a support reply with Claude, then file it as a Zendesk request.

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

Providers Orchestrated

claude zendesk

Workflows

draft-and-file
Draft a reply with Claude and file a Zendesk request.
Calls Claude to draft a suggested support reply, captures the draft, and creates a Zendesk request carrying the customer question and the draft.
2 steps inputs: model, question, subject outputs: draft, requestId
1
draft-reply
$sourceDescriptions.claudeApi.createMessage
Ask Claude to draft a suggested support reply.
2
file-request
$sourceDescriptions.zendeskApi.CreateRequest
File a Zendesk request carrying the question and drafted reply.

Source API Descriptions

Arazzo Workflow Specification

ai-claude-draft-to-zendesk-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Claude Draft Reply to Zendesk Request
  summary: Draft a support reply with Claude, then file it as a Zendesk request.
  description: >-
    A cross-provider AI enrichment chain that has Claude draft a suggested reply
    to a customer question and files it as a request in Zendesk for agent review.
    Demonstrates AI-assisted support drafting feeding a ticketing system across
    two providers in one Arazzo workflow.
  version: 1.0.0
sourceDescriptions:
  - name: claudeApi
    url: https://raw.githubusercontent.com/api-evangelist/claude/refs/heads/main/openapi/claude-messages-api.yml
    type: openapi
  - name: zendeskApi
    url: https://raw.githubusercontent.com/api-evangelist/zendesk/refs/heads/main/openapi/requests-openapi-original.yml
    type: openapi
workflows:
  - workflowId: draft-and-file
    summary: Draft a reply with Claude and file a Zendesk request.
    description: >-
      Calls Claude to draft a suggested support reply, captures the draft, and
      creates a Zendesk request carrying the customer question and the draft.
    inputs:
      type: object
      properties:
        question:
          type: string
        model:
          type: string
        subject:
          type: string
    steps:
      - stepId: draft-reply
        description: Ask Claude to draft a suggested support reply.
        operationId: $sourceDescriptions.claudeApi.createMessage
        requestBody:
          contentType: application/json
          payload:
            model: $inputs.model
            max_tokens: 400
            messages:
              - role: user
                content: "Draft a concise, helpful support reply to this customer question: $inputs.question"
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          draft: $response.body#/content/0/text
      - stepId: file-request
        description: File a Zendesk request carrying the question and drafted reply.
        operationId: $sourceDescriptions.zendeskApi.CreateRequest
        requestBody:
          contentType: application/json
          payload:
            request:
              subject: $inputs.subject
              comment:
                body: "Customer question: $inputs.question\n\nSuggested reply: $steps.draft-reply.outputs.draft"
        successCriteria:
          - condition: $statusCode == 201
        outputs:
          requestId: $response.body#/request/id
    outputs:
      draft: $steps.draft-reply.outputs.draft
      requestId: $steps.file-request.outputs.requestId