Squillo Workflows API

Workflow definition and management

OpenAPI Specification

squillo-workflows-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Squillo Platform Connectors Workflows API
  description: The Squillo Platform API provides programmatic access to Squillo's Software as a Utility (SaaU) integration and automation platform. Enables management of workflows, connectors, integrations, triggers, and execution monitoring for IT process automation.
  version: '1.0'
  contact:
    name: Squillo Support
    url: https://squillo.io/
  license:
    name: Squillo Terms of Service
    url: https://squillo.io/
servers:
- url: https://api.squillo.io/v1
  description: Squillo Platform API
security:
- BearerAuth: []
tags:
- name: Workflows
  description: Workflow definition and management
paths:
  /workflows:
    get:
      operationId: listWorkflows
      summary: List Workflows
      description: Returns a list of all workflow definitions in the account, including their status, creation date, and trigger configuration.
      tags:
      - Workflows
      parameters:
      - name: status
        in: query
        description: Filter by workflow status
        schema:
          type: string
          enum:
          - active
          - inactive
          - draft
      - name: page
        in: query
        schema:
          type: integer
          default: 1
      - name: limit
        in: query
        schema:
          type: integer
          default: 50
          maximum: 200
      responses:
        '200':
          description: List of workflows
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createWorkflow
      summary: Create Workflow
      description: Creates a new workflow definition with specified steps, connectors, and trigger configuration.
      tags:
      - Workflows
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkflowCreate'
      responses:
        '201':
          description: Workflow created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Workflow'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /workflows/{workflowId}:
    get:
      operationId: getWorkflow
      summary: Get Workflow
      description: Returns the full definition for a specific workflow including all steps and configuration.
      tags:
      - Workflows
      parameters:
      - $ref: '#/components/parameters/WorkflowId'
      responses:
        '200':
          description: Workflow details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Workflow'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateWorkflow
      summary: Update Workflow
      description: Updates a workflow definition including steps, triggers, and configuration.
      tags:
      - Workflows
      parameters:
      - $ref: '#/components/parameters/WorkflowId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkflowUpdate'
      responses:
        '200':
          description: Workflow updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Workflow'
    delete:
      operationId: deleteWorkflow
      summary: Delete Workflow
      description: Permanently deletes a workflow definition and all associated execution history.
      tags:
      - Workflows
      parameters:
      - $ref: '#/components/parameters/WorkflowId'
      responses:
        '204':
          description: Workflow deleted
  /workflows/{workflowId}/activate:
    post:
      operationId: activateWorkflow
      summary: Activate Workflow
      description: Activates a workflow, enabling its triggers to fire and accepting manual runs.
      tags:
      - Workflows
      parameters:
      - $ref: '#/components/parameters/WorkflowId'
      responses:
        '200':
          description: Workflow activated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Workflow'
  /workflows/{workflowId}/deactivate:
    post:
      operationId: deactivateWorkflow
      summary: Deactivate Workflow
      description: Deactivates a workflow, preventing triggers from firing.
      tags:
      - Workflows
      parameters:
      - $ref: '#/components/parameters/WorkflowId'
      responses:
        '200':
          description: Workflow deactivated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Workflow'
  /workflows/{workflowId}/execute:
    post:
      operationId: executeWorkflow
      summary: Execute Workflow
      description: Manually triggers a workflow execution with optional input data. Returns the execution ID for monitoring.
      tags:
      - Workflows
      parameters:
      - $ref: '#/components/parameters/WorkflowId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                inputData:
                  type: object
                  description: Optional input payload for the workflow execution
      responses:
        '202':
          description: Execution started
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Execution'
components:
  parameters:
    WorkflowId:
      name: workflowId
      in: path
      required: true
      description: Unique workflow identifier
      schema:
        type: string
  schemas:
    WorkflowUpdate:
      type: object
      properties:
        name:
          type: string
        description:
          type: string
        trigger:
          $ref: '#/components/schemas/Trigger'
        steps:
          type: array
          items:
            $ref: '#/components/schemas/WorkflowStep'
    Execution:
      type: object
      properties:
        id:
          type: string
        workflowId:
          type: string
        status:
          type: string
          enum:
          - running
          - success
          - failed
          - cancelled
        startedAt:
          type: string
          format: date-time
        completedAt:
          type: string
          format: date-time
          nullable: true
        triggeredBy:
          type: string
          enum:
          - manual
          - schedule
          - webhook
          - event
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
        message:
          type: string
        details:
          type: array
          items:
            type: string
    WorkflowListResponse:
      type: object
      properties:
        workflows:
          type: array
          items:
            $ref: '#/components/schemas/Workflow'
        total:
          type: integer
        page:
          type: integer
        limit:
          type: integer
    Trigger:
      type: object
      properties:
        type:
          type: string
          enum:
          - webhook
          - schedule
          - manual
          - event
        config:
          type: object
          description: Trigger-specific configuration
    Workflow:
      type: object
      properties:
        id:
          type: string
          description: Unique workflow identifier
        name:
          type: string
          description: Human-readable workflow name
        description:
          type: string
        status:
          type: string
          enum:
          - active
          - inactive
          - draft
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        trigger:
          $ref: '#/components/schemas/Trigger'
        steps:
          type: array
          items:
            $ref: '#/components/schemas/WorkflowStep'
        tags:
          type: array
          items:
            type: string
    WorkflowCreate:
      type: object
      required:
      - name
      properties:
        name:
          type: string
        description:
          type: string
        trigger:
          $ref: '#/components/schemas/Trigger'
        steps:
          type: array
          items:
            $ref: '#/components/schemas/WorkflowStep'
        tags:
          type: array
          items:
            type: string
    WorkflowStep:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        type:
          type: string
          enum:
          - action
          - condition
          - loop
          - delay
          - transform
        connectorId:
          type: string
        action:
          type: string
        inputMapping:
          type: object
        outputMapping:
          type: object
        errorHandling:
          type: object
  responses:
    Unauthorized:
      description: Authentication required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    BadRequest:
      description: Invalid request data
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT