Menú

Referencia de la API · CRM

Equipo

crm · team · 7 operaciones

GET/v1/crm/team

List the CRM team (sellers and AI agents)

crm.team.list

LecturaIdempotenteDesde 2026-11-01

Lists the CRM team in display order: the organization members added as sellers (kind human), with their CRM role (sales_rep, sales_manager or crm_admin), name, email and photo, and the AI agents (kind ai_agent) that can own records, with whether their position is enabled. The user_id is what deals, persons, companies and prospects take as owner_id. Each entry also carries the seller scope stored for it (scope own or all, blocked and read-only pipelines). Email signatures are not included. Org owners and admins act as CRM admins even when they are not on the list.

Alcance
crm:read
Permiso
Ver el módulo
Tool del MCP
crm_team_listEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.team.list".

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

Parámetros

Sin parámetros.

Respuesta

dataarray<object>

Errores

Ejemplo

curl "https://api.mb-suite.com/v1/crm/team" \
  -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/team" \
  -H "Authorization: Bearer $MB_TEST_KEY"
GET/v1/crm/team/available-members

List org members who can join the CRM team

crm.team.available_members

LecturaIdempotenteDesde 2026-11-01

Lists the organization members who are not in the CRM team yet and can be added with crm.team.add, with user_id, profile name (empty when they never set one), email, organization role and photo. Viewers are left out: they cannot operate the CRM.

Alcance
crm:read
Permiso
Ver el módulo
Tool del MCP
crm_team_available_membersEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.team.available_members".

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

Parámetros

Sin parámetros.

Respuesta

dataarray<object>

Errores

Ejemplo

curl "https://api.mb-suite.com/v1/crm/team/available-members" \
  -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/team/available-members" \
  -H "Authorization: Bearer $MB_TEST_KEY"
POST/v1/crm/team

Add an org member to the CRM team

crm.team.add

EscrituraDesde 2026-11-01

Adds an organization member (not a viewer) to the CRM team with a CRM role: sales_rep (works their own records; limited by the seller scope when the org enforces it), sales_manager (operates the whole team's records) or crm_admin (also configures the CRM). Use crm.team.available_members to find who can be added. The seller scope starts turned off, also for a new team: turn it on with crm.settings.seller_scope.update. Only owners, admins and CRM admins can manage the team.

Alcance
crm:write
Permiso
Editar en el módulo
Tool del MCP
crm_team_addEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.team.add".

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

Parámetros

user_idstringcuerporequerido

The organization member to add, from crm.team.available_members.

crm_roleenumcuerporequerido

CRM role: sales_rep (works their own records; limited by the seller scope when enforced), sales_manager (the whole team's records) or crm_admin (also configures the CRM).

Valores: sales_rep, sales_manager, crm_admin

Respuesta

user_idstring
crm_roleenum

Valores: sales_rep, sales_manager, crm_admin

ordernumber
added_atnumber
added_by_idstring
kindenum

Valores: human, ai_agent

scopeenum

Valores: all, own

blocked_pipeline_idsarray<string>
read_only_pipeline_idsarray<string>

Errores

Ejemplo

curl -X POST "https://api.mb-suite.com/v1/crm/team" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "user_id": "USER_ID",
  "crm_role": "sales_rep"
}'

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/team" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "user_id": "USER_ID",
  "crm_role": "sales_rep"
}'
POST/v1/crm/team/{user_id}/remove

Remove a seller from the CRM team

crm.team.remove

IrreversibleIdempotenteDesde 2026-11-01

Removes a user from the CRM team: they are no longer offered as an owner in the CRM pickers and are taken out of every mailbox's custom privacy list; their email signatures, stored on their team entry, are deleted. Their deals, persons and prospects keep them as owner (reassign them first if needed), and assignment rules that list them as a participant keep them until edited with crm.assignment_rules.update. It does not go to the trash: add them back with crm.team.add. The dry run names them and counts the signatures that go away (crm_user_not_found when they are not in the team). Only owners, admins and CRM admins.

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
Tool del MCP
crm_team_removeEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.team.remove".

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

Parámetros

user_idstringrutarequerido

The team member's user id, from crm.team.list.

Respuesta

oktrue

Errores

Ejemplo

curl -X POST "https://api.mb-suite.com/v1/crm/team/{user_id}/remove" \
  -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/team/{user_id}/remove" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "dry_run": true
}'
PATCH/v1/crm/team/{user_id}

Change a team member's CRM role

crm.team.update_role

EscrituraIdempotenteDesde 2026-11-01

Changes the CRM role of a team member (sales_rep, sales_manager or crm_admin) and recomputes their seller scope in the same write. Returns changed: false, without writing, when they already had that role. Fails with crm_user_not_found if they are not in the team. Only owners, admins and CRM admins.

Alcance
crm:write
Permiso
Editar en el módulo
Tool del MCP
crm_team_update_roleEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.team.update_role".

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

Parámetros

user_idstringrutarequerido

The team member's user id, from crm.team.list.

crm_roleenumcuerporequerido

CRM role: sales_rep (works their own records; limited by the seller scope when enforced), sales_manager (the whole team's records) or crm_admin (also configures the CRM).

Valores: sales_rep, sales_manager, crm_admin

Respuesta

changedboolean

Errores

Ejemplo

curl -X PATCH "https://api.mb-suite.com/v1/crm/team/{user_id}" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "crm_role": "sales_rep"
}'

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/team/{user_id}" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "crm_role": "sales_rep"
}'
POST/v1/crm/team/reorder

Reorder the CRM team

crm.team.reorder

EscrituraIdempotenteDesde 2026-11-01

Sets the display order of the CRM team (the Team table and the owner pickers): ordered_ids is the list of user_ids from crm.team.list in the new order, up to 500, each one once. Every id must already be in the team: otherwise nothing changes and it answers crm_user_not_found with details.missing_ids. Only owners, admins and CRM admins.

Alcance
crm:write
Permiso
Editar en el módulo
Tool del MCP
crm_team_reorderEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.team.reorder".

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

Parámetros

ordered_idsarray<string>cuerporequerido

The team's user ids (crm.team.list) in the new order, each once, up to 500.

Respuesta

oktrue

Errores

Ejemplo

curl -X POST "https://api.mb-suite.com/v1/crm/team/reorder" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "ordered_ids": [
    "ORDERED_ID"
  ]
}'

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/team/reorder" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "ordered_ids": [
    "ORDERED_ID"
  ]
}'
POST/v1/crm/team/{user_id}/out-of-office

Mark a seller out of office, or back, in every assignment rule

crm.team.out_of_office

EscrituraIdempotenteDesde 2026-11-01

Marks a seller out of office (is_out_of_office: true, optionally until oof_until in epoch milliseconds) or back, in every assignment rule where they are a participant. While out, the rules skip them when assigning new leads, and an hourly job reassigns, through the same rule, their open deals with no activity for 3 days, and clears the flag once oof_until passes. Returns how many rules changed. Anyone can set their own; someone else's requires manage_assignment.

Alcance
crm:write
Permiso
Editar en el módulo
Tool del MCP
crm_team_out_of_officeEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.team.out_of_office".

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

Parámetros

user_idstringrutarequerido

The seller (user id from crm.team.list).

is_out_of_officebooleancuerporequerido

true marks them out of office, false back.

oof_untilintegercuerpoopcional

Until when, epoch ms: the flag clears itself then.

Respuesta

updated_rulesnumber

Errores

Ejemplo

curl -X POST "https://api.mb-suite.com/v1/crm/team/{user_id}/out-of-office" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "is_out_of_office": 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/team/{user_id}/out-of-office" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "is_out_of_office": true
}'