---
title: "promoteVersion"
method: POST
path: "/v1/app/{appId}/promote-to/{version}"
tags: ["App Installation"]
---

# promoteVersion

`POST /v1/app/{appId}/promote-to/{version}`

Update an installed app to a new version

## Path parameters

- `appId` string, required
- `version` string, required

## Response `200`

App successfully promoted to new version

- Installation — Information about the installed app. Has configuration data of the installed version
  - `app_id` string, required — ID of the app configuration
  - `installer_org_id` string, required — Unique identifier for the organization the app is installed in
  - `owner_org_id` string — Organization ID of the app creator
  - `enabled` boolean, required — Flag to indicate if the app is enabled. Enabled is set to true when required option values are set.
  - `name` string, required — Name of the app
  - `option_values` OptionsRef[] — Configuration values for the app components
    - `component_id` string, required — ID of the component these values are for
    - `options` Option[], required
      - `key` string, required — Key matching a config_option from the component
      - `value` union, required — The configured value for this option
        - string
        - boolean
        - number
  - `components` BaseComponent[], required — List of component configurations for the installed version
    - union
      - object
        - `id` string, required — Unique identifier for the component
        - `name` object — Name of the component
          - `en` string, nullable — English translation
          - `de` string, required — German translation
        - `description` object — Description of the component
          - `en` string, nullable — English translation
          - `de` string, required — German translation
        - `options` Options[] — List of options for the app component
          - `key` string, required — Unique identifier for this configuration option
          - `label` string — Human-readable label for the configuration option
          - `required` boolean — Flag to indicate if this option is required
          - `description` string — Detailed description of what this configuration option does
          - `value` union — The configured value for this option. Is only present when the component is installed.
            - string
            - boolean
            - number
          - `type` 'text' | 'number' | 'boolean' | 'secret', required
        - `surfaces` object
        - `component_type` 'CUSTOM_JOURNEY_BLOCK', required
        - `configuration` JourneyBlockConfig, required
          - `override_dev_mode` OverrideDevMode — Override URL when app is in dev mode
            - `override_url` string — URL of the web component object in dev mode
          - `component_url` string, required — URL of the web component object
          - `component_tag` string, required — Custom element tag for the component
          - `component_args` JourneyBlockComponentArgs[] — Arguments to pass to the component
            - union
              - …
          - `component_size` number — Size of the bundle in bytes
          - `component_mapping` object — Define data which is mapped to entity mapping ui blocks
      - object
        - `id` string, required — Unique identifier for the component
        - `name` object — Name of the component
          - `en` string, nullable — English translation
          - `de` string, required — German translation
        - `description` object — Description of the component
          - `en` string, nullable — English translation
          - `de` string, required — German translation
        - `options` Options[] — List of options for the app component
          - `key` string, required — Unique identifier for this configuration option
          - `label` string — Human-readable label for the configuration option
          - `required` boolean — Flag to indicate if this option is required
          - `description` string — Detailed description of what this configuration option does
          - `value` union — The configured value for this option. Is only present when the component is installed.
            - string
            - boolean
            - number
          - `type` 'text' | 'number' | 'boolean' | 'secret', required
        - `surfaces` object
        - `component_type` 'PORTAL_EXTENSION', required
        - `origin` 'END_CUSTOMER_PORTAL' | 'INSTALLER_PORTAL'
        - `configuration` PortalExtensionConfig, required
          - `id` string
          - `hooks` object[]
            - `id` string
            - `type` string
            - `name` TranslatedString
              - …
            - `interval` string[]
            - `auth` PortalAuth
              - …
            - `call` object
              - …
          - `links` object[]
            - `id` string
            - `type` string
            - `name` TranslatedString
              - …
            - `description` TranslatedString
              - …
            - `condition` string
            - `auth` PortalAuth
              - …
            - `redirect` object
              - …
      - object
        - `id` string, required — Unique identifier for the component
        - `name` object — Name of the component
          - `en` string, nullable — English translation
          - `de` string, required — German translation
        - `description` object — Description of the component
          - `en` string, nullable — English translation
          - `de` string, required — German translation
        - `options` Options[] — List of options for the app component
          - `key` string, required — Unique identifier for this configuration option
          - `label` string — Human-readable label for the configuration option
          - `required` boolean — Flag to indicate if this option is required
          - `description` string — Detailed description of what this configuration option does
          - `value` union — The configured value for this option. Is only present when the component is installed.
            - string
            - boolean
            - number
          - `type` 'text' | 'number' | 'boolean' | 'secret', required
        - `surfaces` object
          - `flow_action_config` AppBridgeSurfaceConfig
            - `app_url` string — URL of the uploaded App Bridge App. This is the entrypoint for the app
            - `zip_url` string — URL of the uploaded zip file containing the app
            - `override_url` string — URL of the app in dev mode
        - `component_type` 'CUSTOM_FLOW_ACTION', required
        - `configuration` CustomFlowConfig, required
          - `name` string — Name of the custom action
          - `description` string — Description of the custom action
          - `type` 'external_integration', required
          - `external_integration_settings` object
            - `url` string — URL to call
            - `headers` object
      - object
        - `id` string, required — Unique identifier for the component
        - `name` object — Name of the component
          - `en` string, nullable — English translation
          - `de` string, required — German translation
        - `description` object — Description of the component
          - `en` string, nullable — English translation
          - `de` string, required — German translation
        - `options` Options[] — List of options for the app component
          - `key` string, required — Unique identifier for this configuration option
          - `label` string — Human-readable label for the configuration option
          - `required` boolean — Flag to indicate if this option is required
          - `description` string — Detailed description of what this configuration option does
          - `value` union — The configured value for this option. Is only present when the component is installed.
            - string
            - boolean
            - number
          - `type` 'text' | 'number' | 'boolean' | 'secret', required
        - `surfaces` object
        - `component_type` 'ERP_INFORM_TOOLKIT', required
        - `configuration` object, required
          - `type` 'inbound' | 'outbound', required
  - `installed_version` string, required — Version of the app that is installed
  - `role` string — The name of the role the app can use to access APIs
  - `blueprint_ref` BlueprintRef
    - `manifest_id` string — ID of the blueprint
    - `job_id` string — ID of the job that created the blueprint
  - `installation_audit` object — Audit information for the app
    - `created_at` string — Timestamp of the creation
    - `created_by` string — User ID of the creator
    - `updated_at` string — Timestamp of the last update
    - `updated_by` string — User ID of the last updater
  - `_manifest` string[] — Manifest ID used to create/update the entity

## Other responses

- `400` — Invalid version or version not available
- `404` — App installation not found

---

[API](https://skmtc.net/epilot/apis/app-api.md) · [All operations](https://skmtc.net/epilot/apis/app-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/epilot/app-api/revisions/03b93188c6d4/schema)
