> ## Documentation Index
> Fetch the complete documentation index at: https://docs.summation.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Activate workflow

> Freeze the workflow as it stands into a new version, make that the version it runs, and set it active. From here its schedules fire that frozen definition, so this can start sending outbound email and Slack messages to the recipients the workflow names. Later edits do not change what an activated workflow runs — activate again to ship them.



## OpenAPI

````yaml https://api.summation.com/openapi.json post /v1/workflows/{workflow_id}/activate
openapi: 3.1.0
info:
  title: summation-api public API
  version: 0.1.0
servers: []
security: []
tags:
  - name: Auth
    description: Machine authentication for API clients.
  - name: Tenant
    description: Organization and tenant context resolved by summation-api.
  - name: Projects
    description: Project resources.
  - name: Conversations
    description: Conversation and message resources.
  - name: Reports
    description: Report resources and report operations.
  - name: Runs
    description: Project run history and execution status.
  - name: Playbooks
    description: Playbook resources.
  - name: Files
    description: Project file resources.
  - name: Catalog Entries
    description: Project-scoped data asset attachments.
  - name: Data Connectors
    description: Reusable external data source connections.
  - name: App Connectors
    description: External app connectors whose tools the agent can use during chat.
  - name: Tables
    description: Canonical table metadata and catalog.
  - name: Views
    description: Canonical Summation view metadata and catalog.
  - name: Query Executions
    description: Read-only SQL query execution.
  - name: Grid
    description: Materialized grid status, sync, and lineage.
  - name: Schedules
    description: Schedule and schedule run inspection.
  - name: Workflows
    description: >-
      Workflows: what they run, when they run, and where their output is
      delivered.
  - name: Verification Tests
    description: >-
      Administrative custom verification-test definitions, overlays, and
      effective-set previews.
paths:
  /v1/workflows/{workflow_id}/activate:
    post:
      tags:
        - Workflows
      summary: Activate workflow
      description: >-
        Freeze the workflow as it stands into a new version, make that the
        version it runs, and set it active. From here its schedules fire that
        frozen definition, so this can start sending outbound email and Slack
        messages to the recipients the workflow names. Later edits do not change
        what an activated workflow runs — activate again to ship them.
      operationId: activate_workflow
      parameters:
        - name: workflow_id
          in: path
          required: true
          schema:
            type: string
            title: Workflow Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkflowActivateRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowActivationResponse'
        '400':
          description: Invalid request or unsupported option.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemError'
        '401':
          description: Missing, invalid, or expired credentials.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemError'
        '403':
          description: Authenticated but missing the required scope.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemError'
        '404':
          description: Resource not found or not accessible.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemError'
        '409':
          description: >-
            The workflow changed since the revision you read, the update asked
            to make it active (which only the activate operation can do), or the
            request_id was already used. Nothing was applied.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '429':
          description: Rate limit exceeded.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemError'
        '500':
          description: Internal server error.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemError'
        '503':
          description: >-
            The workflows service is temporarily unavailable. Retry this request
            shortly.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemError'
      security:
        - SummationMachineAuth:
            - agent:write
components:
  schemas:
    WorkflowActivateRequest:
      properties:
        expected_revision:
          type: integer
          minimum: 0
          title: Expected Revision
          description: >-
            The revision you last read. Activation freezes the workflow as it
            stands, so a revision you have not seen is refused rather than
            frozen under your name.
      additionalProperties: false
      type: object
      required:
        - expected_revision
      title: WorkflowActivateRequest
    WorkflowActivationResponse:
      properties:
        data:
          $ref: '#/components/schemas/WorkflowActivation'
      type: object
      required:
        - data
      title: WorkflowActivationResponse
    ProblemError:
      description: >-
        Public error envelope (RFC 7807 ``application/problem+json``).


        Mirrors the body produced by :func:`api_error`. Declaring it in the
        contract

        lets generated clients type error handling instead of guessing.
      properties:
        type:
          description: URI reference identifying the problem type.
          title: Type
          type: string
        title:
          description: Short, human-readable summary of the problem type.
          title: Title
          type: string
        status:
          description: HTTP status code.
          title: Status
          type: integer
        detail:
          description: Human-readable explanation specific to this occurrence.
          title: Detail
          type: string
        code:
          description: Stable, machine-readable error code.
          title: Code
          type: string
        request_id:
          description: Correlation id, echoed in the x-request-id header.
          title: Request Id
          type: string
      required:
        - type
        - title
        - status
        - detail
        - code
        - request_id
      title: ProblemError
      type: object
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    WorkflowActivation:
      properties:
        workflow:
          $ref: '#/components/schemas/Workflow'
        version:
          $ref: '#/components/schemas/WorkflowVersion'
          description: The version this activation froze.
      type: object
      required:
        - workflow
        - version
      title: WorkflowActivation
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    Workflow:
      properties:
        id:
          type: string
          title: Id
        projectId:
          type: string
          title: Projectid
        title:
          type: string
          title: Title
        description:
          type: string
          title: Description
        ownerUserId:
          type: string
          title: Owneruserid
          description: >-
            The user the workflow runs as. Assigned at creation and never
            reassigned.
        status:
          type: string
          title: Status
          description: One of draft, active, paused, archived, unknown.
        executionFormat:
          type: string
          title: Executionformat
          description: >-
            typed_graph for workflows built from a graph document. Fixed when
            the workflow is created.
        outputFolder:
          type: string
          title: Outputfolder
        revision:
          type: integer
          title: Revision
          description: Advances on every change. Pass it back as expected_revision.
        activeVersionId:
          type: string
          title: Activeversionid
          description: >-
            The activated version this workflow currently runs, or empty if it
            has never been activated.
        graph:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Graph
          description: The editable graph document, for graph workflows.
        triggers:
          items:
            $ref: '#/components/schemas/WorkflowTrigger'
          type: array
          title: Triggers
        steps:
          items:
            $ref: '#/components/schemas/WorkflowStep'
          type: array
          title: Steps
        createdAt:
          anyOf:
            - type: string
            - type: 'null'
          title: Createdat
        updatedAt:
          anyOf:
            - type: string
            - type: 'null'
          title: Updatedat
      type: object
      required:
        - id
        - projectId
        - title
        - description
        - ownerUserId
        - status
        - executionFormat
        - outputFolder
        - revision
        - activeVersionId
        - triggers
        - steps
      title: Workflow
    WorkflowVersion:
      properties:
        id:
          type: string
          title: Id
        workflowId:
          type: string
          title: Workflowid
        versionNumber:
          type: integer
          title: Versionnumber
        executionFormat:
          type: string
          title: Executionformat
        sourceRevision:
          type: integer
          title: Sourcerevision
          description: The workflow revision this version was frozen from.
        createdBy:
          type: string
          title: Createdby
        createdAt:
          anyOf:
            - type: string
            - type: 'null'
          title: Createdat
      type: object
      required:
        - id
        - workflowId
        - versionNumber
        - executionFormat
        - sourceRevision
        - createdBy
      title: WorkflowVersion
      description: >-
        An immutable snapshot of what a workflow runs, minted by activation.


        Metadata ONLY, deliberately: the frozen document itself is not
        projected. What activation

        writes into ``workflow_versions.definition_json`` is an executor
        artifact, not a caller

        document — TypedWorkflowDefinitionFreezer writes the compiled execution
        plan alongside the

        graph, and every skill node's resolved manifest with it
        (``packagePath``, ``packageDigest``,

        and per-file ``fileId``/``fileVersionId``/``contentHash``). Those are
        internal wire format

        and project-internal paths, which no public payload may carry (see
        AGENTS.md). The document

        a caller AUTHORED is the workflow's own ``graph``, which GET
        /v1/workflows/{id} returns; a

        version answers a different question — WHICH revision is live and when
        it shipped — and

        ``source_revision`` against the workflow's ``revision`` is the whole of
        that answer. The

        executor template a version is pinned to is internal for the same reason
        and is likewise

        never projected.
    WorkflowTrigger:
      properties:
        id:
          type: string
          title: Id
        type:
          type: string
          title: Type
          description: schedule, webhook, api, data_event, or unknown.
        label:
          type: string
          title: Label
        enabled:
          type: boolean
          title: Enabled
        params:
          additionalProperties: true
          type: object
          title: Params
          description: Parameter values this trigger passes to the workflow.
        schedule:
          anyOf:
            - $ref: '#/components/schemas/WorkflowSchedule'
            - type: 'null'
          description: Cadence, for schedule triggers.
      type: object
      required:
        - id
        - type
        - label
        - enabled
        - params
      title: WorkflowTrigger
    WorkflowStep:
      properties:
        id:
          type: string
          title: Id
        position:
          type: integer
          title: Position
        type:
          type: string
          title: Type
          description: playbook, email_delivery, slack_delivery, or unknown.
        targetFileId:
          type: string
          title: Targetfileid
          description: Playbook or attachment file this step acts on.
        config:
          additionalProperties: true
          type: object
          title: Config
        targets:
          items:
            $ref: '#/components/schemas/WorkflowStepTarget'
          type: array
          title: Targets
      type: object
      required:
        - id
        - position
        - type
        - targetFileId
        - config
        - targets
      title: WorkflowStep
      description: >-
        One step of a legacy step-shaped workflow. Graph workflows carry a graph
        instead.
    WorkflowSchedule:
      properties:
        type:
          type: string
          title: Type
          description: >-
            Stored cadence kind. Writes accept one_time, daily, weekly, and
            monthly; existing workflows may read as cron, interval, biweekly, or
            month_end until their cadence is replaced.
        zoneId:
          type: string
          title: Zoneid
          description: IANA timezone the schedule's local times are read in.
        cronExpression:
          anyOf:
            - type: string
            - type: 'null'
          title: Cronexpression
        everyMinutes:
          anyOf:
            - type: integer
            - type: 'null'
          title: Everyminutes
        timeOfDay:
          anyOf:
            - type: string
            - type: 'null'
          title: Timeofday
          description: Local time of day, in this schedule's timezone.
        runDate:
          anyOf:
            - type: string
            - type: 'null'
          title: Rundate
        anchorDate:
          anyOf:
            - type: string
            - type: 'null'
          title: Anchordate
        daysOfWeek:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Daysofweek
          description: Uppercase weekday names, for example MONDAY.
        dayOfMonth:
          anyOf:
            - type: integer
            - type: 'null'
          title: Dayofmonth
        interval:
          anyOf:
            - type: integer
            - type: 'null'
          title: Interval
          description: >-
            How many periods apart the cadence repeats, for cadences that can
            skip periods.
      type: object
      required:
        - type
        - zoneId
      title: WorkflowSchedule
      description: >-
        A trigger's stored cadence, including legacy shapes that are now
        read-only.


        Editor-supported cadences are field-for-field invertible into
        ``WorkflowTriggerSchedule``.

        Broader scheduler cadences remain visible so existing workflows can be
        diagnosed, but a write

        must replace them with an editor-supported shape. ``zoneId`` lives HERE
        rather than on the

        trigger because the write model carries the timezone inside the
        schedule; putting it one level

        up would drop the timezone on every supported round trip that copied the
        schedule across.
    WorkflowStepTarget:
      properties:
        kind:
          type: string
          enum:
            - email_to
            - email_cc
            - email_bcc
            - slack_channel
            - slack_user
            - unknown
          title: Kind
          description: >-
            email_to, email_cc, email_bcc, slack_channel, slack_user, or
            unknown.
        value:
          type: string
          title: Value
          description: Email address, or Slack channel or user id.
        displayName:
          type: string
          title: Displayname
      type: object
      required:
        - kind
        - value
        - displayName
      title: WorkflowStepTarget
  securitySchemes:
    SummationMachineAuth:
      type: oauth2
      flows:
        clientCredentials:
          scopes:
            agent:read: agent:read
            agent:write: agent:write
          tokenUrl: /v1/auth/m2m/token

````