Cross-Provider Workflow

Shopify Inventory Restock to Slack Confirmation

Version 1.0.0

Set a Shopify inventory level, then post a restock confirmation to a Slack channel.

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

Providers Orchestrated

shopify slack

Workflows

restock-and-confirm
Set a Shopify inventory level and post a Slack restock confirmation.
Sets the available inventory level for an item at a Shopify location, then posts a restock confirmation to a Slack channel.
2 steps inputs: available, inventoryItemId, locationId, slackChannel, slackToken outputs: availableNow, messageTs
1
set-inventory
$sourceDescriptions.shopifyApi.setInventoryLevel
Set the available inventory level at the Shopify location.
2
post-restock
$sourceDescriptions.slackApi.postChatPostmessage
Post a restock confirmation to the Slack channel.

Source API Descriptions

Arazzo Workflow Specification

shop-inventory-restock-slack-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Shopify Inventory Restock to Slack Confirmation
  summary: Set a Shopify inventory level, then post a restock confirmation to a Slack channel.
  description: >-
    A warehouse workflow that sets the available inventory level for an item at a
    Shopify location and posts a restock confirmation to a Slack channel so the
    team knows stock is replenished. Demonstrates pairing a commerce platform's
    inventory operations with a team chat provider.
  version: 1.0.0
sourceDescriptions:
  - name: shopifyApi
    url: https://raw.githubusercontent.com/api-evangelist/shopify/refs/heads/main/openapi/shopify-admin-rest-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: restock-and-confirm
    summary: Set a Shopify inventory level and post a Slack restock confirmation.
    description: >-
      Sets the available inventory level for an item at a Shopify location, then
      posts a restock confirmation to a Slack channel.
    inputs:
      type: object
      properties:
        inventoryItemId:
          type: integer
        locationId:
          type: integer
        available:
          type: integer
        slackToken:
          type: string
        slackChannel:
          type: string
    steps:
      - stepId: set-inventory
        description: Set the available inventory level at the Shopify location.
        operationId: $sourceDescriptions.shopifyApi.setInventoryLevel
        requestBody:
          contentType: application/json
          payload:
            inventory_item_id: $inputs.inventoryItemId
            location_id: $inputs.locationId
            available: $inputs.available
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          availableNow: $response.body#/inventory_level/available
      - stepId: post-restock
        description: Post a restock confirmation to the Slack channel.
        operationId: $sourceDescriptions.slackApi.postChatPostmessage
        parameters:
          - name: token
            in: header
            value: $inputs.slackToken
        requestBody:
          contentType: application/x-www-form-urlencoded
          payload:
            channel: $inputs.slackChannel
            text: Inventory has been restocked and is available again.
        successCriteria:
          - condition: $statusCode == 200
          - condition: $response.body#/ok == true
        outputs:
          messageTs: $response.body#/ts
    outputs:
      availableNow: $steps.set-inventory.outputs.availableNow
      messageTs: $steps.post-restock.outputs.messageTs