Dry run of crm.archive_cascade.execute for a prospect, person, company or deal (root: { type, id }, or entity_type + entity_id as crm.delete_cascade takes them): returns the root, the linked persons and companies that can be archived with it (archivable: no other active deal or prospect uses them) and the ones that must stay (kept, with the reason: shared_active_deals, shared_active_prospects or too_large). Nothing is written. Pass the ids you choose from archivable as also_archive. Requires the archive permission of the root type (archive_prospect, or edit_deal / edit_person / edit_company).
Scope
crm:read
Permission
Edit in the module
MCP tool
crm_archive_cascade_previewOn the full surface; on the compact one, mb_execute_operation with id: "crm.archive_cascade.preview".
Declared cost: up to 400 reads and 0 writes per call (they count against the daily quota).
Parameters
rootobjectbodyoptional
The record to archive (the root): { type, id }. Send this or entity_type + entity_id, not both.
entity_typeenumbodyoptional
The kind of the root record, as crm.delete_cascade takes it (with entity_id).
curl-X POST "https://api.mb-suite.com/v1/crm/archive-cascade/preview" \
-H"Authorization: Bearer $MB_API_KEY"
Try it with your test API key
With a test API key the request always goes to your practice organization: example data you can reset.
curl-X POST "https://api.mb-suite.com/v1/crm/archive-cascade/preview" \
-H"Authorization: Bearer $MB_TEST_KEY"
POST/v1/crm/archive-cascade
Archive a record with chosen linked records
crm.archive_cascade.execute
WriteSince 2026-11-01
Archives a prospect, person, company or deal (root: { type, id }, or entity_type + entity_id) and, optionally, the linked persons and companies listed in also_archive. The plan is rebuilt right before writing: anything not archivable at that moment (not linked to the root, or used by another active deal or prospect) is skipped and counted in skipped. Archiving is a state, not the trash: archived records leave lists, forecasts and reports and come back by unarchiving; nothing is deleted. reason is saved only on a prospect root. It does not emit webhook events. Requires the archive permission of the root type (archive_prospect, or edit_deal / edit_person / edit_company).
Scope
crm:write
Permission
Edit in the module
MCP tool
crm_archive_cascade_executeOn the full surface; on the compact one, mb_execute_operation with id: "crm.archive_cascade.execute".
Declared cost: up to 400 reads and 501 writes per call (they count against the daily quota).
Parameters
rootobjectbodyoptional
The record to archive (the root): { type, id }. Send this or entity_type + entity_id, not both.
entity_typeenumbodyoptional
The kind of the root record, as crm.delete_cascade takes it (with entity_id).
Values: prospect, person, company, deal
entity_idstringbodyoptional
The root record, by id (with entity_type).
also_archivearray<object>bodyoptional
The linked persons and companies to archive too, chosen from archivable of crm.archive_cascade.preview (up to 500).
curl-X POST "https://api.mb-suite.com/v1/crm/archive-cascade" \
-H"Authorization: Bearer $MB_API_KEY"
Try it with your test API key
With a test API key the request always goes to your practice organization: example data you can reset.
curl-X POST "https://api.mb-suite.com/v1/crm/archive-cascade" \
-H"Authorization: Bearer $MB_TEST_KEY"
POST/v1/crm/archive-cascade/bulk
Archive many records with their linked records
crm.archive_cascade.bulk
WriteBulk · up to 500Since 2026-11-01
Archives up to 500 roots of one type (prospects, persons, companies or deals: root_type + root_ids, or entity_type + entity_ids) and, with also_archive_persons / also_archive_companies, the persons and companies linked to them that no active record outside the batch uses (computed on the server; linked ids are never sent). A Manager archives any root; a seller only their own and the unassigned ones (one foreign id rejects the whole batch); ids that do not exist are skipped. Archiving is a state, not the trash. It does not emit webhook events. Bulk: outside the screen it requires a dry run (which returns the counts) and a confirm_token.
Needs confirmation: first dry_run: true (preview and confirm_token, valid 10 minutes and for one run), then the same body with confirm_token. In a few operations only with certain data: the description says when. Why and how: Dry run and confirm_token.
Scope
crm:write
Permission
Edit in the module
MCP tool
crm_archive_cascade_bulkOn the full surface; on the compact one, mb_execute_operation with id: "crm.archive_cascade.bulk".
Declared cost: up to 1500 reads and 1000 writes per call (they count against the daily quota).
Parameters
root_typeenumbodyoptional
The kind of the root records (with root_ids). Send root_type + root_ids, or entity_type + entity_ids.
Values: prospect, person, company, deal
root_idsarray<string>bodyoptional
The root records, by id.
entity_typeenumbodyoptional
The same as root_type, by the name crm.delete_cascade uses.
Values: prospect, person, company, deal
entity_idsarray<string>bodyoptional
The same as root_ids, by the name crm.delete_cascade uses.
also_archive_personsbooleanbodyoptional
Also archive the linked persons that no active record outside the batch uses.
Default: false
also_archive_companiesbooleanbodyoptional
Also archive the linked companies that no active record outside the batch uses.