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

# Get organization team workflow

> Required membership role: `team admin`. PBAC permission: `workflow.readTeamWorkflows`. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control. If accessed using an OAuth access token, the `TEAM_WORKFLOW_READ` scope is required.



## OpenAPI

````yaml /api-reference/v2/openapi.json get /v2/organizations/{orgId}/teams/{teamId}/workflows/{workflowId}
openapi: 3.0.0
info:
  title: Cal.com API v2
  description: ''
  version: 1.0.0
  contact: {}
servers: []
security: []
tags: []
paths:
  /v2/organizations/{orgId}/teams/{teamId}/workflows/{workflowId}:
    get:
      tags:
        - Orgs / Teams / Workflows
      summary: Get organization team workflow
      description: >-
        Required membership role: `team admin`. PBAC permission:
        `workflow.readTeamWorkflows`. Learn more about API access control at
        https://cal.com/docs/api-reference/v2/access-control. If accessed using
        an OAuth access token, the `TEAM_WORKFLOW_READ` scope is required.
      operationId: OrganizationTeamWorkflowsController_getWorkflowById
      parameters:
        - name: cal-api-version
          in: header
          description: >-
            Must be set to 2026-09-22 to use this version of the workflow
            endpoints.
          required: true
          schema:
            type: string
            example: '2026-09-22'
        - name: Authorization
          in: header
          description: >-
            For non-platform customers - value must be `Bearer <token>` where
            `<token>` is api key prefixed with cal_
          required: false
          schema:
            type: string
        - name: x-cal-secret-key
          in: header
          description: For platform customers - OAuth client secret key
          required: false
          schema:
            type: string
        - name: x-cal-client-id
          in: header
          description: For platform customers - OAuth client ID
          required: false
          schema:
            type: string
        - name: teamId
          required: true
          in: path
          schema:
            type: number
        - name: workflowId
          required: true
          in: path
          schema:
            type: number
        - name: orgId
          required: true
          in: path
          schema:
            type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetEventTypeWorkflowOutput_2026_09_22'
components:
  schemas:
    GetEventTypeWorkflowOutput_2026_09_22:
      type: object
      properties:
        status:
          enum:
            - success
            - error
          type: string
          description: Indicates the status of the response
          example: success
        data:
          $ref: '#/components/schemas/EventTypeWorkflowOutput_2026_09_22'
      required:
        - status
        - data
    EventTypeWorkflowOutput_2026_09_22:
      type: object
      properties:
        id:
          type: number
          description: Unique identifier of the workflow
          example: 101
        name:
          type: string
          description: Name of the workflow
          example: Platform Test Workflow
        userId:
          type: number
          description: ID of the user who owns the workflow (if not team-owned)
          example: 2313
        teamId:
          type: number
          description: ID of the team owning the workflow
          example: 4214321
        createdAt:
          type: string
          description: Timestamp of creation
          example: '2024-05-12T10:00:00.000Z'
          format: date-time
        updatedAt:
          type: string
          description: Timestamp of last update
          example: '2024-05-12T11:30:00.000Z'
          format: date-time
        type:
          type: string
          enum:
            - event-type
          description: type of the workflow
          example: event-type
          default: event-type
        activation:
          description: Activation settings for the workflow
          allOf:
            - $ref: '#/components/schemas/EventTypeWorkflowActivationOutputDto'
        trigger:
          description: Trigger configuration
          allOf:
            - $ref: '#/components/schemas/EventTypeWorkflowTriggerOutputDto'
        steps:
          type: array
          items:
            oneOf:
              - $ref: '#/components/schemas/EventTypeWorkflowStepOutputDto'
                title: Step
              - $ref: '#/components/schemas/PathsWorkflowStepOutputDto_2026_09_22'
                title: Paths step
              - $ref: '#/components/schemas/FilterWorkflowStepOutputDto_2026_09_22'
                title: Filter step
              - $ref: '#/components/schemas/DelayWorkflowStepOutputDto'
                title: Delay step
              - $ref: '#/components/schemas/LeadEnrichmentWorkflowStepOutputDto'
                title: Lead enrichment step
      required:
        - id
        - name
        - type
        - activation
        - trigger
        - steps
    EventTypeWorkflowActivationOutputDto:
      type: object
      properties:
        isActiveOnAllEventTypes:
          type: boolean
          default: false
          description: >-
            Whether the workflow is active for all event types associated with
            the team/user
          example: false
        activeOnEventTypeIds:
          description: >-
            List of Event Type IDs the workflow is specifically active on (if
            not active on all)
          example:
            - 698191
            - 698192
          type: array
          items:
            type: number
    EventTypeWorkflowTriggerOutputDto:
      type: object
      properties:
        type:
          enum:
            - beforeEvent
            - eventCancelled
            - newEvent
            - afterEvent
            - rescheduleEvent
            - afterHostsCalVideoNoShow
            - afterGuestsCalVideoNoShow
            - bookingRejected
            - bookingRequested
            - bookingPaymentInitiated
            - bookingPaid
            - bookingNoShowUpdated
          type: string
          description: Trigger type for the workflow
          example: beforeEvent
        offset:
          description: Offset details (present for BEFORE_EVENT/AFTER_EVENT)
          allOf:
            - $ref: '#/components/schemas/WorkflowTriggerOffsetOutputDto'
      required:
        - type
    EventTypeWorkflowStepOutputDto:
      type: object
      properties:
        id:
          type: number
          description: Unique identifier of the step
          example: 67244
        stepNumber:
          type: number
          description: Step number in the workflow sequence
          example: 1
        recipient:
          type: string
          description: Intended recipient type
          example: const
          enum:
            - const
            - attendee
            - email
            - phone_number
        email:
          type: string
          description: Verified email address if action is EMAIL_ADDRESS
          example: notifications@example.com
        phone:
          type: string
          description: Verified Phone if action is SMS_NUMBER or WHATSAPP_NUMBER
        phoneRequired:
          type: boolean
          default: false
          description: >-
            whether or not the attendees are required to provide their phone
            numbers when booking
          example: true
        template:
          enum:
            - reminder
            - custom
            - rescheduled
            - completed
            - rating
            - cancelled
          type: string
          description: Template type used
          example: reminder
        includeCalendarEvent:
          type: boolean
          default: false
          description: Whether a calendar event (.ics) was included (for email actions)
          example: true
        skipNoShowAttendees:
          type: boolean
          default: false
          description: >-
            Whether an after-event attendee rating email skips attendees
            currently marked as no-show.
          example: false
        sender:
          type: string
          description: Displayed sender name used for this step
          example: Cal.com Notifications
        message:
          description: Message content for this step
          allOf:
            - $ref: '#/components/schemas/WorkflowMessageOutputDto'
        autoTranslateEnabled:
          type: boolean
          description: >-
            Whether auto-translation of the workflow step content for attendees
            is enabled. Only available for organizations.
          example: false
          default: false
        sourceLocale:
          nullable: true
          enum:
            - ar
            - ca
            - de
            - es
            - eu
            - he
            - id
            - ja
            - lv
            - pl
            - ro
            - sr
            - th
            - vi
            - az
            - cs
            - el
            - es-419
            - fi
            - hr
            - it
            - km
            - nl
            - pt
            - ru
            - sv
            - tr
            - zh-CN
            - bg
            - da
            - en
            - et
            - fr
            - hu
            - iw
            - ko
            - 'no'
            - pt-BR
            - sk
            - sl
            - ta
            - uk
            - zh-TW
            - bn
          type: string
          description: >-
            The source locale of the workflow step content used for
            auto-translation (e.g. 'en').
          example: en
        pathId:
          type: string
          description: >-
            Id of the conditional path this step belongs to; the step only runs
            when that path's conditions match. Absent for unconditional steps.
          example: 3f4c11a2-9b7e-4d15-8f0a-2f7de41b6c01
        action:
          enum:
            - email_host
            - email_attendee
            - email_address
            - sms_attendee
            - sms_number
            - whatsapp_attendee
            - whatsapp_number
            - cal_ai_phone_call
          type: string
          description: Action to perform
          example: email_host
      required:
        - id
        - stepNumber
        - recipient
        - template
        - sender
        - message
        - action
    PathsWorkflowStepOutputDto_2026_09_22:
      type: object
      properties:
        id:
          type: number
          description: Unique identifier of the step
          example: 67244
        stepNumber:
          type: number
          description: Step number in the workflow sequence
          example: 1
        action:
          type: string
          enum:
            - paths
          description: >-
            The step that splits the workflow into conditional paths; include
            this step by id when updating the workflow's steps.
          example: paths
        pathId:
          type: string
          description: >-
            Id of the conditional path this split itself belongs to, when it
            sits inside a filter's path. Absent at the top level.
          example: 8b2f0c31-4a6d-4f89-b1c5-6d0e8a4f2b73
        paths:
          type: array
          items:
            $ref: '#/components/schemas/WorkflowStepPathOutputDto_2026_09_22'
      required:
        - id
        - stepNumber
        - action
        - paths
    FilterWorkflowStepOutputDto_2026_09_22:
      type: object
      properties:
        id:
          type: number
          description: Unique identifier of the step
          example: 67244
        stepNumber:
          type: number
          description: Step number in the workflow sequence
          example: 1
        action:
          type: string
          enum:
            - filter
          description: >-
            The step that gates every step after it on a set of conditions;
            include this step by id when updating the workflow's steps.
          example: filter
        gatedPathId:
          type: string
          description: >-
            Id of the path this filter gates. Every step carrying this as its
            pathId runs only when the filter's conditions match.
          example: 3f4c11a2-9b7e-4d15-8f0a-2f7de41b6c01
        conditions:
          description: >-
            The conditions every following step is gated on. A filter with no
            conditions passes everything.
          type: array
          items:
            $ref: '#/components/schemas/WorkflowPathConditionOutputDto'
        pathId:
          type: string
          description: >-
            Id of the conditional path this filter itself belongs to, when it
            sits inside a split branch or another filter. Absent at the top
            level.
          example: 8b2f0c31-4a6d-4f89-b1c5-6d0e8a4f2b73
        matches:
          enum:
            - all
            - any
            - none
            - not_all
          type: string
          description: >-
            all: every condition matches; any: at least one matches; none: no
            conditions match; not_all: at least one condition does not match.
          example: all
      required:
        - id
        - stepNumber
        - action
        - gatedPathId
        - conditions
        - matches
    DelayWorkflowStepOutputDto:
      type: object
      properties:
        id:
          type: number
          description: Unique identifier of the step
          example: 67244
        stepNumber:
          type: number
          description: Step number in the workflow sequence
          example: 1
        action:
          type: string
          enum:
            - delay
          description: >-
            A wait before the next sending step. Its duration is read-only
            through the API and can only be edited in the Cal.com app; include
            this step by id when updating the workflow's steps.
          example: delay
        delay:
          description: >-
            How long this step waits. Absent when the step has no stored
            duration.
          allOf:
            - $ref: '#/components/schemas/WorkflowDelayDurationOutputDto'
        pathId:
          type: string
          description: >-
            Id of the conditional path this delay belongs to, when it sits
            inside a split branch or a filter. Absent at the top level.
          example: 8b2f0c31-4a6d-4f89-b1c5-6d0e8a4f2b73
      required:
        - id
        - stepNumber
        - action
    LeadEnrichmentWorkflowStepOutputDto:
      type: object
      properties:
        id:
          type: number
          description: Unique identifier of the step
          example: 67244
        stepNumber:
          type: number
          description: Step number in the workflow sequence
          example: 1
        action:
          type: string
          enum:
            - lead_enrichment
          description: >-
            The step that looks the attendee or form submitter up with the lead
            enrichment provider when the workflow runs; the steps after it can
            use the result in their conditions and messages. It can only be
            added or configured in the Cal.com app; include this step by id when
            updating the workflow's steps.
          example: lead_enrichment
        pathId:
          type: string
          description: >-
            Id of the conditional path this step belongs to, when it sits inside
            a split branch or a filter. Absent at the top level.
          example: 8b2f0c31-4a6d-4f89-b1c5-6d0e8a4f2b73
      required:
        - id
        - stepNumber
        - action
    WorkflowTriggerOffsetOutputDto:
      type: object
      properties:
        value:
          type: number
          description: Time value for offset
          example: 24
        unit:
          enum:
            - hour
            - minute
            - day
          type: string
          description: Unit for the offset time
          example: hour
      required:
        - value
        - unit
    WorkflowMessageOutputDto:
      type: object
      properties:
        subject:
          type: string
          description: Subject of the message
          example: >-
            Reminder: Your Meeting {EVENT_NAME} - {EVENT_DATE_ddd, MMM D, YYYY
            h:mma} with Cal.com
        html:
          type: string
          description: HTML content of the message
          example: <p>Reminder for {EVENT_NAME}.</p>
        text:
          type: string
          description: Text content of the message (used for SMS/WhatsApp)
          example: Reminder for {EVENT_NAME}.
      required:
        - subject
    WorkflowStepPathOutputDto_2026_09_22:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the path
          example: 3f4c11a2-9b7e-4d15-8f0a-2f7de41b6c01
        name:
          type: string
          description: Name of the path
          example: Enterprise leads
        position:
          type: number
          description: Position of the path among the branches of its step, starting at 0
          example: 0
        conditions:
          description: >-
            The conditions deciding whether this path matches. A path with no
            conditions always matches.
          type: array
          items:
            $ref: '#/components/schemas/WorkflowPathConditionOutputDto'
        matches:
          enum:
            - all
            - any
            - none
            - not_all
          type: string
          description: >-
            all: every condition matches; any: at least one matches; none: no
            conditions match; not_all: at least one condition does not match.
          example: all
      required:
        - id
        - name
        - position
        - conditions
        - matches
    WorkflowPathConditionOutputDto:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the condition
          example: b1d2e3f4-5a6b-4c7d-8e9f-0a1b2c3d4e5f
        field:
          type: string
          description: >-
            What the condition reads: a booking question identifier, a routing
            form field id, or an event field id.
          example: company-size
        operator:
          type: string
          description: >-
            How the field is compared, as the conditions editor stores it. The
            operator belongs to the field's type: text, email, phone and number
            fields use `equal`, `not_equal`, `like`, `greater`, `between` and
            the like; a select uses `select_equals` or `select_any_in`; a
            multiselect uses `multiselect_equals`. To render an operator with
            the label the editor shows, resolve the field's type from the
            booking questions of the event types this workflow is active on, or
            from the routing form's fields for a form workflow.
          example: select_equals
          enum:
            - between
            - equal
            - greater
            - greater_or_equal
            - is_empty
            - is_not_empty
            - less
            - less_or_equal
            - like
            - multiselect_equals
            - multiselect_not_equals
            - not_between
            - not_equal
            - not_like
            - select_any_in
            - select_equals
            - select_not_any_in
            - select_not_equals
            - starts_with
        values:
          description: >-
            The values the field is compared against. Empty for operators that
            take none, such as is_empty.
          example:
            - enterprise
          type: array
          items:
            type: string
      required:
        - id
        - field
        - operator
        - values
    WorkflowDelayDurationOutputDto:
      type: object
      properties:
        value:
          type: number
          description: How long to wait before the next sending step
          example: 2
        unit:
          enum:
            - hour
            - minute
            - day
          type: string
          description: Unit for the delay duration
          example: hour
      required:
        - value
        - unit

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.