---
title: "createComponent"
method: POST
path: "/v1/app-configurations/{appId}/versions/{version}/components"
tags: ["App Configuration"]
---

# createComponent

`POST /v1/app-configurations/{appId}/versions/{version}/components`

Patch an existing app version to create/add a component

## Path parameters

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

## Request body

- 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
          - object
            - `key` string, required — Unique identifier for this component arg
            - `type` 'text', required
            - `required` boolean — Flag to indicate if this option is required
            - `description` object — Description of what this component arg does
              - …
            - `label` object, required — Human-readable label for the component arg
              - …
          - object
            - `key` string, required — Unique identifier for this component arg
            - `type` 'boolean', required
            - `required` boolean — Flag to indicate if this option is required
            - `description` object — Description of what this component arg does
              - …
            - `label` object, required — Human-readable label for the component arg
              - …
          - object
            - `key` string, required — Unique identifier for this component arg
            - `type` 'enum', required
            - `required` boolean — Flag to indicate if this option is required
            - `description` object — Description of what this component arg does
              - …
            - `label` object, required — Human-readable label for the component arg
              - …
            - `isMulti` boolean — If true, allows selection of multiple values
            - `options` object[], required — List of options for enum type
              - …
      - `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
          - `en` string, nullable — English translation
          - `de` string, required — German translation
        - `interval` string[]
        - `auth` PortalAuth
          - `type` string
          - `url` string
          - `method` string
          - `headers` object
        - `call` object
          - `url` string
          - `headers` object
          - `params` object
      - `links` object[]
        - `id` string
        - `type` string
        - `name` TranslatedString
          - `en` string, nullable — English translation
          - `de` string, required — German translation
        - `description` TranslatedString
          - `en` string, nullable — English translation
          - `de` string, required — German translation
        - `condition` string
        - `auth` PortalAuth
          - `type` string
          - `url` string
          - `method` string
          - `headers` object
        - `redirect` object
          - `url` string
          - `params` 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

## Response `200`

Component created successfully

- object
  - `component` 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
            - object
              - …
            - object
              - …
            - object
              - …
        - `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
            - `en` string, nullable — English translation
            - `de` string, required — German translation
          - `interval` string[]
          - `auth` PortalAuth
            - `type` string
            - `url` string
            - `method` string
            - `headers` object
          - `call` object
            - `url` string
            - `headers` object
            - `params` object
        - `links` object[]
          - `id` string
          - `type` string
          - `name` TranslatedString
            - `en` string, nullable — English translation
            - `de` string, required — German translation
          - `description` TranslatedString
            - `en` string, nullable — English translation
            - `de` string, required — German translation
          - `condition` string
          - `auth` PortalAuth
            - `type` string
            - `url` string
            - `method` string
            - `headers` object
          - `redirect` object
            - `url` string
            - `params` 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

## Other responses

- `400` — Invalid version format
- `404` — Version 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)
