Many B2B companies already store account managers in an ERP or CRM before Magento enters the picture. The integration question is therefore not simply how to copy a representative's name. You must decide which system owns the relationship, how assignments are matched, and what happens when a person or customer changes.
Define the source of truth first
Choose one owner for each kind of data:
| Data | Typical owner | Magento's role |
|---|---|---|
| Employee identity and employment status | Identity provider or HR/CRM | Staff account and active status |
| Customer master and external customer number | ERP or CRM | Commerce customer and matching key |
| Primary account manager | CRM or ERP | Customer-to-staff assignment |
| Supporting sales team | CRM or Magento | Additional permitted relationships |
| Orders and storefront activity | Magento | Commerce record and attribution |
| Commission settlement | ERP, payroll, or BI | Receives validated attribution data |
Avoid bidirectional updates to the same field unless conflict resolution is explicit. A nightly CRM import and a manual Magento change can otherwise overwrite each other indefinitely.
Choose the interface for the job
SoftwareSilo offers three separate Sales Staff integration add-ons:
REST/SOAP API provides staff record operations, staff search, customer lists, assignment and unassignment, and controlled customer-token creation for an authenticated staff or integration flow.
GraphQL suits headless storefronts and custom sales applications. It exposes staff and group queries, assigned-customer queries, staff authentication and customer-context token operations.
Import/Export uses Magento's import/export model for CSV-based staff data, including customer IDs, website, status, commission, and selected permissions. A CLI command supports scheduled file processing.
The base Sales Staff module remains the operational model. API, GraphQL, and Import/Export are add-ons rather than included base features.
Match records with stable keys
Email can identify a person during an initial migration, but it is a poor permanent foreign key because addresses change. Keep an external employee identifier in the integration layer and map it to Magento's staff ID. Do the same for customers using a stable ERP or CRM customer number.
Never infer ownership from a display name. Two employees may share a name, and renamed accounts should not create duplicates.
Keep permissions out of ad-hoc payloads
Decide whether the upstream system sends individual capabilities or a staff-group code. Group-based mapping is usually easier to review: inside sales, field sales, team lead, and integration service account can each have a documented permission set.
Use a Magento integration with only the necessary ACL resources. Store credentials outside source control, rotate them, and log rejected updates without including passwords or tokens. Adobe's integration model is designed for external ERP and CRM access, but least privilege still has to be configured.
Test lifecycle changes
An integration is not finished when the first import succeeds. Test:
- a new employee and an existing employee update;
- duplicate email or external ID handling;
- customer reassignment and overlapping supporting staff;
- employee deactivation without deleting order history;
- website changes and disallowed cross-website assignments;
- partial failures and safe retries;
- customer-context access for assigned and unassigned accounts;
- downstream order attribution after a handover.
For the operational side of that last case, see how to reassign customers when a sales rep leaves. The available add-ons are listed with SoftwareSilo Sales Staff.
