GET /api/crm/cleaning/capabilities, which returns the same information this page
documents.
This page is checked against Clustr’s cleaning engine in CI: the tables below cannot go stale
without breaking a build.
Provider capability matrix
These are the three CRM-write capabilities CRM Cleaning’s detectors depend on.- Record merge: a real API to merge two records into one, keeping a single survivor.
- Associations: a way to write links between records, such as a contact to its company.
- Lifecycle stages: a HubSpot-style lifecycle-stage and deal-pipeline model. Attio has no equivalent concept; Salesforce’s Stage and Status fields model something different, not a drop-in substitute.
Detector actionability by provider
- Full: the detector runs with everything it needs. Its changes follow the rule’s setting (Off, Ask me or Do it), and its findings appear in the findings report.
- Flag only: the detector runs, but this provider has no write API for its fix, so everything it finds goes to the findings report and you fix it in your CRM directly.
- Skipped: the detector does not run at all. This provider has no equivalent of the concept it checks (for example lifecycle stages on Attio), so a finding would have nothing real to point at.
- Mixed (duplicate detection only): duplicate groups appear in the findings report on every provider. Merging a group also needs record merge, so on Salesforce and Attio the group is visible but the merge action is not offered. Duplicate deals work the same way: every provider reports them, and only HubSpot can merge a group, when a person asks for it.