# Duplicate a Custom Form Creates a copy of the specified Custom Form. The copy includes inputs, outputs, and embedded objects. Returns the duplicated Custom Form. Duplicated Custom Form fields: 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. Endpoint: POST /customform.duplicate/{typedId} Security: basic, X-PriceFx-jwt ## Path parameters: - `typedId` (string, required) typedId of the Custom Form you want to duplicate. Example: "123.CFO" ## Response 200 fields (application/json): - `response` (object) - `response.node` (string) - `response.data` (array) - `response.data.outputs` (array) - `response.data.outputs.resultName` (string) - `response.data.outputs.resultLabel` (string) - `response.data.outputs.result` (integer,null) - `response.data.outputs.excludeFromExport` (boolean) - `response.data.outputs.warnings` (array,null) - `response.data.outputs.alertMessage` (string,null) - `response.data.outputs.alertType` (string,null) Enum: "CRITICAL", "RED", "YELLOW" - `response.data.outputs.displayOptions` (integer,null) - `response.data.outputs.formatType` (string) Enum: "NUMERIC", "NUMERIC_LONG", "MONEY", "PERCENT", "TEXT", "MONEY_EUR", "MONEY_USD", "MONEY_GBP", "MONEY_JPY", "MONEY_CHF", "MONEY_PLN", "DATETIME", "DATE", "INTEGER", "LINK", "COMPLEX", "SPARKLINE" - `response.data.outputs.suffix` (string,null) - `response.data.outputs.resultType` (string,null) - `response.data.outputs.cssProperties` (string,null) - `response.data.outputs.userGroup` (string,null) - `response.data.outputs.resultGroup` (string,null) - `response.data.outputs.overrideValueOptions` (array,null) - `response.data.outputs.overrideAllowEmpty` (boolean) - `response.data.outputs.labelTranslations` (string,null) - `response.data.outputs.overridable` (boolean) - `response.data.outputs.overridden` (boolean) - `response.data.outputs.resultDescription` (string,null) - `response.data.createdByName` (string) - `response.data.typedId` (string,null) - `response.data.inputs` (array) - `response.data.inputs.name` (string) - `response.data.inputs.label` (string,null) - `response.data.inputs.lookupTableId` (string,null) - `response.data.inputs.url` (string,null) - `response.data.inputs.type` (string) - `response.data.inputs.value` (integer,null) - `response.data.inputs.valueHint` (string,null) - `response.data.inputs.readOnly` (boolean,null) - `response.data.inputs.filter` (object,null) - `response.data.inputs.filter.property1` (object) - `response.data.inputs.filter.property2` (object) - `response.data.inputs.parameterGroup` (string,null) - `response.data.inputs.required` (boolean,null) - `response.data.inputs.addUnknownValues` (boolean,null) - `response.data.inputs.alwaysEditable` (boolean,null) - `response.data.inputs.parameterConfig` (object) - `response.data.inputs.formattingOptions` (object) - `response.data.inputs.valueOptions` (array,null) - `response.data.workflowStatus` (string) Enum: "DRAFT", "SUBMITTED", "DENIED", "APPROVED", "NO_APPROVAL_REQUIRED", "WITHDRAWN", "INVALIDATED" - `response.data.lastUpdateDate` (string) - `response.data.serverMessagesExtended` (array) - `response.data.serverMessagesExtended.key` (string) - `response.data.serverMessagesExtended.message` (string) - `response.data.serverMessagesExtended.source` (string) - `response.data.customFormTypeObject` (object,null) - `response.data.customFormTypeObject.version` (integer) - `response.data.customFormTypeObject.uniqueName` (string) - `response.data.customFormTypeObject.headerFormulaName` (string) - `response.data.customFormTypeObject.workflowFormulaName` (string) - `response.data.customFormTypeObject.userGroupEdit` (string,null) - `response.data.customFormTypeObject.userGroupViewDetails` (string) - `response.data.customFormTypeObject.embedded` (boolean) - `response.data.customFormTypeObject.supportedParentTypeCodes` (array) - `response.data.customFormTypeObject.module` (string) Enum: "PRICESETTING", "QUOTING", "ANALYTICS", "ADMIN", "WORKFLOW", "REBATES", "AGREEMENTSPROMOTIONS", "OPTIMIZATION", "CHANNELMANAGEMENT", "MASTERDATA", "CONFIGURATION", "DASHBOARDS", "PROCESSES", "SALESCOMPENSATION", "CUSTOM_FORM", "ACTIONABLEINSIGHTS" - `response.data.customFormTypeObject.moduleCategoryUN` (string,null) - `response.data.customFormTypeObject.configuration` (object) - `response.data.customFormTypeObject.createDate` (string) - `response.data.customFormTypeObject.createdBy` (integer) - `response.data.customFormTypeObject.lastUpdateBy` (integer) - `response.data.deniedByName` (string,null) - `response.data.approvedByName` (string,null) - `response.data.results` (any) any type - `response.data.originUniqueName` (string) The unique name of the origin CFO. - `response.data.originDeleted` (boolean) Indicates the deletion status of the origin CFO. - `response.data.originCustomFormId` (integer) Stores the identifier of the original CFO from which the current CFO was duplicated. - `response.data.attribute9` (string) any type or null - `response.data.attribute8` (string) any type or null - `response.data.attribute5` (string) any type or null - `response.data.attribute4` (string) any type or null - `response.data.attribute7` (string) any type or null - `response.data.attribute6` (string) any type or null - `response.data.attribute1` (string) any type or null - `response.data.attribute14` (string) any type or null - `response.data.formStatus` (string) Enum: "DRAFT", "APPROVED", "REVOKED", "SUPERSEDED", "INVALIDATED" - `response.data.attribute13` (string) any type or null - `response.data.typeId` (integer) - `response.data.attribute3` (string) any type or null - `response.data.attribute12` (string) any type or null - `response.data.attribute2` (string) any type or null - `response.data.attribute11` (string) any type or null - `response.data.attribute10` (string) any type or null - `response.data.lastUpdateByName` (string) - `response.data.renderInfo` (object,null) - `response.data.attribute19` (string) any type or null - `response.data.attribute18` (string) any type or null - `response.data.attribute17` (string) any type or null - `response.data.attribute16` (string) any type or null - `response.data.attribute15` (string) any type or null - `response.data.submitDate` (string,null) - `response.data.parentTypedId` (string,null) - `response.data.attribute25` (string) any type or null - `response.data.submittedByName` (string,null) - `response.data.attribute24` (string) any type or null - `response.data.attribute23` (string) any type or null - `response.data.attribute22` (string) any type or null - `response.data.attribute21` (string) any type or null - `response.data.attribute20` (string) any type or null - `response.data.approvalRequiredEmailAttachments` (array) - `response.data.attribute29` (string) any type or null - `response.data.attribute28` (string) any type or null - `response.data.originLabel` (string) - `response.data.attribute27` (string) any type or null - `response.data.attribute26` (string) any type or null - `response.data.nextRevUNs` (array) - `response.data.prevRev` (string,null) - `response.data.calculationStatus` (integer) - `response.data.supersededBy` (string,null) - `response.data.attribute30` (string) any type or null - `response.status` (integer)