---
title: "Duplicate a Custom Form"
method: POST
path: "/customform.duplicate/{typedId}"
tags: ["Custom Forms"]
---

# Duplicate a Custom Form

`POST /customform.duplicate/{typedId}`

Creates a copy of the specified Custom Form. The copy includes inputs, outputs, and embedded objects. Returns the duplicated Custom Form.<p>

Duplicated Custom Form fields:<p>

**The Custom Form has an origin and it is not deleted**

`originCustomFormId`, `originDeleted`, `originLabel`, `originUniqueName` fields in the duplicated CFO object contain a copy of corresponding fields from the original Custom Form.

**The Custom Form origin has been deleted**

`originCustomFormId` is the id of the original Custom Form, `originDeleted` set to `true`. `originLabel` and `originUniqueName` fields are null.

**The Custom Form does not have an origin** (the CFO is not duplicated)

`originCustomFormId`, `originDeleted`, `originLabel`, `originUniqueName` fields have a `null` value.

## Request body

- object

## Response `200`

OK

- object
  - `response` object
    - `node` string
    - `data` CustomForm[]
      - `outputs` object[]
        - `resultName` string
        - `resultLabel` string
        - `result` integer, nullable
        - `excludeFromExport` boolean
        - `warnings` unknown[], nullable
          - unknown
        - `alertMessage` string, nullable
        - `alertType` 'CRITICAL' | 'RED' | 'YELLOW', nullable
        - `displayOptions` integer, nullable
        - `formatType` 'NUMERIC' | 'NUMERIC_LONG' | 'MONEY' | 'PERCENT' | 'TEXT' | 'MONEY_EUR' | 'MONEY_USD' | 'MONEY_GBP' | 'MONEY_JPY' | 'MONEY_CHF' | 'MONEY_PLN' | 'DATETIME' | 'DATE' | 'INTEGER' | 'LINK' | 'COMPLEX' | 'SPARKLINE'
        - `suffix` string, nullable
        - `resultType` string, nullable
        - `cssProperties` string, nullable
        - `userGroup` string, nullable
        - `resultGroup` string, nullable
        - `overrideValueOptions` unknown[], nullable
          - unknown
        - `overrideAllowEmpty` boolean
        - `labelTranslations` string, nullable
        - `overridable` boolean
        - `overridden` boolean
        - `resultDescription` string, nullable
      - `createdByName` string
      - `typedId` string, nullable
      - `inputs` object[]
        - `name` string
        - `label` string, nullable
        - `lookupTableId` string, nullable
        - `url` string, nullable
        - `type` string
        - `value` integer, nullable
        - `valueHint` string, nullable
        - `readOnly` boolean, nullable
        - `filter` object, nullable
          - `property1` object
          - `property2` object
        - `parameterGroup` string, nullable
        - `required` boolean, nullable
        - `labelTranslations` string, nullable
        - `addUnknownValues` boolean, nullable
        - `typedId` string, nullable
        - `alwaysEditable` boolean, nullable
        - `inputs` object[]
        - `parameterConfig` object
          - `property1` object, nullable
          - `property2` object, nullable
        - `formattingOptions` object
          - `property1` object, nullable
          - `property2` object, nullable
        - `valueOptions` string[], nullable
      - `workflowStatus` 'DRAFT' | 'SUBMITTED' | 'DENIED' | 'APPROVED' | 'NO_APPROVAL_REQUIRED' | 'WITHDRAWN' | 'INVALIDATED'
      - `lastUpdateDate` string
      - `serverMessagesExtended` object[]
        - `key` string
        - `message` string
        - `source` string
      - `customFormTypeObject` object, nullable
        - `version` integer
        - `typedId` string, nullable
        - `uniqueName` string
        - `label` string
        - `headerFormulaName` string
        - `workflowFormulaName` string
        - `userGroupEdit` string, nullable
        - `userGroupViewDetails` string
        - `embedded` boolean
        - `supportedParentTypeCodes` string[]
        - `module` 'PRICESETTING' | 'QUOTING' | 'ANALYTICS' | 'ADMIN' | 'WORKFLOW' | 'REBATES' | 'AGREEMENTSPROMOTIONS' | 'OPTIMIZATION' | 'CHANNELMANAGEMENT' | 'MASTERDATA' | 'CONFIGURATION' | 'DASHBOARDS' | 'PROCESSES' | 'SALESCOMPENSATION' | 'CUSTOM_FORM' | 'ACTIONABLEINSIGHTS'
        - `moduleCategoryUN` string, nullable
        - `configuration` object
        - `createDate` string
        - `createdBy` integer
        - `lastUpdateDate` string
        - `lastUpdateBy` integer
      - `deniedByName` string, nullable
      - `userGroupViewDetails` string, nullable
      - `approvedByName` string, nullable
      - `results` unknown
      - `originUniqueName` string — The unique name of the origin CFO.
      - `module` 'PRICESETTING' | 'QUOTING' | 'ANALYTICS' | 'ADMIN' | 'WORKFLOW' | 'REBATES' | 'AGREEMENTSPROMOTIONS' | 'OPTIMIZATION' | 'CHANNELMANAGEMENT' | 'MASTERDATA' | 'CONFIGURATION' | 'DASHBOARDS' | 'PROCESSES' | 'SALESCOMPENSATION' | 'CUSTOM_FORM' | 'ACTIONABLEINSIGHTS'
      - `originDeleted` boolean — Indicates the deletion status of the origin CFO.
      - `moduleCategoryUN` string, nullable
      - `version` integer
      - `originCustomFormId` integer — Stores the identifier of the original CFO from which the current CFO was duplicated.
      - `attribute9` unknown
      - `attribute8` unknown
      - `uniqueName` string, nullable
      - `attribute5` unknown
      - `attribute4` unknown
      - `attribute7` unknown
      - `attribute6` unknown
      - `attribute1` unknown
      - `attribute14` unknown
      - `formStatus` 'DRAFT' | 'APPROVED' | 'REVOKED' | 'SUPERSEDED' | 'INVALIDATED'
      - `attribute13` unknown
      - `typeId` integer
      - `userGroupEdit` string, nullable
      - `attribute3` unknown
      - `attribute12` unknown
      - `attribute2` unknown
      - `attribute11` unknown
      - `attribute10` unknown
      - `lastUpdateByName` string
      - `renderInfo` object, nullable
      - `attribute19` unknown
      - `attribute18` unknown
      - `attribute17` unknown
      - `attribute16` unknown
      - `attribute15` unknown
      - `submitDate` string, nullable
      - `parentTypedId` string, nullable
      - `attribute25` unknown
      - `submittedByName` string, nullable
      - `attribute24` unknown
      - `attribute23` unknown
      - `attribute22` unknown
      - `attribute21` unknown
      - `attribute20` unknown
      - `createDate` string, nullable
      - `approvalRequiredEmailAttachments` object[]
      - `attribute29` unknown
      - `attribute28` unknown
      - `originLabel` string
      - `attribute27` unknown
      - `attribute26` unknown
      - `label` string
      - `nextRevUNs` string[]
      - `createdBy` integer
      - `prevRev` string, nullable
      - `calculationStatus` integer
      - `supersededBy` string, nullable
      - `attribute30` unknown
      - `lastUpdateBy` integer
    - `status` integer

---

[API](https://skmtc.net/pricefx/apis/the-pricefx-backend-api.md) · [All operations](https://skmtc.net/pricefx/apis/the-pricefx-backend-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/pricefx/the-pricefx-backend-api/versions/0850b5d6be73/schema)
