Cross-Provider Workflow

Hyperbolic Sentiment Classification to Slack Alert

Version 1.0.0

Classify feedback sentiment with Hyperbolic, then alert a Slack channel.

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

Providers Orchestrated

hyperbolic-ai slack

Workflows

classify-and-alert
Classify sentiment with Hyperbolic and alert Slack.
Asks Hyperbolic to classify the sentiment of feedback, captures the label, and posts an alert with the label to the target Slack channel.
2 steps inputs: channel, feedback, model outputs: messageTs, sentiment
1
classify-sentiment
$sourceDescriptions.hyperbolicApi.createChatCompletion
Ask Hyperbolic to classify the feedback sentiment.
2
alert-slack
$sourceDescriptions.slackApi.postChatPostmessage
Post a sentiment alert to the target Slack channel.

Source API Descriptions

Arazzo Workflow Specification

ai-hyperbolic-classify-to-slack-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Hyperbolic Sentiment Classification to Slack Alert
  summary: Classify feedback sentiment with Hyperbolic, then alert a Slack channel.
  description: >-
    A cross-provider AI enrichment chain that classifies the sentiment of a
    customer-feedback message with Hyperbolic AI and posts an alert into a Slack
    channel. Demonstrates AI-driven sentiment routing into a team chat across two
    providers in one Arazzo workflow.
  version: 1.0.0
sourceDescriptions:
  - name: hyperbolicApi
    url: https://raw.githubusercontent.com/api-evangelist/hyperbolic-ai/refs/heads/main/openapi/hyperbolic-chat-completions-api-openapi.yml
    type: openapi
  - name: slackApi
    url: https://raw.githubusercontent.com/api-evangelist/slack/refs/heads/main/openapi/slack-chat-openapi.yml
    type: openapi
workflows:
  - workflowId: classify-and-alert
    summary: Classify sentiment with Hyperbolic and alert Slack.
    description: >-
      Asks Hyperbolic to classify the sentiment of feedback, captures the label,
      and posts an alert with the label to the target Slack channel.
    inputs:
      type: object
      properties:
        feedback:
          type: string
        model:
          type: string
        channel:
          type: string
    steps:
      - stepId: classify-sentiment
        description: Ask Hyperbolic to classify the feedback sentiment.
        operationId: $sourceDescriptions.hyperbolicApi.createChatCompletion
        requestBody:
          contentType: application/json
          payload:
            model: $inputs.model
            messages:
              - role: user
                content: "Classify the sentiment of this feedback as positive, neutral, or negative. Reply with only the label. Feedback: $inputs.feedback"
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          sentiment: $response.body#/choices/0/message/content
      - stepId: alert-slack
        description: Post a sentiment alert to the target Slack channel.
        operationId: $sourceDescriptions.slackApi.postChatPostmessage
        requestBody:
          contentType: application/x-www-form-urlencoded
          payload:
            channel: $inputs.channel
            text: "New feedback classified as $steps.classify-sentiment.outputs.sentiment: $inputs.feedback"
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          messageTs: $response.body#/ts
    outputs:
      sentiment: $steps.classify-sentiment.outputs.sentiment
      messageTs: $steps.alert-slack.outputs.messageTs