Submitting Analysis and AutoMerge Requests
Everything else in this guide (connections, entity definitions, matching, ranking, precision) exists to make a request possible. The request is what actually runs.
The three-step cycle
Duplicate cleanup is not one operation. It is two service requests with a human judgment between them, and that middle step is not optional.
1. Analyze/Tag
You submit a request with Operation = Analyze/Tag. The service reads your CRM through the CRM connection, applies the configuration's FetchXML filter, matching rules, ranking rules, and precision rules, and writes the results back into your CRM as tagged duplicate sets.
Nothing is merged. Records are grouped, ranked, and scored. That is all.
2. Human validation
You, or the people who own the records, review what came back, inside your own CRM.
This is where you find out whether your rules mean what you thought they meant. Sets that look wrong are usually a matching rule that is too loose, a ranking rule that picks the wrong winner, or precision weights that don't reflect how identity actually works in your data. Adjust the configuration and run another Analyze/Tag pass.
Start in the dupes list views, work the high-precision end first, and use AutoMerge Set Primary and AutoMerge Ignore to correct individual sets as you go.
An AutoMerge request executes merges in bulk, and merges cannot be undone, not by AutoMerge and not by Dynamics' native merge. The only defense against a bad rule is having looked at its output first.
3. AutoMerge
Once you trust the tagged results, you submit a second, separate request with Operation = AutoMerge. The service merges the already-tagged sets in bulk.
Merging is filtered by a minimum precision threshold, which defaults to 100%, so only the highest-confidence sets are merged unless you deliberately lower it. Work downward from there as your confidence in the rules grows.
This step covers what's possible from the Management App: a bulk request across every tagged set above your threshold. AutoMerging can also happen directly inside the CRM: in bulk from a dupes list view, or one set at a time from the Potential Duplicates subgrid on a record's form.
Following a request
Every request has a Status Updates tab: a chronological log of processing steps, written as the service works. For AutoMerge operations it also carries an estimated completion time.
That tab is where you look when a request seems slow, and what you send us if you need help with one.
What to expect for scale
| Demo reference | ~9,000 Contacts analyzed, ~1,700 duplicates tagged, about 5 minutes |
| Large CRMs | The service handles tens of millions of records; it simply takes longer |
| Merge requests | Can run for hours; see request scheduling |
Maximum Duplicate Set Size
Requests carry a Maximum Duplicate Set Size, default 20. It caps how many records the tagging step will place in a single duplicate set.
When a genuine duplicate group is larger than the cap, tagging splits it into several sets of at most that size. Those sets merge normally, and the surviving winners get caught as a new set on the next Analyze/Tag pass.
This matters mainly as the lever for resolving timeouts. See Timeout errors.
Practical sequence for a new configuration
- Point the request at a Sandbox connection.
- Analyze/Tag with a narrow FetchXML filter.
- Review the precision distribution on the dashboard.
- Adjust rules, re-run, compare.
- Widen the filter; repeat until the output stops surprising you.
- Move to Production, Analyze/Tag, validate.
- AutoMerge at 100% precision. Lower the threshold only as your confidence justifies it.