Menú

Referencia de la API · CRM

Configuración

crm · settings · 10 operaciones

GET/v1/crm/settings/seller-scope

Get the seller scope setting

crm.settings.seller_scope.get

LecturaIdempotenteDesde 2026-11-01

Returns whether the organization enforces the seller scope (enforced: sellers with the sales_rep role only see and work their own records, the unassigned ones and the pipelines they have access to), who changed it last and when, and whether the one-time normalization of records without owner finished (backfilled_at; 0 means pending).

Alcance
crm:read
Permiso
Ver el módulo
Tool del MCP
crm_settings_seller_scope_getEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.settings.seller_scope.get".

Costo declarado: hasta 2 lecturas y 0 escrituras por llamada (cuentan en el cupo diario).

Parámetros

Sin parámetros.

Respuesta

enforcedboolean
updated_atnumber
updated_by_idstring
backfilled_atnumber

When the last normalization of unassigned records finished (0 = never).

defaulted_atnumber

When a new team's default turned it on (absent when a person did).

Errores

Ejemplo

curl "https://api.mb-suite.com/v1/crm/settings/seller-scope" \
  -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/settings/seller-scope" \
  -H "Authorization: Bearer $MB_TEST_KEY"
PATCH/v1/crm/settings/seller-scope

Turn the seller scope on or off

crm.settings.seller_scope.update

EscrituraIdempotenteDesde 2026-11-01

Turns the seller scope on (enforced: true) or off for the whole organization. It first recomputes the scope stored on every seller (what the security rules read) and only then saves the switch, so a failure leaves the organization as it was. Turning it on also schedules, after responding, the one-time normalization of records without owner if it never finished (deals, persons and companies without the field become unassigned; a prospect goes to the owner of its person when they are a member of the organization, or becomes unassigned). It changes at once what every sales_rep sees; returns how many sellers changed. Only owners, admins and CRM admins.

Alcance
crm:write
Permiso
Editar en el módulo
Tool del MCP
crm_settings_seller_scope_updateEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.settings.seller_scope.update".

Costo declarado: hasta 200 lecturas y 101 escrituras por llamada (cuentan en el cupo diario).

Parámetros

enforcedbooleancuerporequerido

true: sales_rep members only see and work their own records (and the unassigned ones); false: everyone sees the whole CRM.

Respuesta

updated_usersnumber

Errores

Ejemplo

curl -X PATCH "https://api.mb-suite.com/v1/crm/settings/seller-scope" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "enforced": true
}'

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/settings/seller-scope" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "enforced": true
}'
GET/v1/crm/settings/scoring

Get the AI scoring configuration

crm.settings.scoring.get

LecturaIdempotenteDesde 2026-11-01

Returns the AI scoring setup of the CRM: one block for prospects and one for deals (enabled, the AI agent that scores, extra qualified / not-qualified criteria) plus the deal coach block (enabled, agent, coaching focus, offer context, what to avoid), each with its knowledge files (name, type, size, embedding status). Blocks never configured come back with their defaults (disabled).

Alcance
crm:read
Permiso
Ver el módulo
Tool del MCP
crm_settings_scoring_getEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.settings.scoring.get".

Costo declarado: hasta 1 lecturas y 0 escrituras por llamada (cuentan en el cupo diario).

Parámetros

Sin parámetros.

Respuesta

prospectsobject
dealsobject
coachobject
updated_atnumber
updated_by_idstring

Errores

Ejemplo

curl "https://api.mb-suite.com/v1/crm/settings/scoring" \
  -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/settings/scoring" \
  -H "Authorization: Bearer $MB_TEST_KEY"
POST/v1/crm/settings/scoring/{block}/knowledge/{entry_id}/delete

Remove a knowledge file from an AI scoring block

crm.settings.scoring.knowledge.delete

IrreversibleIdempotenteDesde 2026-11-01

Removes one knowledge file (entry_id, from crm.settings.scoring.get) from a block (prospects, deals or coach): its indexed text stops feeding the AI agent at once. Cannot be undone; the file would have to be uploaded again from the screen. The dry run names the file and answers knowledge_entry_not_found when it is not in that block; running it again after it is gone does nothing. Requires manage_ai_config.

Pide confirmación: primero dry_run: true (vista previa y confirm_token, que vale 10 minutos y una sola vez), después el mismo cuerpo con confirm_token. En unas pocas, solo con ciertos datos: la descripción dice cuándo. Por qué y cómo: Vista previa y confirmación.

Alcance
crm:write y «Permitir eliminar» (crm:delete en OAuth)
Permiso
Editar en el módulo · Acción del CRM: manage_ai_config
Tool del MCP
crm_settings_scoring_knowledge_deleteEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.settings.scoring.knowledge.delete".

Costo declarado: hasta 1001 lecturas y 1001 escrituras por llamada (cuentan en el cupo diario).

Parámetros

blockenumrutarequerido

The block the file belongs to: prospects, deals or coach.

entry_idstringrutarequerido

The file's id: file_knowledge[].id of that block in crm.settings.scoring.get.

Respuesta

oktrue

Errores

Ejemplo

curl -X POST "https://api.mb-suite.com/v1/crm/settings/scoring/{block}/knowledge/{entry_id}/delete" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "dry_run": true
}'

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/settings/scoring/{block}/knowledge/{entry_id}/delete" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "dry_run": true
}'
POST/v1/crm/settings/scoring/test

Score a sample lead with the current configuration

crm.settings.scoring.test

EscrituraDesde 2026-11-01

Scores a sample prospect or deal (block: prospects or deals; sample: name, email, phone, company, job title, title, source channel, value, custom fields) with that block's AI agent and criteria, exactly as real leads are scored, and returns the score, its rules and AI parts, the recommendation, the reasoning and the rule signals. Use it to check a scoring configuration before turning it on. Nothing is stored in the CRM. Spends the organization's AI credits (charged by the tokens the model actually used, its thinking included): before calling the AI it checks that the caller's credit pool covers the call with the block's model, and if it does not it fails with 402 ai_credits_exhausted (details.reason: insufficient_credits, category_budget or personal_limit) without calling the AI. If the AI fails, the score is rules only (it says so in the reasoning) and nothing is charged; if the AI answers with something that cannot be used, the score is rules only too and that answer is charged. Not available in the practice organization (test keys): 409 sandbox_external_unavailable. Not idempotent. Requires manage_ai_config.

Pide confirmación: primero dry_run: true (vista previa y confirm_token, que vale 10 minutos y una sola vez), después el mismo cuerpo con confirm_token. En unas pocas, solo con ciertos datos: la descripción dice cuándo. Por qué y cómo: Vista previa y confirmación.

Alcance
crm:write
Permiso
Editar en el módulo · Acción del CRM: manage_ai_config
Tool del MCP
crm_settings_scoring_testEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.settings.scoring.test".

Costo declarado: hasta 20 lecturas y 0 escrituras por llamada (cuentan en el cupo diario). Toca una plataforma externa (ai): cuenta en el cupo de operaciones externas.

Parámetros

blockenumcuerporequerido

Which scoring to try: prospects or deals (its agent and criteria).

Valores: prospects, deals

sampleobjectcuerporequerido

A made-up lead: nothing of it is stored.

Respuesta

scorenumber

The final score, 0 to 100.

rules_scorenumber

The rules part, 0 to 100.

ai_scorenumber

The AI part, 0 to 100.

reasoningstring
recommendationstring | null

Derived from the score (70 and 40 thresholds).

signalsarray<string> | null

The rule signals that fired (has_email, senior_role, source_…).

scored_atnumber | null
modelstring | null

The model or agent actually used.

agent_idstring | null

Errores

Ejemplo

curl -X POST "https://api.mb-suite.com/v1/crm/settings/scoring/test" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "block": "prospects",
  "sample": {},
  "dry_run": true
}'

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. En la práctica esta operación no se simula (toca otra plataforma): responde 409 sandbox_external_unavailable.

GET/v1/crm/settings/attribution

Get the visible attribution model

crm.settings.attribution.get

LecturaIdempotenteDesde 2026-11-01

Returns which touch of a lead's attribution history the CRM shows as its current source: first (default, the acquisition channel never changes when the lead comes back) or last (the most recent touch with evidence). It is a display preference; the stored attribution of each record is always the first touch.

Alcance
crm:read
Permiso
Ver el módulo
Tool del MCP
crm_settings_attribution_getEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.settings.attribution.get".

Costo declarado: hasta 1 lecturas y 0 escrituras por llamada (cuentan en el cupo diario).

Parámetros

Sin parámetros.

Respuesta

modelenum

Valores: first, last

updated_atnumber
updated_by_idstring

Errores

Ejemplo

curl "https://api.mb-suite.com/v1/crm/settings/attribution" \
  -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/settings/attribution" \
  -H "Authorization: Bearer $MB_TEST_KEY"
PATCH/v1/crm/settings/attribution

Set the visible attribution model

crm.settings.attribution.update

EscrituraIdempotenteDesde 2026-11-01

Sets the attribution model shown across the CRM (source card, record header, tables): first or last touch. Only changes what is displayed from now on; no record is rewritten. Requires full access to the CRM.

Alcance
crm:write
Permiso
Editar en el módulo
Tool del MCP
crm_settings_attribution_updateEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.settings.attribution.update".

Costo declarado: hasta 0 lecturas y 1 escrituras por llamada (cuentan en el cupo diario).

Parámetros

modelenumcuerporequerido

Which touch the attribution views credit: first (default) or last; it changes how the data is shown, not what is stored.

Valores: first, last

Respuesta

oktrue

Errores

Ejemplo

curl -X PATCH "https://api.mb-suite.com/v1/crm/settings/attribution" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "first"
}'

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/settings/attribution" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "first"
}'
GET/v1/crm/settings/own-domains

Get the CRM's organization settings (own domains, prospect currency)

crm.settings.own_domains.get

LecturaIdempotenteDesde 2026-11-01

Returns the organization's own email domains (lowercase, sorted): the CRM treats mail from or to them as internal traffic, so it never creates a company by those domains nor matches records by them. It also returns prospect_currency, the default currency shown for prospects without one (set with crm.settings.prospects.update; null = the workspace's main currency). Other CRM settings have their own operations (crm.settings.scoring.get, crm.settings.attribution.get, crm.settings.seller_scope.get).

Alcance
crm:read
Permiso
Ver el módulo
Tool del MCP
crm_settings_own_domains_getEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.settings.own_domains.get".

Costo declarado: hasta 1 lecturas y 0 escrituras por llamada (cuentan en el cupo diario).

Parámetros

Sin parámetros.

Respuesta

domainsarray<string>
prospect_currencystring | null

ISO code of the default currency shown for prospects without one; null when never chosen (the workspace's main currency applies).

Errores

Ejemplo

curl "https://api.mb-suite.com/v1/crm/settings/own-domains" \
  -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/settings/own-domains" \
  -H "Authorization: Bearer $MB_TEST_KEY"
PATCH/v1/crm/settings/own-domains

Replace the organization's own email domains

crm.settings.own_domains.update

EscrituraIdempotenteDesde 2026-11-01

Replaces the whole list of own email domains (up to 50). Entries are normalized (lowercase, no scheme, no leading www., nothing after a slash) and deduplicated; an invalid domain or a public mailbox provider (gmail.com, outlook.com, yahoo.com…) rejects the call. Sending the same list changes nothing. Requires an owner, an admin or a CRM admin.

Alcance
crm:write
Permiso
Editar en el módulo
Tool del MCP
crm_settings_own_domains_updateEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.settings.own_domains.update".

Costo declarado: hasta 0 lecturas y 1 escrituras por llamada (cuentan en el cupo diario).

Parámetros

domainsarray<string>cuerporequerido

The whole list of the organization's own email domains, up to 50 (acme.com; scheme, www. and capitals are cleaned up). An empty list removes them all.

Respuesta

domainsarray<string>

Errores

Ejemplo

curl -X PATCH "https://api.mb-suite.com/v1/crm/settings/own-domains" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "domains": [
    "DOMAIN"
  ]
}'

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/settings/own-domains" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "domains": [
    "DOMAIN"
  ]
}'
PATCH/v1/crm/settings/prospects

Set the default currency shown for prospects

crm.settings.prospects.update

EscrituraIdempotenteDesde 2026-11-01

Saves the org-level prospect settings: prospect_currency, the ISO code (3 letters) used to display prospect values that have no currency. It is a display preference: no prospect is rewritten. Requires full access to the CRM.

Alcance
crm:write
Permiso
Editar en el módulo
Tool del MCP
crm_settings_prospects_updateEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.settings.prospects.update".

Costo declarado: hasta 0 lecturas y 1 escrituras por llamada (cuentan en el cupo diario).

Parámetros

prospect_currencystringcuerporequerido

The ISO 4217 code (3 letters: MXN, USD…; lowercase is accepted) used to show the value of prospects that have no currency of their own. A display preference: no prospect is rewritten.

Respuesta

oktrue

Errores

Ejemplo

curl -X PATCH "https://api.mb-suite.com/v1/crm/settings/prospects" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "prospect_currency": "PROSPECT_CURRENCY"
}'

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/settings/prospects" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "prospect_currency": "PROSPECT_CURRENCY"
}'