Skip to content
Proud to collaborate with Microsoft for Startups

slack.approval.request ​

Post an Approve/Reject prompt to Slack and pause until a human decides.

Overview ​

PropertyValue
Workflow typeLinear
LibraryApp-slack
Version1.0

Input Schema ​

FieldTypeRequiredDefaultDescription
organization_uuiduuidYes—Organization that owns the Slack connection
connection_uuiduuidYes—Slack CloudConnection UUID
channelstringYes—Channel id or name to post the approval to
promptstringYes—Approval question (Slack mrkdwn)
notestringNo—Optional context line shown under the prompt
approve_labelstringNo—Approve button label (default "Approve")
reject_labelstringNo—Reject button label (default "Reject")
timeout_secondsintegerNo—Auto-expire the request after this many seconds
metadatajsonNo—Opaque passthrough for the caller to correlate the decision
workflow_run_idstringNo—Parent DAG run id (auto-injected by the engine when used as a DAG step)

Output Schema ​

FieldTypeRequiredDefaultDescription
decisionstringNo——
decided_byjsonNo——
decided_by_namejsonNo——
decided_atjsonNo——
channeljsonNo——
message_tsjsonNo——
approval_workflow_idjsonNo——
metadatajsonNo——
statusstringNo——
organization_uuidjsonNo——
connection_uuidjsonNo——
permalinkjsonNo——
promptjsonNo——
workflow_run_idstringNo—Parent DAG run id (auto-injected by the engine when used as a DAG step)
failure_reasonstringNo—Human-readable failure reason (engine-stamped)
failure_typestringNo—Failure category (engine-stamped)
failed_actionstringNo—Action that failed (engine-stamped)
failed_at_statestringNo—State where the workflow failed (engine-stamped)
failed_stepstringNo—DAG step that failed (engine-stamped)
failed_layerstringNo—DAG layer that failed (engine-stamped)
errorstringNo—Error message (engine-stamped)
error_typestringNo—Error class name (engine-stamped)

States ​

StateInitialTerminalSuccessAuto-advanceDescription
pendingYesNo—post—
awaitingNoNo———
approvedNoYesYes——
expiredNoYesNo——
failedNoYesNo——
rejectedNoYesNo——

State Diagram ​

Transitions ​

FromActionToDescription
pendingpostawaiting—
awaitingapproveapproved—
awaitingrejectrejected—
awaitingexpireexpired—
* (any state)failfailed—

API Usage ​

bash
POST /api/workflows/start
Content-Type: application/json

{
  "workflow_type": "slack.approval.request",
  "initial_data": {
    "organization_uuid": "value",
    "connection_uuid": "value",
    "channel": "value",
    "prompt": "value"
  }
}