MCPDirectory
Update companies in bulk
distru-bulk-update-companiesWriteApplies the same changes to many companies, your own included, in one all-or-nothing save.
Inputs
Every tool also takes the common inputs.
| Field | Type | Required | Description |
|---|---|---|---|
| ids | string[] | Yes | Companies to change. Resolve via distru-search-companies. |
| category | string or null | No | Resolve via distru-search-lookups (type COMPANY_CATEGORY). Send null to clear it. |
| relationshipTypeId | string or null | No | Resolve via distru-search-lookups (type RELATIONSHIP_TYPE). Send null to clear it. |
| groupId | string or null | No | Resolve via distru-search-lookups (type COMPANY_GROUP). Send null to clear it. |
| ownerId | string or null | No | Sales rep. Resolve via distru-search-users. Send null to clear it. |
| defaultPaymentTermId | string or null | No | Resolve via distru-search-lookups (type PAYMENT_TERM). Send null to clear it. |
| defaultInventoryLocationId | string or null | No | One of your own locations: the default inventory source on this company's sales orders. Resolve via distru-search-locations. Send null to clear it. |
| invoiceEmail | string or null | No | Where invoices are emailed. Comma-separated for several. Send null to clear it. |
| salesOrderEmail | string or null | No | Where sales orders are emailed. Comma-separated for several. Send null to clear it. |
| purchaseOrderEmail | string or null | No | Where purchase orders are emailed. Comma-separated for several. Send null to clear it. |
| orderShipmentEmail | string or null | No | Where order shipments are emailed. Comma-separated for several. Send null to clear it. |
| defaultSalesOrderNotes | string or null | No | Copied onto new orders. Send null to clear it. |
| defaultPurchaseOrderNotes | string or null | No | Copied onto new orders. Send null to clear it. |
| website | string or null | No | Send null to clear it. |
| description | string or null | No | Send null to clear it. |
| customFields | object[] | No | Only the fields listed change. A required custom field cannot be cleared. |
| customFields[]. | string | Yes | Resolve via distru-search-custom-fields (entityType COMPANY). |
| customFields[]. | string or string[] | Yes | TEXT: the text. DROPDOWN: the option name. CHECKBOX: an array of option names. DATE: YYYY-MM-DD, company timezone. "" or [] clears the field. |
Output
Presence on a nested field assumes its parent exists.
| Field | Type | Presence |
|---|---|---|
| companies | object[] | Always |
| companies[]. | string | Always |
| companies[]. | string | Always |
| companies[]. | string | Always |
What the AI reads
Applies the same changes to many companies, your own included, in one all-or-nothing save. For one company, or values that differ per company (name, legal name, email, phone, Outstanding Balance Threshold), use distru-mutate-company. Refused whole when an id is unknown, or permission denied when your team can't see a company. Read the new values with distru-get-company. Sparse update: only the fields passed change, on every company; a field sent as null is cleared on all of them.