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

# Create a process promotion request

> Creates a request to promote a process from one environment to another. `OriginEnvironment` and `TargetEnvironment` must be IDs of existing environments (from the Environments endpoints). `Title` and `Rationale` are limited to 50 characters.



## OpenAPI

````yaml /developers/flowforma-governance-api/openapi.json post /v1/processes
openapi: 3.0.3
info:
  title: FlowForma Governance API
  version: 1.0.0
  description: >-
    REST API for FlowForma Governance. Manage app environments, environment
    requests, process promotion requests, security templates, settings, and API
    connection credentials across your FlowForma tenant.
servers:
  - url: https://api.flowforma.com
    description: Production
security:
  - BearerAuth: []
  - IntegrationToken: []
tags:
  - name: Authorization
    description: Obtain an access token.
  - name: Environments
    description: Read FlowForma app environments, their flows and lists.
  - name: Environment Requests
    description: Create and promote requests for new FlowForma app environments.
  - name: Processes
    description: Create and promote process promotion requests between environments.
  - name: Process Actions
    description: Create and update forms in a live FlowForma environment.
  - name: Security Templates
    description: Read and create security templates used by environment requests.
  - name: Settings
    description: Read governance settings.
  - name: API Connections
    description: Set credentials on the subscription's stored API connections.
paths:
  /v1/processes:
    post:
      tags:
        - Processes
      summary: Create a process promotion request
      description: >-
        Creates a request to promote a process from one environment to another.
        `OriginEnvironment` and `TargetEnvironment` must be IDs of existing
        environments (from the Environments endpoints). `Title` and `Rationale`
        are limited to 50 characters.
      operationId: PostProcesses
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProcessCreate'
            example:
              Title: Promote Expenses v2
              Rationale: Signed off for production
              EnvironmentType: Production
              OriginEnvironment: b1c2d3e4-5717-4562-b3fc-2c963f66afa6
              TargetEnvironment: d4e5f6a7-5717-4562-b3fc-2c963f66afa6
              TargetEnvProcessID: 42
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Process'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    ProcessCreate:
      type: object
      properties:
        Title:
          type: string
          description: Request title (max 50 characters).
        Rationale:
          type: string
          description: Reason for the promotion (max 50 characters).
        EnvironmentType:
          $ref: '#/components/schemas/EnvironmentTypeEnum'
        OriginEnvironment:
          type: string
          format: uuid
          description: ID of the source environment.
        TargetEnvironment:
          type: string
          format: uuid
          description: ID of the destination environment.
        TargetEnvProcessID:
          type: integer
          description: >-
            ID of the process in the target environment, if updating an existing
            one.
        ListDetails:
          $ref: '#/components/schemas/ListDetails'
      required:
        - Title
        - Rationale
        - EnvironmentType
        - OriginEnvironment
        - TargetEnvironment
    Process:
      type: object
      properties:
        RequestID:
          type: string
          format: uuid
        Title:
          type: string
        Rationale:
          type: string
        EnvironmentType:
          $ref: '#/components/schemas/EnvironmentTypeEnum'
        RequestStatus:
          $ref: '#/components/schemas/RequestStatusEnum'
        OriginEnvironment:
          type: string
          format: uuid
        TargetEnvironment:
          type: string
          format: uuid
        TargetEnvProcessID:
          type: integer
          nullable: true
        ListDetails:
          $ref: '#/components/schemas/ListDetails'
        Created:
          type: string
          format: date-time
          nullable: true
        Author:
          type: string
    EnvironmentTypeEnum:
      type: string
      enum:
        - Sandbox
        - UAT
        - Production
        - NA
      description: Environment type.
    ListDetails:
      type: array
      items:
        $ref: '#/components/schemas/ListDetail'
    RequestStatusEnum:
      type: string
      enum:
        - AwaitingApproval
        - Accepted
        - NotAccepted
        - Processing
        - Completed
        - Failed
      description: Request lifecycle status.
    Error:
      type: object
      description: Standard error body.
      properties:
        code:
          type: string
          description: HTTP status code as a string.
        message:
          type: string
          description: Human-readable error message.
      required:
        - code
        - message
      example:
        code: '400'
        message: Page does not exist.
    ListDetail:
      type: object
      properties:
        Title:
          type: string
          description: Current list title.
        URL:
          type: string
          description: Current list URL.
        NewListTitle:
          type: string
          description: Title to give the list in the target environment.
        NewLocationURL:
          type: string
          description: Target location URL.
        NewLocationPick:
          type: string
          enum:
            - SC
            - AWP
            - AW
            - RT
          description: >-
            Where to place the list in the target: `SC` site collection root
            web, `AWP` app web parent site, `AW` app web site (FlowForma page),
            `RT` retain the current list location defined in the flow.
        CopyItems:
          type: boolean
          description: Whether to copy the list's items as well as its structure.
  responses:
    BadRequest:
      description: Bad request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: The specified resource was not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        Azure AD app-only access token. Obtain it from GET /v1/oauthToken and
        send it as the `Authorization: Bearer {token}` header.
    IntegrationToken:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        FlowForma integration access token, copied from FlowForma Settings. Send
        it as the raw `Authorization` header value, without a `Bearer` prefix.

````