Cross-Provider Workflow

Shopify Fulfillment Tracking to Twilio SMS Update

Version 1.0.0

Create a Shopify fulfillment, add tracking details, then text the customer the tracking number.

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

Providers Orchestrated

shopify twilio

Workflows

fulfill-track-and-text
Create a fulfillment, set tracking, and SMS the customer the tracking number.
Creates a Shopify fulfillment, updates its tracking information with a carrier and tracking number, then sends the customer a Twilio SMS with the tracking number so they can follow their shipment.
3 steps inputs: accountSid, fromPhone, locationId, toPhone, trackingCompany, trackingNumber outputs: fulfillmentId, messageSid
1
create-fulfillment
$sourceDescriptions.shopifyApi.createFulfillment
Create a Shopify fulfillment for the order.
2
update-tracking
$sourceDescriptions.shopifyApi.updateFulfillmentTracking
Attach carrier tracking details to the fulfillment.
3
text-tracking
$sourceDescriptions.twilioApi.createMessage
SMS the customer their tracking number via Twilio.

Source API Descriptions

Arazzo Workflow Specification

shop-fulfillment-tracking-update-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Shopify Fulfillment Tracking to Twilio SMS Update
  summary: Create a Shopify fulfillment, add tracking details, then text the customer the tracking number.
  description: >-
    A shipping-tracking workflow that creates a Shopify fulfillment, attaches
    carrier tracking details to it, and texts the customer the tracking number
    through Twilio. Demonstrates chaining two commerce platform fulfillment
    operations into a single customer-facing SMS notification.
  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: twilioApi
    url: https://raw.githubusercontent.com/api-evangelist/twilio/refs/heads/main/openapi/twilio-messaging-openapi.yml
    type: openapi
workflows:
  - workflowId: fulfill-track-and-text
    summary: Create a fulfillment, set tracking, and SMS the customer the tracking number.
    description: >-
      Creates a Shopify fulfillment, updates its tracking information with a
      carrier and tracking number, then sends the customer a Twilio SMS with the
      tracking number so they can follow their shipment.
    inputs:
      type: object
      properties:
        locationId:
          type: integer
        trackingNumber:
          type: string
        trackingCompany:
          type: string
        accountSid:
          type: string
        toPhone:
          type: string
        fromPhone:
          type: string
    steps:
      - stepId: create-fulfillment
        description: Create a Shopify fulfillment for the order.
        operationId: $sourceDescriptions.shopifyApi.createFulfillment
        requestBody:
          contentType: application/json
          payload:
            fulfillment:
              notify_customer: false
              location_id: $inputs.locationId
        successCriteria:
          - condition: $statusCode == 201
        outputs:
          fulfillmentId: $response.body#/fulfillment/id
      - stepId: update-tracking
        description: Attach carrier tracking details to the fulfillment.
        operationId: $sourceDescriptions.shopifyApi.updateFulfillmentTracking
        parameters:
          - name: fulfillment_id
            in: path
            value: $steps.create-fulfillment.outputs.fulfillmentId
        requestBody:
          contentType: application/json
          payload:
            fulfillment:
              notify_customer: true
              tracking_info:
                number: $inputs.trackingNumber
                company: $inputs.trackingCompany
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          trackingStatus: $response.body#/fulfillment/status
      - stepId: text-tracking
        description: SMS the customer their tracking number via Twilio.
        operationId: $sourceDescriptions.twilioApi.createMessage
        parameters:
          - name: AccountSid
            in: path
            value: $inputs.accountSid
        requestBody:
          contentType: application/x-www-form-urlencoded
          payload:
            To: $inputs.toPhone
            From: $inputs.fromPhone
            Body: Your shipment is on its way. Tracking number inside your account.
        successCriteria:
          - condition: $statusCode == 201
        outputs:
          messageSid: $response.body#/sid
    outputs:
      fulfillmentId: $steps.create-fulfillment.outputs.fulfillmentId
      messageSid: $steps.text-tracking.outputs.messageSid