Menú

Referencia de la API · CRM

Campos personalizados

crm · custom_fields · 4 operaciones

GET/v1/crm/custom-fields

List custom field definitions

crm.custom_fields.list

LecturaIdempotenteDesde 2026-11-01

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.

Valores: deal, person, company, prospect, product

Respuesta

dataarray<object>

Errores

Ejemplo

curl "https://api.mb-suite.com/v1/crm/custom-fields" \
  -H "Authorization: Bearer $MB_API_KEY"

Probar con tu API key de prueba

Con una API key de prueba el pedido va siempre a tu organización de práctica: datos de ejemplo que puedes reiniciar.

curl "https://api.mb-suite.com/v1/crm/custom-fields" \
  -H "Authorization: Bearer $MB_TEST_KEY"
POST/v1/crm/custom-fields

Create a custom field

crm.custom_fields.create

EscrituraDesde 2026-11-01

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.

Valores: text, longtext, number, currency, currencyCode, country, date, datetime, daterange, select, multiselect, url, email, phone, checkbox, user, member, members, rating, progress, files

entityenumcuerporequerido

The kind of record the field belongs to.

Valores: deal, person, company, prospect, product

slugstringcuerpoopcional

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.

show_in_tablebooleancuerpoopcional

Shown as a column in the lists.

show_in_drawerbooleancuerpoopcional

Shown in the record's side panel.

Respuesta

field_idstring

Errores

Ejemplo

curl -X POST "https://api.mb-suite.com/v1/crm/custom-fields" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "name": "NAME",
  "type": "text",
  "entity": "deal"
}'

Probar con tu API key de prueba

Con una API key de prueba el pedido va siempre a tu organización de práctica: datos de ejemplo que puedes reiniciar.

curl -X POST "https://api.mb-suite.com/v1/crm/custom-fields" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "name": "NAME",
  "type": "text",
  "entity": "deal"
}'
PATCH/v1/crm/custom-fields/{field_id}

Update a custom field

crm.custom_fields.update

EscrituraDesde 2026-11-01

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.

fieldobject

Errores

Ejemplo

curl -X PATCH "https://api.mb-suite.com/v1/crm/custom-fields/{field_id}" \
  -H "Authorization: Bearer $MB_API_KEY"

Probar con tu API key de prueba

Con una API key de prueba el pedido va siempre a tu organización de práctica: datos de ejemplo que puedes reiniciar.

curl -X PATCH "https://api.mb-suite.com/v1/crm/custom-fields/{field_id}" \
  -H "Authorization: Bearer $MB_TEST_KEY"
DELETE/v1/crm/custom-fields/{field_id}

Delete a custom field definition

crm.custom_fields.delete

IrreversibleDesde 2026-11-01

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:write y «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.

Errores

Ejemplo

curl -X DELETE "https://api.mb-suite.com/v1/crm/custom-fields/{field_id}" \
  -H "Authorization: Bearer $MB_API_KEY"

Probar con tu API key de prueba

Con una API key de prueba el pedido va siempre a tu organización de práctica: datos de ejemplo que puedes reiniciar.

curl -X DELETE "https://api.mb-suite.com/v1/crm/custom-fields/{field_id}" \
  -H "Authorization: Bearer $MB_TEST_KEY"