Ironclad · Arazzo Workflow

Ironclad Launch a Workflow Asynchronously and Poll

Version 1.0.0

Launch a workflow async, poll the create job to completion, then retrieve the workflow.

1 workflow 1 source API 1 provider
View Spec View on GitHub Contract Lifecycle ManagementCLMContractsLegal TechLegalOpsEnterpriseWorkflowseSignatureClickwrapAIOAuthSCIMWebhooksArazzoWorkflows

Provider

ironclad

Workflows

launch-workflow-async-poll
Launch a workflow asynchronously, poll its job status, then retrieve it.
Submits an asynchronous workflow launch, polls the async create job until it reports success, and retrieves the resulting workflow.
3 steps inputs: attributes, authorization, template outputs: asyncJobId, title, workflowId
1
launchAsync
create-a-new-workflow-async
Submit an asynchronous workflow launch request, returning a job id that can be polled for completion.
2
pollStatus
retrieve-asynchronous-workflow-status
Poll the async create job to determine whether the workflow has been created. Branches to retrieval once the job reports success.
3
retrieveWorkflow
retrieve-a-workflow
Retrieve the launched workflow created by the async job.

Source API Descriptions

Arazzo Workflow Specification

ironclad-launch-workflow-async-poll.yml Raw ↑
arazzo: 1.0.1
info:
  title: Ironclad Launch a Workflow Asynchronously and Poll
  summary: Launch a workflow async, poll the create job to completion, then retrieve the workflow.
  description: >-
    The non-blocking workflow launch path, recommended when files are provided
    to the workflow. The flow submits an asynchronous launch request, polls the
    async job status until the workflow has been created, and then retrieves the
    fully launched workflow. Each step inlines its request so the chain can be
    read and executed without opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: ironcladPublicApi
  url: ../openapi/ironclad-public-api-openapi.yml
  type: openapi
workflows:
- workflowId: launch-workflow-async-poll
  summary: Launch a workflow asynchronously, poll its job status, then retrieve it.
  description: >-
    Submits an asynchronous workflow launch, polls the async create job until it
    reports success, and retrieves the resulting workflow.
  inputs:
    type: object
    required:
    - authorization
    - template
    - attributes
    properties:
      authorization:
        type: string
        description: Bearer token for the Ironclad Authorization header.
      template:
        type: string
        description: The identifier of the workflow template to launch.
      attributes:
        type: object
        description: The attribute (property) values used to populate the workflow's launch form.
  steps:
  - stepId: launchAsync
    description: >-
      Submit an asynchronous workflow launch request, returning a job id that
      can be polled for completion.
    operationId: create-a-new-workflow-async
    parameters:
    - name: Authorization
      in: header
      value: $inputs.authorization
    requestBody:
      contentType: application/json
      payload:
        template: $inputs.template
        attributes: $inputs.attributes
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      asyncJobId: $response.body#/asyncJobId
  - stepId: pollStatus
    description: >-
      Poll the async create job to determine whether the workflow has been
      created. Branches to retrieval once the job reports success.
    operationId: retrieve-asynchronous-workflow-status
    parameters:
    - name: Authorization
      in: header
      value: $inputs.authorization
    - name: asyncJobId
      in: path
      value: $steps.launchAsync.outputs.asyncJobId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      status: $response.body#/status
      workflowId: $response.body#/workflow/id
    onSuccess:
    - name: jobSucceeded
      type: goto
      stepId: retrieveWorkflow
      criteria:
      - context: $response.body
        condition: $.status == "success"
        type: jsonpath
  - stepId: retrieveWorkflow
    description: >-
      Retrieve the launched workflow created by the async job.
    operationId: retrieve-a-workflow
    parameters:
    - name: Authorization
      in: header
      value: $inputs.authorization
    - name: id
      in: path
      value: $steps.pollStatus.outputs.workflowId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      title: $response.body#/title
      step: $response.body#/step
  outputs:
    asyncJobId: $steps.launchAsync.outputs.asyncJobId
    workflowId: $steps.pollStatus.outputs.workflowId
    title: $steps.retrieveWorkflow.outputs.title