Menú

Referencia de la API · CRM

Actividades

crm · activities · 8 operaciones

GET/v1/crm/activities

List activities (timeline of an entity, or the agenda)

crm.activities.list

LecturaIdempotenteDesde 2026-11-01

With entity_type + entity_id: the timeline of a deal, person, company or prospect (root notes, tasks, calls, meetings, emails and messages, newest first; replies and purged emails excluded; for API keys and third-party apps, emails of connected mailboxes appear only when the organization allows connected content and the credential was granted it; optional types filter). Without them: the agenda of tasks, calls and meetings by due date, with completion pending (default), done or all, an optional owner filter (team-wide only for managers; sellers get their own) and a due_from/dueTo window. Paginated by cursor.

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

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

Parámetros

limitintegerqueryopcional

How many items this page brings at most (see the maximum and the default in the schema).

Por defecto: 50

cursorstringqueryopcional

The next_cursor of the previous page, exactly as it came (only for the same list and filters); without it, the first page.

entity_typeenumqueryopcional

With entity_id: that record's timeline. Without both: the agenda (tasks, calls and meetings).

Valores: deal, person, company, prospect

entity_idstringqueryopcional

The record whose timeline to list (with entity_type).

typesarray<enum>queryopcional

Only these types.

Valores: call, email, meeting, note, task, whatsapp, file, custom

completionenumqueryopcional

Agenda: pending (default), done or all.

Valores: pending, done, all

owner_idstringqueryopcional

Agenda: only this person's (a member's user id); a seller only sees their own.

owner_idsarray<string>queryopcional

Agenda: only these persons' (up to 10).

due_fromintegerqueryopcional

Agenda: due from this moment, epoch ms.

due_tointegerqueryopcional

Agenda: due until this moment, epoch ms.

Respuesta

dataarray<object>
has_moreboolean
next_cursorstring

Errores

Ejemplo

curl "https://api.mb-suite.com/v1/crm/activities" \
  -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/activities" \
  -H "Authorization: Bearer $MB_TEST_KEY"
GET/v1/crm/activities/{activity_id}

Get one activity with its replies

crm.activities.get

LecturaIdempotenteDesde 2026-11-01

Returns an activity (note, task, call, meeting, email, message…) with its links to deals, persons, companies and prospects, and the replies of a note in order. For API keys and third-party apps, an email of a connected mailbox is not found unless the organization allows connected content and the credential was granted it. Not found if the id does not exist, the email was deleted, or a seller cannot see the deal it belongs to.

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

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

Parámetros

activity_idstringrutarequerido

The activity, by id (crm.activities.list).

Respuesta

activityobject
repliesarray<object>

Errores

Ejemplo

curl "https://api.mb-suite.com/v1/crm/activities/{activity_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 "https://api.mb-suite.com/v1/crm/activities/{activity_id}" \
  -H "Authorization: Bearer $MB_TEST_KEY"
POST/v1/crm/activities

Create a note, reply, task, call or meeting

crm.activities.create

EscrituraDesde 2026-11-01

Creates an activity by type. note: HTML content (sanitized), mentions, optional attachments; task: subject, due date, priority, assignee; call: optional subject, outcome, duration, completed_now for a call that already happened; meeting: subject, date, provider, URL, attendees; reply: a note under parent_activity_id that inherits its links. For note/task/call/meeting pass target (the deal, person, company or prospect it belongs to): the activity is linked to that entity and its related ones, and links can narrow the set. Mentions notify the mentioned members. Requires create_activity.

Alcance
crm:write
Permiso
Editar en el módulo
Tool del MCP
crm_activities_createEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.activities.create".
Eventos que puede emitir
crm.activity.created

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

Parámetros

Sin parámetros.

Respuesta

activity_idstring

Errores

Ejemplo

curl -X POST "https://api.mb-suite.com/v1/crm/activities" \
  -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 POST "https://api.mb-suite.com/v1/crm/activities" \
  -H "Authorization: Bearer $MB_TEST_KEY"
PATCH/v1/crm/activities/{activity_id}

Update an activity (fields, pin, links)

crm.activities.update

EscrituraDesde 2026-11-01

Updates an activity: subject, description, content, mentions (new ones are notified), due date, completed_at, duration, owner (a member), metadata (merged); pinned fixes it on top of the timeline; links replaces, per dimension given, the deals/companies/persons/prospects it belongs to (unknown ids are dropped). Requires edit_activity (owner or creator of the activity).

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

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

Parámetros

activity_idstringrutarequerido

The activity, by id (crm.activities.list).

updatesobjectcuerporequerido

The fields to change; the rest stay as they are.

Respuesta

oktrue

Errores

Ejemplo

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

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/activities/{activity_id}" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "updates": {}
}'
POST/v1/crm/activities/{activity_id}/complete

Complete or reopen a task, call or meeting

crm.activities.complete

EscrituraIdempotenteDesde 2026-11-01

Marks an activity as completed (completed: true, now) or pending again (false); a completed sequence task lets its enrollment continue and a completed call counts as an outbound contact. Requires edit_activity.

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

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

Parámetros

activity_idstringrutarequerido

The activity, by id (crm.activities.list).

completedbooleancuerporequerido

true marks it done now; false makes it pending again.

Respuesta

oktrue

Errores

Ejemplo

curl -X POST "https://api.mb-suite.com/v1/crm/activities/{activity_id}/complete" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "completed": 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/activities/{activity_id}/complete" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "completed": true
}'
DELETE/v1/crm/activities/{activity_id}

Delete an activity

crm.activities.delete

IrreversibleDesde 2026-11-01

Deletes an activity and the replies of a note; they go to the 30-day trash and restore together. An email is not deleted but emptied (a tombstone that keeps the mail sync from recreating it) and does not go to the trash. Requires delete_activity.

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

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

Parámetros

activity_idstringrutarequerido

The activity, by id (crm.activities.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/activities/{activity_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/activities/{activity_id}" \
  -H "Authorization: Bearer $MB_TEST_KEY"
POST/v1/crm/activities/bulk/update

Reschedule, reassign or complete many activities

crm.activities.bulk.update

EscrituraMasiva · hasta 500Desde 2026-11-01

Updates up to 500 activities in one call, with the changes inside updates (as in crm.activities.update): updates.due_date (epoch ms; null clears it), updates.owner_id (a member) and/or updates.completed. Activities that already are that way are left as they are (unchanged: completing one already done keeps the time it was done) and ids that do not exist (or deleted emails) are skipped (not_found). Rescheduling or completing tasks, calls and meetings updates the pending and overdue counts of their deals and prospects. Manager-tier only. Outside the screen it requires a dry run and a confirm_token.

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
Tool del MCP
crm_activities_bulk_updateEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.activities.bulk.update".

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

Parámetros

activity_idsarray<string>cuerporequerido

The activities (up to 500), by id (crm.activities.list).

updatesobjectcuerporequerido

The changes, applied to every activity of the batch.

Respuesta

updatednumber

How many activities changed.

unchangednumber

How many activities already were that way: not written.

not_foundarray<string>

The ids that do not exist in the organization (or are merged-away duplicates): skipped.

Errores

Ejemplo

curl -X POST "https://api.mb-suite.com/v1/crm/activities/bulk/update" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "activity_ids": [
    "ACTIVITY_ID"
  ],
  "updates": {},
  "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/activities/bulk/update" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "activity_ids": [
    "ACTIVITY_ID"
  ],
  "updates": {},
  "dry_run": true
}'
POST/v1/crm/activities/bulk/delete

Delete many activities

crm.activities.bulk.delete

IrreversibleMasiva · hasta 500Desde 2026-11-01

Deletes up to 500 activities; each goes to the 30-day trash and can be restored one by one (an email is emptied instead, as with crm.activities.delete). deleted counts the activities that existed; the other ids come back in not_found. Manager-tier only. Outside the screen it requires a dry run and a confirm_token.

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_activities_bulk_deleteEn la superficie completa; en la compacta, mb_execute_operation con id: "crm.activities.bulk.delete".

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

Parámetros

activity_idsarray<string>cuerporequerido

The activities (up to 500), by id (crm.activities.list).

Respuesta

deletednumber

How many activities were deleted (each one goes to the 30-day trash).

not_foundarray<string>

The ids that do not exist in the organization: nothing to delete.

trash_item_idsarray<string>

The trash items this deletion left, one per record: the item_id of platform.trash.restore (POST /trash/{item_id}/restore).

trash_expires_atnumber

When the copy leaves the trash for good (epoch ms): 30 days after the deletion.

Errores

Ejemplo

curl -X POST "https://api.mb-suite.com/v1/crm/activities/bulk/delete" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "activity_ids": [
    "ACTIVITY_ID"
  ],
  "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/activities/bulk/delete" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "activity_ids": [
    "ACTIVITY_ID"
  ],
  "dry_run": true
}'