Cross-Provider Workflow

Device Position Update to SMS Notification

Version 1.0.0

Push device positions to an Amazon Location tracker, then SMS a status update.

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

Providers Orchestrated

amazon-location-service twilio

Workflows

track-and-sms
Update device positions on a tracker and SMS a dispatcher.
Uploads position updates for one or more devices to an Amazon Location tracker, then sends an SMS status notification through Twilio Messaging.
2 steps inputs: accountSid, deviceId, fromPhone, latitude, longitude, toPhone, trackerName outputs: messageSid, updateStatus
1
update-position
$sourceDescriptions.amazonLocationApi.BatchUpdateDevicePosition
Upload device position updates to the tracker resource.
2
notify-dispatcher
$sourceDescriptions.twilioMessagingApi.createMessage
SMS the dispatcher that the device position was updated.

Source API Descriptions

Arazzo Workflow Specification

geo-amazon-location-track-twilio-sms.yml Raw ↑
arazzo: 1.0.1
info:
  title: Device Position Update to SMS Notification
  summary: Push device positions to an Amazon Location tracker, then SMS a status update.
  description: >-
    A logistics tracking workflow that uploads device position updates to an Amazon
    Location Service tracker resource and then notifies a dispatcher via an SMS through
    Twilio's Messaging API. Demonstrates pairing a geospatial tracking provider with a
    communications provider for fleet and asset visibility.
  version: 1.0.0
sourceDescriptions:
  - name: amazonLocationApi
    url: https://raw.githubusercontent.com/api-evangelist/amazon-location-service/refs/heads/main/openapi/amazon-location-service-openapi.yml
    type: openapi
  - name: twilioMessagingApi
    url: https://raw.githubusercontent.com/api-evangelist/twilio/refs/heads/main/openapi/twilio-messaging-openapi.yml
    type: openapi
workflows:
  - workflowId: track-and-sms
    summary: Update device positions on a tracker and SMS a dispatcher.
    description: >-
      Uploads position updates for one or more devices to an Amazon Location tracker,
      then sends an SMS status notification through Twilio Messaging.
    inputs:
      type: object
      properties:
        trackerName:
          type: string
        deviceId:
          type: string
        latitude:
          type: number
        longitude:
          type: number
        accountSid:
          type: string
        toPhone:
          type: string
        fromPhone:
          type: string
    steps:
      - stepId: update-position
        description: Upload device position updates to the tracker resource.
        operationId: $sourceDescriptions.amazonLocationApi.BatchUpdateDevicePosition
        parameters:
          - name: TrackerName
            in: path
            value: $inputs.trackerName
        requestBody:
          contentType: application/json
          payload:
            Updates:
              - DeviceId: $inputs.deviceId
                Position:
                  - $inputs.longitude
                  - $inputs.latitude
                SampleTime: 2026-06-04T12:00:00Z
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          updateStatus: $statusCode
      - stepId: notify-dispatcher
        description: SMS the dispatcher that the device position was updated.
        operationId: $sourceDescriptions.twilioMessagingApi.createMessage
        parameters:
          - name: AccountSid
            in: path
            value: $inputs.accountSid
        requestBody:
          contentType: application/x-www-form-urlencoded
          payload:
            To: $inputs.toPhone
            From: $inputs.fromPhone
            Body: Device position updated on tracker.
        successCriteria:
          - condition: $statusCode == 201
        outputs:
          messageSid: $response.body#/sid
          messageStatus: $response.body#/status
    outputs:
      updateStatus: $steps.update-position.outputs.updateStatus
      messageSid: $steps.notify-dispatcher.outputs.messageSid