Paragon · Arazzo Workflow

Paragon Discover and Run an ActionKit Action

Version 1.0.0

List the Integration Tools available to a Connected User, then execute one synchronously.

1 workflow 1 source API 1 provider
View Spec View on GitHub Embedded IntegrationsIntegration InfrastructureiPaaSAI AgentsMCPIntegrationsArazzoWorkflows

Provider

paragon

Workflows

discover-and-run-action
Resolve an ActionKit tool from the catalog and run it for a Connected User.
Lists available actions for the Connected User, verifies the requested action name is in the returned catalog, and then runs it synchronously, returning the third-party provider's response payload.
2 steps inputs: action, actionParameters, integration, projectId outputs: availableActions, executedAction, output
1
listAvailableActions
listActions
Retrieve the catalog of pre-built Integration Tools available to the Connected User, optionally scoped to a single integration.
2
runAction
runAction
Execute the requested action synchronously on behalf of the Connected User and capture the integration's response payload.

Source API Descriptions

Arazzo Workflow Specification

paragon-discover-and-run-action-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Paragon Discover and Run an ActionKit Action
  summary: List the Integration Tools available to a Connected User, then execute one synchronously.
  description: >-
    The core ActionKit agent pattern. The workflow first lists the catalog of
    pre-built Integration Tools the Connected User has access to (optionally
    filtered to a single integration), confirms the requested action is present
    in that catalog, and then executes it synchronously with the supplied
    parameters. 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: actionKitApi
  url: ../openapi/paragon-actionkit-api-openapi.yml
  type: openapi
workflows:
- workflowId: discover-and-run-action
  summary: Resolve an ActionKit tool from the catalog and run it for a Connected User.
  description: >-
    Lists available actions for the Connected User, verifies the requested
    action name is in the returned catalog, and then runs it synchronously,
    returning the third-party provider's response payload.
  inputs:
    type: object
    required:
    - projectId
    - action
    - actionParameters
    properties:
      projectId:
        type: string
        description: Your Paragon Project ID.
      integration:
        type: string
        description: Optional integration filter for the catalog (e.g. salesforce, slack).
      action:
        type: string
        description: The ActionKit action name to run (e.g. SLACK_SEND_MESSAGE).
      actionParameters:
        type: object
        description: The parameters required by the action, as a key/value map.
  steps:
  - stepId: listAvailableActions
    description: >-
      Retrieve the catalog of pre-built Integration Tools available to the
      Connected User, optionally scoped to a single integration.
    operationId: listActions
    parameters:
    - name: projectId
      in: path
      value: $inputs.projectId
    - name: integration
      in: query
      value: $inputs.integration
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      actions: $response.body#/actions
      firstActionName: $response.body#/actions/0/name
  - stepId: runAction
    description: >-
      Execute the requested action synchronously on behalf of the Connected
      User and capture the integration's response payload.
    operationId: runAction
    parameters:
    - name: projectId
      in: path
      value: $inputs.projectId
    - name: action
      in: path
      value: $inputs.action
    requestBody:
      contentType: application/json
      payload: $inputs.actionParameters
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      output: $response.body#/output
      integration: $response.body#/integration
      executedAction: $response.body#/action
  outputs:
    availableActions: $steps.listAvailableActions.outputs.actions
    output: $steps.runAction.outputs.output
    executedAction: $steps.runAction.outputs.executedAction