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).
Scope
crm:read
Permission
View the module
MCP tool
crm_settings_seller_scope_getOn the full surface; on the compact one, mb_execute_operation with id: "crm.settings.seller_scope.get".
Declared cost: up to 2 reads and 0 writes per call (they count against the daily quota).
Parameters
No parameters.
Response
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).
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.
Scope
crm:write
Permission
Edit in the module
MCP tool
crm_settings_seller_scope_updateOn the full surface; on the compact one, mb_execute_operation with id: "crm.settings.seller_scope.update".
Declared cost: up to 200 reads and 101 writes per call (they count against the daily quota).
Parameters
enforcedbooleanbodyrequired
true: sales_rep members only see and work their own records (and the unassigned ones); false: everyone sees the whole CRM.
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).
Scope
crm:read
Permission
View the module
MCP tool
crm_settings_scoring_getOn the full surface; on the compact one, mb_execute_operation with id: "crm.settings.scoring.get".
Declared cost: up to 1 reads and 0 writes per call (they count against the daily quota).
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.
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:writeand “Allow deletions” (crm:delete in OAuth)
Permission
Edit in the module · CRM action: manage_ai_config
MCP tool
crm_settings_scoring_knowledge_deleteOn the full surface; on the compact one, mb_execute_operation with id: "crm.settings.scoring.knowledge.delete".
Declared cost: up to 1001 reads and 1001 writes per call (they count against the daily quota).
Parameters
blockenumpathrequired
The block the file belongs to: prospects, deals or coach.
entry_idstringpathrequired
The file's id: file_knowledge[].id of that block in crm.settings.scoring.get.
Score a sample lead with the current configuration
crm.settings.scoring.test
WriteSince 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.
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 · CRM action: manage_ai_config
MCP tool
crm_settings_scoring_testOn the full surface; on the compact one, mb_execute_operation with id: "crm.settings.scoring.test".
Declared cost: up to 20 reads and 0 writes per call (they count against the daily quota). Touches an external platform (ai): it counts against the external operations quota.
Parameters
blockenumbodyrequired
Which scoring to try: prospects or deals (its agent and criteria).
Values: prospects, deals
sampleobjectbodyrequired
A made-up lead: nothing of it is stored.
Response
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_…).
With a test API key the request always goes to your practice organization: example data you can reset.In the practice organization this operation is not simulated (it reaches another platform): it answers 409 sandbox_external_unavailable.
GET/v1/crm/settings/attribution
Get the visible attribution model
crm.settings.attribution.get
ReadIdempotentSince 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.
Scope
crm:read
Permission
View the module
MCP tool
crm_settings_attribution_getOn the full surface; on the compact one, mb_execute_operation with id: "crm.settings.attribution.get".
Declared cost: up to 1 reads and 0 writes per call (they count against the daily quota).
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.
Scope
crm:write
Permission
Edit in the module
MCP tool
crm_settings_attribution_updateOn the full surface; on the compact one, mb_execute_operation with id: "crm.settings.attribution.update".
Declared cost: up to 0 reads and 1 writes per call (they count against the daily quota).
Parameters
modelenumbodyrequired
Which touch the attribution views credit: first (default) or last; it changes how the data is shown, not what is stored.
Get the CRM's organization settings (own domains, prospect currency)
crm.settings.own_domains.get
ReadIdempotentSince 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).
Scope
crm:read
Permission
View the module
MCP tool
crm_settings_own_domains_getOn the full surface; on the compact one, mb_execute_operation with id: "crm.settings.own_domains.get".
Declared cost: up to 1 reads and 0 writes per call (they count against the daily quota).
Parameters
No parameters.
Response
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).
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.
Scope
crm:write
Permission
Edit in the module
MCP tool
crm_settings_own_domains_updateOn the full surface; on the compact one, mb_execute_operation with id: "crm.settings.own_domains.update".
Declared cost: up to 0 reads and 1 writes per call (they count against the daily quota).
Parameters
domainsarray<string>bodyrequired
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.
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.
Scope
crm:write
Permission
Edit in the module
MCP tool
crm_settings_prospects_updateOn the full surface; on the compact one, mb_execute_operation with id: "crm.settings.prospects.update".
Declared cost: up to 0 reads and 1 writes per call (they count against the daily quota).
Parameters
prospect_currencystringbodyrequired
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.