Skip to content
Proud to collaborate with Microsoft for Startups

approval.request.collect-and-expire ​

Create an approval request, notify approvers, collect decision events, and expire the request when timeout elapses.

Create an approval request, notify approvers, collect decision events, and expire the request when timeout elapses.

Overview ​

PropertyValue
Workflow typeDag
LibraryApp-slack
Version1.0

Input Schema ​

FieldTypeRequiredDefaultDescription
workflow_run_idstringNo—DAG-stamped parent run id.
organization_uuiduuidYes—Organization UUID for tenant isolation.
actorstringNo—User or service actor initiating the workflow.
idempotency_keystringNo—Caller-supplied idempotency key for safe retries.
dry_runbooleanNo—Validate and plan without mutating external resources.
subjectstringYes—Approval subject.
approverslistYes—Approvers or approval channels.
policyjsonNo—Approval policy.
timeout_secondsintegerNo—Approval timeout.
notification_channelslistNo—Notification channels.

Output Schema ​

FieldTypeRequiredDefaultDescription
organization_uuiduuidNo—Organization uuid.
workflow_run_uuiduuidNo—Workflow run uuid.
statusstringNo—Status.
summaryjsonNo—Summary.
resource_refsjsonNo—Resource refs.
warningslistNo—Warnings.
completed_atstringNo—Completed at.
compensation_triggerstringNo—Compensation trigger.
compensation_resultsjsonNo—Compensation results.
identity_user_queryjsonNo—Output state_data from DAG step identity_user_query.
slack_channel_resolvejsonNo—Output state_data from DAG step slack_channel_resolve.
slack_approval_requestjsonNo—Output state_data from DAG step slack_approval_request.
slack_interaction_dispatchjsonNo—Output state_data from DAG step slack_interaction_dispatch.
slack_message_sendjsonNo—Output state_data from DAG step slack_message_send.
failure_reasonstringNo—Failure reason.
failed_stepjsonNo—Failed step.
failed_layerjsonNo—Failed layer.
failed_at_statestringNo—Failed at state.
errorstringNo—Error.
error_typestringNo—Error type.
failed_atstringNo—Failed at.

DAG Layers ​

#LayerStepsCompensation
101_identity_user_queryidentity.user.query—
202_slack_channel_resolveslack.channel.resolve—
303_slack_approval_requestslack.approval.request—
404_slack_interaction_dispatchslack.interaction.dispatch—
505_slack_message_sendslack.message.send—

Execution Flow ​

Sub-workflows ​

Sub-workflowStep name
identity.user.queryidentity_user_query
slack.channel.resolveslack_channel_resolve
slack.approval.requestslack_approval_request
slack.interaction.dispatchslack_interaction_dispatch
slack.message.sendslack_message_send

API Usage ​

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

{
  "workflow_type": "approval.request.collect-and-expire",
  "initial_data": {
    "organization_uuid": "value",
    "subject": "value",
    "approvers": "value"
  }
}