---
id: SCR-PFM-MTD-011
title: Custom object designer
route: /console/{tenantId}/configuration/platform/customObjects/{objectKey}
surface: console
product_area: platform
module: metadata
revision: 1
status: draft
design_intent: confirmed
origin: 'PLAT-M5 D12 (Andrew, 2026-10-19: v0 designs first for the record-type designer) and D15 (custom apps),
  Product Accepted 2026-10-20'
implementation_evidence: observed
inference: []
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
purpose: "Administrators define a local record category\u2019s naming, ownership, placement and staff reach. The\
  \ same page links to property management."
supports:
- JNY-PFM-MTD-001
- JNY-PFM-MTD-003
- CAP-PFM-MTD-009
- CAP-PFM-MTD-010
- CAP-PFM-MTD-011
- CAP-PFM-MTD-005
permission: platform.custom-objects.read to open; .create, .update or .delete to change; platform.association-types.*
  for the owner
entry_from:
- SCR-PFM-MTD-010
exits_to:
- SCR-PFM-MTD-010
- SCR-PFM-MTD-002 (Properties tab, /customObjects/{objectKey}/properties)
displays:
- field: The object's settings and version
  source: getCustomObject
- field: Its properties for naming choices
  source: listCustomFields and describeObject
- field: Custom apps for placement
  source: listCustomApps
- field: Its owner type and the record types that can own
  source: getAssociationType, listAssociationTypes, listCustomObjects
- field: The owner chosen for a draft
  source: browser local storage
actions:
- label: Create
  operation_id: createCustomObject
  permission: platform.custom-objects.create
  confirm: false
- label: Save
  operation_id: updateCustomObject
  permission: platform.custom-objects.update
  confirm: false
- label: Make or change the owner
  operation_id: createAssociationType / updateAssociationType
  permission: platform.association-types.create / .update
  confirm: false
- label: Activate
  operation_id: activateCustomObject
  permission: platform.custom-objects.update
  confirm: true
- label: Archive
  operation_id: archiveCustomObject
  permission: platform.custom-objects.delete
  confirm: true
- label: Restore
  operation_id: restoreCustomObject
  permission: platform.custom-objects.delete
  confirm: true
states:
- loading
- error
- not found
- read-only
- 'inactive (archived: no changes until restored)'
- partial (active without its owner)
validation:
- BR-CAP-PFM-MTD-009-01
- BR-CAP-PFM-MTD-009-03
- BR-CAP-PFM-MTD-009-04
- BR-CAP-PFM-MTD-009-05
- BR-CAP-PFM-MTD-009-06
- BR-CAP-PFM-MTD-009-07
- BR-CAP-PFM-MTD-010-01
- BR-CAP-PFM-MTD-010-05
- BR-CAP-PFM-MTD-011-02
patterns:
- PageLayout (standard width)
- PageHeader
- Tabs (settings and properties)
- EditorActionBar
- unsaved-changes guard
- icon picker
- lifecycle dialogs
component: components/configuration/custom-objects/custom-object-designer.tsx
evidence:
- 'react-console at baf6dae3: components/configuration/custom-objects/custom-object-designer.tsx, designer-panel.tsx,
  object-properties-tab.tsx, placement-section.tsx, access-section.tsx, icon-picker.tsx; lib/custom-objects/designer/save.ts,
  pending-owner.ts, model.ts, hooks.ts; lib/custom-objects/designer-paths.ts'
controls: [TC-AI-001, TC-AI-002, TC-AI-003, TC-AI-004, TC-AI-006, TC-AI-007, TC-AVL-001, TC-AVL-005, TC-AZ-001, TC-AZ-002, TC-AZ-003, TC-AZ-004, TC-AZ-005, TC-DAT-001, TC-DAT-002, TC-DAT-003, TC-DAT-004, TC-DAT-005, TC-IAM-001, TC-IAM-002, TC-IAM-003, TC-IAM-004, TC-IAM-005, TC-LOG-001, TC-LOG-002, TC-LOG-003, TC-LOG-004, TC-LOG-005, TC-PI-001, TC-PI-003, TC-PI-005, TC-PRV-001, TC-PRV-002, TC-TEN-001, TC-TEN-002, TC-TEN-003, TC-TEN-004, TC-VEN-001, TC-VEN-002, TC-VEN-003]
---

# Custom object designer

## What the Screen Is For

Administrators define a local record category’s naming, ownership, placement and staff reach. The same page links to property management.

## What It Shows and Lets People Do

Settings cover labels, stable identity, icon, numbering, display properties, publication, ownership and placement. The property tab hosts the shared field table; draft ownership waits in this browser until activation.

## States and Errors

Errors attach to the relevant setting. A failed owner step after activation leaves the object active and reports the partial result; archival opens the definition read-only until restoration.

## Patterns It Must Respect

The existing designer uses settings and property tabs, an action bar, icon selection and lifecycle dialogs. Its source implementation remains the baseline for describing changes.
