Slack · Arazzo Workflow

Slack Schedule a Message and Verify It

Version 1.0.0

Schedule a future message to a channel and confirm it appears in the queue.

1 workflow 1 source API 1 provider
View Spec View on GitHub BotsChatCollaborationMessagingProductivityT1Team CommunicationArazzoWorkflows

Provider

slack

Workflows

schedule-message-verify
Schedule a future message and verify it is queued.
Schedules a message for future delivery to a channel and then lists the channel's scheduled messages to confirm it was queued.
2 steps inputs: channel, postAt, text outputs: scheduledMessageId, scheduledMessages
1
scheduleMessage
postChatSchedulemessage
Schedule the supplied message for future delivery to the target channel.
2
verifyScheduled
getChatScheduledmessagesList
List the channel's scheduled messages to confirm the newly scheduled message is present in the delivery queue.

Source API Descriptions

Arazzo Workflow Specification

slack-schedule-message-verify-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Slack Schedule a Message and Verify It
  summary: Schedule a future message to a channel and confirm it appears in the queue.
  description: >-
    A reliable scheduling pattern that queues a message for future delivery and
    verifies the queue accepted it. The workflow schedules the message for a
    given Unix timestamp, then lists the channel's scheduled messages and
    confirms the newly scheduled message is present. Every step spells out its
    request inline so the flow can be read and executed without opening the
    underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: chatApi
  url: ../openapi/slack-chat-openapi.yml
  type: openapi
workflows:
- workflowId: schedule-message-verify
  summary: Schedule a future message and verify it is queued.
  description: >-
    Schedules a message for future delivery to a channel and then lists the
    channel's scheduled messages to confirm it was queued.
  inputs:
    type: object
    required:
    - channel
    - text
    - postAt
    properties:
      channel:
        type: string
        description: The channel ID to schedule the message into.
      text:
        type: string
        description: The message text to schedule.
      postAt:
        type: integer
        description: The Unix timestamp at which the message should be sent.
  steps:
  - stepId: scheduleMessage
    description: >-
      Schedule the supplied message for future delivery to the target channel.
    operationId: postChatSchedulemessage
    requestBody:
      contentType: application/x-www-form-urlencoded
      payload:
        channel: $inputs.channel
        text: $inputs.text
        post_at: $inputs.postAt
    successCriteria:
    - condition: $statusCode == 200
    - context: $response.body
      condition: $.ok == true
      type: jsonpath
    outputs:
      scheduledMessageId: $response.body#/scheduled_message_id
      channelId: $response.body#/channel
  - stepId: verifyScheduled
    description: >-
      List the channel's scheduled messages to confirm the newly scheduled
      message is present in the delivery queue.
    operationId: getChatScheduledmessagesList
    parameters:
    - name: channel
      in: query
      value: $steps.scheduleMessage.outputs.channelId
    successCriteria:
    - condition: $statusCode == 200
    - context: $response.body
      condition: $.ok == true
      type: jsonpath
    outputs:
      scheduledMessages: $response.body#/scheduled_messages
  outputs:
    scheduledMessageId: $steps.scheduleMessage.outputs.scheduledMessageId
    scheduledMessages: $steps.verifyScheduled.outputs.scheduledMessages