Define firm-specific fields Metal tracks on companies, deals, people, activities, and investor relations records, with field keys and types.
Custom attributes are firm-defined fields Metal tracks alongside the built-in schema. Use them to capture the data your firm cares about that isn’t in Metal’s default model — a proprietary score, a source tag, a due-diligence flag — and have it show up on records the same way built-in fields do.Custom attributes are admin-gated and live under Firm Knowledge. Open Settings → Custom Attributes. Any member can read the schema through the API; writes follow the admin-only endpoints rule.
Attributes are defined per object type. The settings page has a tab for each of these:
Companies
Deals
People
Activities
Switching tabs shows the fields defined on that object type.Funds, limited partners, and fundraising processes also support custom attributes, but they don’t have a tab on the settings page yet. To define or change fields on those record types, contact support@metal.ai.
If a tab shows “Custom attributes for … aren’t available on this environment yet,” the backend hasn’t rolled out that object type here. Try again later or contact support@metal.ai.
The stored key always ends with a suffix that matches the type. Metal builds the key for you from your base name and the type you pick:
Type
Suffix
Example key (base acme)
string
Str
acmeStr
number
Num
acmeNum
boolean
Bool
acmeBool
array
Arr
acmeArr
object
Obj
acmeObj
Legacy date fields use the Date suffix. You can still edit an existing date field, but you cannot create a new one from the app.The key preview updates as you type the base name in the create dialog.Base names must be non-empty, cannot start with an underscore, and cannot contain whitespace or the characters ., $, or /. Keys are unique per object type (case-insensitive).
Go to Settings → Custom Attributes and pick the tab for the object type you want to extend.
2
Click Create Field
Enter a Field Name (the base name — Metal appends the type suffix), pick a Type, and set a Display Name. Add an optional Description and Rendering Component if relevant, and toggle Indexed if you’ll filter or search on the field.
3
Create
Metal writes the field to the object’s schema. New records — and existing records that get updated — can store values under the new key.
Nested definitions for array items and object fields aren’t editable from the dialog. Create the field with type array or object, then manage the nested shape through the API with an API key an Admin created. Keys created by other roles get 403 Forbidden.
Click the pencil icon on a row to change the display name, description, rendering component, or indexed setting. The field key itself is fixed once created — except when you change the type.
Because the key must match the type suffix, changing a field’s type means creating a new key and removing the old one. Metal walks you through this:
Metal generates the new key by swapping the suffix — e.g. acmeStr → acmeNum when you change string to number.
You confirm the change in the “Change field type?” dialog.
The new field is created first; the old key is then deleted.
If Metal cannot remove the old key, both fields remain until you delete the old one manually.Values previously stored under the old key stay on individual records but no longer match the new field, so they stop appearing in the app. In practice, treat a type change as a fresh field — plan to re-populate values on records that need them.
A type change is not a data migration. Stored values are not converted; they’re orphaned under the old key.
Click the trash icon on a row to remove a custom attribute. Deleting a field removes it from the schema so it no longer appears in the app, but values previously written to individual records are left in place, orphaned. Re-creating a field with the same key surfaces those values again.
Once defined, custom attributes behave like other fields on their object type — they can be read and written through the Metal API and referenced in workflows, enrichment, and dashboards. Indexed attributes are additionally available as filters and in search.You can also add custom attributes as columns on company, person, deal, limited partner, fund, and fundraising process lists. If you delete an attribute that a list column uses, the column keeps its stored values but becomes read-only. See Custom attribute columns.
{"docsConfig":{"theme":"palm","$schema":"https://mintlify.com/docs.json","name":"Metal Docs","description":"Developer documentation and API reference for Metal, the AI context layer for financial firms.","colors":{"primary":"#AF4719","light":"#E0764A","dark":"#8F3A14"},"logo":{"light":"https://mintcdn.com/metal-05dd0988/nE9Niq1EZxmrmtFS/logo/light.png?fit=max\u0026auto=format\u0026n=nE9Niq1EZxmrmtFS\u0026q=85\u0026s=215c9e6983b210f31b2f2f90fe58922d","dark":"https://mintcdn.com/metal-05dd0988/nE9Niq1EZxmrmtFS/logo/dark.png?fit=max\u0026auto=format\u0026n=nE9Niq1EZxmrmtFS\u0026q=85\u0026s=46e0a5261f69de6c07f84eb8543a195d","href":"https://www.metal.ai"},"favicon":"https://mintcdn.com/metal-05dd0988/kWbcLNNTbUpq7lH_/favicon.png?fit=max\u0026auto=format\u0026n=kWbcLNNTbUpq7lH_\u0026q=85\u0026s=aa6f9eae2cd28cf1532c714602acb90d","api":{"openapi":"api-reference/openapi.json","playground":{"display":"interactive"},"examples":{"languages":["bash","python","javascript","go"]}},"appearance":{"default":"system"},"background":{"color":{"light":"#FAF7EF","dark":"#1A1A18"}},"navbar":{"links":[{"href":"mailto:support@metal.ai","label":"Support"}],"primary":{"type":"button","label":"Book a demo","href":"https://www.metal.ai/book-a-demo"}},"footer":{"socials":{"website":"https://www.metal.ai","x":"https://x.com/metal__ai","linkedin":"https://www.linkedin.com/company/getmetal"}},"fonts":{"heading":{"family":"Lora"},"body":{"family":"Inter"}},"styling":{"eyebrows":"breadcrumbs","codeblocks":{"theme":{"light":"github-light","dark":"github-dark"}},"latex":false},"contextual":{"options":["copy","view","chatgpt","claude","cursor","vscode"],"display":"header"},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"metal-05dd0988","hasAudioNarration":false,"actualSubdomain":"metal-05dd0988","customDomains":["docs.metal.ai"],"gitSource":{"type":"github","owner":"getmetal","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"collectionId":"42d3382f-6d8b-4b0d-bda5-8d2cdf5c40b4","liveDeploymentHistoryId":"6ae8b993fd92378ebc2e98cc","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae8b993fd92378ebc2e98cc"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae8b993fd92378ebc2e98cc","clientVersion":"0.0.4076","searchFilterCounts":[{"language":"default","tag":"Developers","count":149},{"language":"default","tag":"API reference","count":123},{"language":"default","tag":"Core records","count":40},{"language":"default","tag":"User guide","count":34},{"language":"default","tag":"Lists \u0026 taxonomy","count":32},{"language":"default","tag":"Administration","count":22},{"language":"default","tag":"Enrichment \u0026 scoring","count":19},{"language":"default","tag":"Documentation","count":16},{"language":"default","tag":"Working in Metal","count":15},{"language":"default","tag":"Companies","count":12}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"help/admin/custom-attributes","slug":"/help/admin/custom-attributes","pageMetadata":{"title":"Custom attributes","description":"Define firm-specific fields Metal tracks on companies, deals, people, activities, and investor relations records, with field keys and types.","keywords":["custom attributes","custom fields","schema","admin"],"href":"/help/admin/custom-attributes"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Define firm-specific fields Metal tracks on companies, deals, people, activities, and investor relations records, with field keys and types.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Note,Step,Steps,Table,Tip,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Custom attributes are firm-defined fields Metal tracks alongside the built-in schema. Use them to capture the data your firm cares about that isn’t in Metal’s default model — a proprietary score, a source tag, a due-diligence flag — and have it show up on records the same way built-in fields do.`}),`\n`,_jsxs(_components.p,{children:[`Custom attributes are admin-gated and live under `,_jsx(_components.strong,{children:`Firm Knowledge`}),`. Open `,_jsx(_components.strong,{children:`Settings → Custom Attributes`}),`. Any member can read the schema through the API; writes follow the `,_jsx(_components.a,{href:`/authentication#admin-only-endpoints`,children:`admin-only endpoints rule`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`which-objects-support-custom-attributes`,children:`Which objects support custom attributes`}),`\n`,_jsx(_components.p,{children:`Attributes are defined per object type. The settings page has a tab for each of these:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.strong,{children:`Companies`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.strong,{children:`Deals`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.strong,{children:`People`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.strong,{children:`Activities`})}),`\n`]}),`\n`,_jsx(_components.p,{children:`Switching tabs shows the fields defined on that object type.`}),`\n`,_jsxs(_components.p,{children:[`Funds, limited partners, and fundraising processes also support custom attributes, but they don’t have a tab on the settings page yet. To define or change fields on those record types, contact `,_jsx(_components.a,{href:`mailto:support@metal.ai`,children:`support@metal.ai`}),`.`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`If a tab shows “Custom attributes for … aren’t available on this environment yet,” the backend hasn’t rolled out that object type here. Try again later or contact `,_jsx(_components.a,{href:`mailto:support@metal.ai`,children:`support@metal.ai`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`anatomy-of-a-field`,children:`Anatomy of a field`}),`\n`,_jsx(_components.p,{children:`Each custom attribute has:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Property`}),_jsx(_components.th,{children:`Notes`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Field name`})}),_jsxs(_components.td,{children:[`The base name you type when creating the field, e.g. `,_jsx(_components.code,{children:`acme`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Type`})}),_jsxs(_components.td,{children:[`One of `,_jsx(_components.code,{children:`string`}),`, `,_jsx(_components.code,{children:`number`}),`, `,_jsx(_components.code,{children:`boolean`}),`, `,_jsx(_components.code,{children:`array`}),`, or `,_jsx(_components.code,{children:`object`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Field key`})}),_jsx(_components.td,{children:`The stored key. Metal appends a type suffix to your base name (see below).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Display name`})}),_jsx(_components.td,{children:`What teammates see in the app, e.g. “Acme Score”.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Description`})}),_jsx(_components.td,{children:`Optional short explanation of what the field means.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Rendering component`})}),_jsxs(_components.td,{children:[`Optional hint for how the app should render the value (for example, `,_jsx(_components.code,{children:`date-picker`}),`).`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Indexed`})}),_jsx(_components.td,{children:`Whether Metal indexes the field for filtering and search.`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`field-key-suffix-convention`,children:`Field-key suffix convention`}),`\n`,_jsx(_components.p,{children:`The stored key always ends with a suffix that matches the type. Metal builds the key for you from your base name and the type you pick:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Suffix`}),_jsxs(_components.th,{children:[`Example key (base `,_jsx(_components.code,{children:`acme`}),`)`]})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`string`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Str`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`acmeStr`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`number`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Num`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`acmeNum`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`boolean`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Bool`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`acmeBool`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`array`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Arr`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`acmeArr`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`object`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Obj`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`acmeObj`})})]})]})]}),`\n`,_jsxs(_components.p,{children:[`Legacy `,_jsx(_components.code,{children:`date`}),` fields use the `,_jsx(_components.code,{children:`Date`}),` suffix. You can still edit an existing `,_jsx(_components.code,{children:`date`}),` field, but you cannot create a new one from the app.`]}),`\n`,_jsx(_components.p,{children:`The key preview updates as you type the base name in the create dialog.`}),`\n`,_jsxs(_components.p,{children:[`Base names must be non-empty, cannot start with an underscore, and cannot contain whitespace or the characters `,_jsx(_components.code,{children:`.`}),`, `,_jsx(_components.code,{children:`$`}),`, or `,_jsx(_components.code,{children:`/`}),`. Keys are unique per object type (case-insensitive).`]}),`\n`,_jsx(Heading,{level:`2`,id:`create-a-field`,children:`Create a field`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open Custom Attributes`,children:_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`Settings → Custom Attributes`}),` and pick the tab for the object type you want to extend.`]})}),_jsx(Step,{title:`Click Create Field`,children:_jsxs(_components.p,{children:[`Enter a `,_jsx(_components.strong,{children:`Field Name`}),` (the base name — Metal appends the type suffix), pick a `,_jsx(_components.strong,{children:`Type`}),`, and set a `,_jsx(_components.strong,{children:`Display Name`}),`. Add an optional `,_jsx(_components.strong,{children:`Description`}),` and `,_jsx(_components.strong,{children:`Rendering Component`}),` if relevant, and toggle `,_jsx(_components.strong,{children:`Indexed`}),` if you’ll filter or search on the field.`]})}),_jsx(Step,{title:`Create`,children:_jsx(_components.p,{children:`Metal writes the field to the object’s schema. New records — and existing records that get updated — can store values under the new key.`})})]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Nested definitions for `,_jsx(_components.code,{children:`array`}),` items and `,_jsx(_components.code,{children:`object`}),` fields aren’t editable from the dialog. Create the field with type `,_jsx(_components.code,{children:`array`}),` or `,_jsx(_components.code,{children:`object`}),`, then manage the nested shape through the API with an API key an Admin created. Keys created by other roles get `,_jsx(_components.code,{children:`403 Forbidden`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`edit-a-field`,children:`Edit a field`}),`\n`,_jsx(_components.p,{children:`Click the pencil icon on a row to change the display name, description, rendering component, or indexed setting. The field key itself is fixed once created — except when you change the type.`}),`\n`,_jsx(Heading,{level:`3`,id:`changing-the-type-is-a-re-key`,children:`Changing the type is a re-key`}),`\n`,_jsx(_components.p,{children:`Because the key must match the type suffix, changing a field’s type means creating a new key and removing the old one. Metal walks you through this:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Metal generates the new key by swapping the suffix — e.g. `,_jsx(_components.code,{children:`acmeStr`}),` → `,_jsx(_components.code,{children:`acmeNum`}),` when you change `,_jsx(_components.code,{children:`string`}),` to `,_jsx(_components.code,{children:`number`}),`.`]}),`\n`,_jsx(_components.li,{children:`You confirm the change in the “Change field type?” dialog.`}),`\n`,_jsx(_components.li,{children:`The new field is created first; the old key is then deleted.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`If Metal cannot remove the old key, both fields remain until you delete the old one manually.`}),`\n`,_jsx(_components.p,{children:`Values previously stored under the old key stay on individual records but no longer match the new field, so they stop appearing in the app. In practice, treat a type change as a fresh field — plan to re-populate values on records that need them.`}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`A type change is not a data migration. Stored values are not converted; they’re orphaned under the old key.`})}),`\n`,_jsx(Heading,{level:`2`,id:`delete-a-field`,children:`Delete a field`}),`\n`,_jsx(_components.p,{children:`Click the trash icon on a row to remove a custom attribute. Deleting a field removes it from the schema so it no longer appears in the app, but values previously written to individual records are left in place, orphaned. Re-creating a field with the same key surfaces those values again.`}),`\n`,_jsx(Heading,{level:`2`,id:`where-custom-attributes-show-up`,children:`Where custom attributes show up`}),`\n`,_jsx(_components.p,{children:`Once defined, custom attributes behave like other fields on their object type — they can be read and written through the Metal API and referenced in workflows, enrichment, and dashboards. Indexed attributes are additionally available as filters and in search.`}),`\n`,_jsxs(_components.p,{children:[`You can also add custom attributes as columns on company, person, deal, limited partner, fund, and fundraising process lists. If you delete an attribute that a list column uses, the column keeps its stored values but becomes read-only. See `,_jsx(_components.a,{href:`/help/lists#custom-attribute-columns`,children:`Custom attribute columns`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":{"theme":{"light":"github-light","dark":"github-dark"}},"config":{},"pageMetadata":{"title":"Custom attributes","description":"Define firm-specific fields Metal tracks on companies, deals, people, activities, and investor relations records, with field keys and types.","keywords":["custom attributes","custom fields","schema","admin"],"href":"/help/admin/custom-attributes"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Which objects support custom attributes","slug":"which-objects-support-custom-attributes","depth":2,"children":[]},{"title":"Anatomy of a field","slug":"anatomy-of-a-field","depth":2,"children":[{"title":"Field-key suffix convention","slug":"field-key-suffix-convention","depth":3,"children":[]}]},{"title":"Create a field","slug":"create-a-field","depth":2,"children":[]},{"title":"Edit a field","slug":"edit-a-field","depth":2,"children":[{"title":"Changing the type is a re-key","slug":"changing-the-type-is-a-re-key","depth":3,"children":[]}]},{"title":"Delete a field","slug":"delete-a-field","depth":2,"children":[]},{"title":"Where custom attributes show up","slug":"where-custom-attributes-show-up","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"metal-05dd0988","siteName":"Metal Docs","title":"Custom attributes - Metal Docs","relatedPagesConfig":{"enabled":true,"limit":5,"mode":"automatic"},"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-28T14:14:27.438Z","originalFileLocation":"help/admin/custom-attributes.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Define firm-specific fields Metal tracks on companies, deals, people, activities, and investor relations records, with field keys and types.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Metal Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/metal-05dd0988/H5xVb6VOFSWBSPlZ/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/metal-05dd0988/H5xVb6VOFSWBSPlZ/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/metal-05dd0988/H5xVb6VOFSWBSPlZ/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/metal-05dd0988/H5xVb6VOFSWBSPlZ/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/metal-05dd0988/H5xVb6VOFSWBSPlZ/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/metal-05dd0988/H5xVb6VOFSWBSPlZ/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/metal-05dd0988/H5xVb6VOFSWBSPlZ/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/metal-05dd0988/H5xVb6VOFSWBSPlZ/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/metal-05dd0988/H5xVb6VOFSWBSPlZ/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Custom attributes - Metal Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Define firm-specific fields Metal tracks on companies, deals, people, activities, and investor relations records, with field keys and types.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Metal Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.metal.ai/help/admin/custom-attributes\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://metal-05dd0988.mintlify.site/_mintlify/api/og/v2?division=Administration\u0026amp;title=Custom+attributes\u0026amp;description=Define+firm-specific+fields+Metal+tracks+on+companies%2C+deals%2C+people%2C+activities%2C+and+investor+relations+records%2C+with+field+keys+and+types.\u0026amp;theme=8371c31aca97183926192ed6\u0026amp;signature=d61839241b2d510b27d1ad141748c68e47253de2066b461a1714df168e89d87e\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Custom attributes - Metal Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Define firm-specific fields Metal tracks on companies, deals, people, activities, and investor relations records, with field keys and types.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://metal-05dd0988.mintlify.site/_mintlify/api/og/v2?division=Administration\u0026amp;title=Custom+attributes\u0026amp;description=Define+firm-specific+fields+Metal+tracks+on+companies%2C+deals%2C+people%2C+activities%2C+and+investor+relations+records%2C+with+field+keys+and+types.\u0026amp;theme=8371c31aca97183926192ed6\u0026amp;signature=d61839241b2d510b27d1ad141748c68e47253de2066b461a1714df168e89d87e\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/metal-05dd0988/H5xVb6VOFSWBSPlZ/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Metal Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#AF4719\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.metal.ai/help/admin/custom-attributes\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/help/admin/custom-attributes.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.metal.ai/#organization\",\"name\":\"Metal Docs\",\"url\":\"https://docs.metal.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/metal-05dd0988/nE9Niq1EZxmrmtFS/logo/light.png?fit=max\u0026auto=format\u0026n=nE9Niq1EZxmrmtFS\u0026q=85\u0026s=215c9e6983b210f31b2f2f90fe58922d\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.metal.ai#website\",\"name\":\"Metal Docs\",\"url\":\"https://docs.metal.ai\",\"publisher\":{\"@id\":\"https://docs.metal.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.metal.ai/help/admin/custom-attributes#webpage\",\"url\":\"https://docs.metal.ai/help/admin/custom-attributes\",\"name\":\"Custom attributes\",\"description\":\"Define firm-specific fields Metal tracks on companies, deals, people, activities, and investor relations records, with field keys and types.\",\"dateModified\":\"2026-10-28T14:14:27.438Z\",\"isPartOf\":{\"@id\":\"https://docs.metal.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.metal.ai/help/admin/custom-attributes#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.metal.ai/help/admin/custom-attributes#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Administration\",\"item\":\"https://docs.metal.ai/help/admin/onboarding\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Custom attributes\",\"item\":\"https://docs.metal.ai/help/admin/custom-attributes\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.metal.ai/help/admin/custom-attributes#article\",\"headline\":\"Custom attributes\",\"name\":\"Custom attributes\",\"description\":\"Define firm-specific fields Metal tracks on companies, deals, people, activities, and investor relations records, with field keys and types.\",\"url\":\"https://docs.metal.ai/help/admin/custom-attributes\",\"mainEntityOfPage\":{\"@id\":\"https://docs.metal.ai/help/admin/custom-attributes#webpage\"},\"dateModified\":\"2026-10-28T14:14:27.438Z\",\"keywords\":\"custom attributes, custom fields, schema, admin\",\"publisher\":{\"@id\":\"https://docs.metal.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.metal.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Metal Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Metal Docs","nav":{"global":null,"products":[{"product":"Developers","icon":"code","description":"Build on the Metal API — core concepts, integration guides, MCP, and the full API reference.","pages":[{"title":"Developers","href":""}]},{"product":"User guide","icon":"book-open","description":"Learn how to use and administer the Metal app, feature by feature.","groups":[{"group":"Getting started","pages":[{"title":"Metal user guide: get oriented and find your way","sidebarTitle":"Welcome to Metal","href":"/help"},{"title":"Navigating Metal","href":"/help/navigating"},{"title":"Key concepts","href":"/help/concepts"}]},{"group":"What's new","pages":[{"title":"Changelog","href":"/help/changelog"}]},{"group":"Working in Metal","pages":[{"title":"Working with companies","href":"/help/companies"},{"title":"Work with portfolio companies","href":"/help/work-with-portfolio-companies"},{"title":"Working with deals","href":"/help/deals"},{"title":"Work in business development","href":"/help/work-in-business-development"},{"title":"Working with people","href":"/help/people"},{"title":"Files \u0026 documents","href":"/help/documents"},{"title":"Working with lists","href":"/help/lists"},{"title":"Investor relations: funds, LPs, fundraising","sidebarTitle":"Investor relations","href":"/help/investor-relations"},{"title":"Run investor relations and fundraising in Metal","sidebarTitle":"Run fundraising","href":"/help/run-fundraising"},{"title":"Answer a DDQ or RFP","sidebarTitle":"Answer DDQs","href":"/help/answer-ddqs"},{"title":"Searching in Metal","href":"/help/search"},{"title":"Run and review Metal AI workflows","href":"/help/workflows"},{"title":"Use and share Metal skills","sidebarTitle":"Skills","href":"/help/skills"},{"title":"Enrichment","href":"/help/enrichment"},{"title":"Building org-wide dashboards","href":"/help/dashboards"}]},{"group":"Administration","pages":[{"title":"Onboarding your workspace","href":"/help/admin/onboarding"},{"title":"Adding \u0026 managing users","href":"/help/admin/users"},{"title":"Roles \u0026 permissions","href":"/help/admin/roles"},{"title":"Workspace settings","href":"/help/admin/settings"},{"title":"Set up NDA Library","href":"/help/admin/nda-library"},{"title":"Deal Profiles","href":"/help/admin/deal-profiles"},{"title":"Managing dashboards as an admin","href":"/help/admin/dashboards"},{"title":"Taxonomy: stages, statuses, and labels","sidebarTitle":"Taxonomy","description":"Configure the deal stages, fundraising stages, statuses, industries, sectors, and tags Metal uses to classify companies, deals, and people.","href":"/help/admin/taxonomy"},{"title":"Custom attributes","href":"/help/admin/custom-attributes"}]},{"group":"Integrations","pages":[{"title":"Enable and connect Metal integrations","sidebarTitle":"Integrations overview","description":"Connect Metal to your firm's file storage, CRM, Microsoft Exchange mailboxes, Slack workspaces, and market data sources through admin and per-user connections.","href":"/help/integrations/overview"},{"title":"CRM integration","href":"/help/integrations/crm"},{"title":"File storage integration","href":"/help/integrations/file-storage"},{"title":"Microsoft Exchange integration: mail, calendar, contacts","href":"/help/integrations/exchange"},{"title":"Slack integration: install Metal and connect your account","sidebarTitle":"Slack","href":"/help/integrations/slack"},{"title":"External MCP servers","href":"/help/integrations/mcp"}]}]}]},"basePath":"","title":"Custom attributes - Metal Docs","buildId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","deploymentId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","dynamics":[],"chunks":[]}