Lists the custom fields defined in the org (name, slug, type, options, required, group, visibility), optionally for one entity: deal, person, company, prospect or product. The slug is the key used in each record's custom_fields.
Alcance
crm:read
Permiso
Ver el módulo
Tool del MCP
crm_custom_fields_listEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.custom_fields.list".
Costo declarado: hasta 100 lecturas y 0 escrituras por llamada (cuentan en el cupo diario).
Parámetros
entityenumqueryopcional
Only the fields of this kind of record; without it, all of them.
Defines a custom field for an entity with a type (text, number, currency, date, select, multiselect, url, email, phone, checkbox, user, rating, progress, files…), options for selects, required flag, help text, group and visibility. The slug (lowercase, digits, underscore) is derived from the name unless given and must be unique per entity. Requires manage_custom_fields.
Alcance
crm:write
Permiso
Editar en el módulo · Acción del CRM: manage_custom_fields
Tool del MCP
crm_custom_fields_createEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.custom_fields.create".
Costo declarado: hasta 2 lecturas y 1 escrituras por llamada (cuentan en el cupo diario).
Parámetros
namestringcuerporequerido
The field's name, as the app shows it (up to 80 characters).
typeenumcuerporequerido
What the field holds; values are checked against it when records are written.
The key of the field in the records' customFields (lowercase letters, numbers and _); without it, it comes from the name. 409 custom_field_slug_taken if that entity already has it.
optionsarray<object>cuerpoopcional
For select and multiselect: the options (up to 100).
is_requiredbooleancuerpoopcional
The app asks for it before saving the record.
default_valueanycuerpoopcional
The value a new record starts with (up to 2 KB).
help_textstringcuerpoopcional
A hint shown under the field (up to 300 characters).
group_namestringcuerpoopcional
The section of the record where the field is shown.
Updates the name, options, required flag, default value, help text, group, visibility or order of a custom field: send them at the top level or inside updates (not both: updates_conflict), at least one (no_changes otherwise). The slug and the type do not change (the stored values depend on them). Returns the field as saved and changed: false when it already was that way (nothing written). Requires manage_custom_fields.
Alcance
crm:write
Permiso
Editar en el módulo · Acción del CRM: manage_custom_fields
Tool del MCP
crm_custom_fields_updateEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.custom_fields.update".
Costo declarado: hasta 1 lecturas y 1 escrituras por llamada (cuentan en el cupo diario).
Parámetros
field_idstringrutarequerido
The field, by id (crm.custom_fields.list).
namestringcuerpoopcional
The field's name, as the app shows it (up to 80 characters).
optionsarray<object>cuerpoopcional
For select and multiselect: the options (up to 100).
is_requiredbooleancuerpoopcional
The app asks for it before saving the record.
default_valueanycuerpoopcional
The value a new record starts with (up to 2 KB).
help_textstringcuerpoopcional
A hint shown under the field (up to 300 characters).
group_namestringcuerpoopcional
The section of the record where the field is shown.
show_in_tablebooleancuerpoopcional
Shown as a column in the lists.
show_in_drawerbooleancuerpoopcional
Shown in the record's side panel.
orderintegercuerpoopcional
Its position among the fields of that entity (0 first).
updatesobjectcuerpoopcional
The same fields, grouped as in the other CRM edits (crm.deals.update…): send them here or at the top level, not both.
Respuesta
oktrue
changedboolean
false when the field already was that way: nothing was written.
Deletes the definition of a custom field; the values already stored in records are kept and simply stop being shown. The definition goes to the 30-day trash. Requires manage_custom_fields.
Con una API key, este DELETE se ejecuta directo: el registro queda 30 días en la papelera y la respuesta trae su trash_item_id. Con un token OAuth, y por el MCP, pide dry_run → confirm_token.
Alcance
crm:writey «Permitir eliminar» (crm:delete en OAuth)
Permiso
Editar en el módulo · Acción del CRM: manage_custom_fields
Tool del MCP
crm_custom_fields_deleteEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.custom_fields.delete".
Costo declarado: hasta 1 lecturas y 2 escrituras por llamada (cuentan en el cupo diario).
Parámetros
field_idstringrutarequerido
The field, by id (crm.custom_fields.list).
Respuesta
oktrue
trash_item_idstring
The trash item this deletion left: the item_id of platform.trash.restore (POST /trash/{item_id}/restore). Missing if nothing went to the trash.
trash_item_idsarray<string>
Only when the deletion left more than one copy: all of them, the first being trash_item_id.
trash_expires_atnumber
When the copy leaves the trash for good (epoch ms): 30 days after the deletion.