Skip to main content
Version: Next

Review Workflow

Detection proposes; this screen is where you decide. Open it from the main navigation under Data Management → Duplicate Detection, which has one entry per element type.

Duplicate Detection in the main navigationDuplicate Detection in the main navigationDuplicate Detection in the main navigation

Both screens need the bptb_duplicates_permission user permission, and they additionally respect element workspaces: a group is only listed when you may view its reference, and members you may not view are withheld.

The review screen​

The data object duplicate review screenThe data object duplicate review screenThe data object duplicate review screen

On the left, the groups. Each row shows the reference element's key over its shortened path, and how many candidates it collected. Narrow the list with Search key or the class filter, and page through it at the bottom. Rerun duplicate analysis starts a new detection run from here.

Hide declined groups is on whenever the screen opens. It leaves out groups whose candidates have all been declined, so the list shows only work that is still open, and the page count follows. A group counts as open as long as its Open tab would still list a candidate for you. Turn the switch off to list the declined groups again, for example to restore a decline from the Declined tab.

On the right, the selected group. The members are listed with their score, highest first. The reference itself carries a Reference badge instead of a score — it is the element everything else in the group is being compared against, not a candidate.

The group is split into two tabs:

TabContents
OpenCandidates still awaiting a decision.
DeclinedCandidates you rejected. They stay listed here, and detection will not re-propose them.

The actions along the bottom:

ActionEffect
Decline suggestionsMarks the selected members as "not a duplicate". They move to the Declined tab.
RestoreOn the Declined tab: puts a member back into Open.
Recalculate groupRe-runs detection for this one reference, instead of the whole scope.
Delete referenceDeletes the reference element itself. The group ceases to exist with it; detection has to run again before the change is reflected elsewhere.

A group whose elements changed since the last run — a merge, or any ordinary save of a member — is flagged as outdated, with a banner and a shortcut to re-run detection for that one group. Until then its scores describe the data as it was before the change.

The outdated-detection banner on a groupThe outdated-detection banner on a groupThe outdated-detection banner on a group

If an element in the group was saved so recently that its embedding is still being generated, Recalculate group says so and asks you to try again in a moment rather than computing from a missing vector.

Images​

Asset Duplicate Search is the same screen for images, with previews instead of field values.

The asset duplicate review screenThe asset duplicate review screenThe asset duplicate review screen

Only images are deduplicated. Documents and text assets can be embedded and searched, but they never enter duplicate detection.

From an object's editor​

An object's editor also has a Duplicates tab listing the groups that object belongs to, so you can notice a duplicate while working on the record rather than only in the review screen. When it belongs to more groups than the tab shows, it says so and points to the full review screen.

Declining​

Declining is the answer to "the detector is wrong, these are different records". It is per member, not per group: you can decline two of five candidates and merge a third.

Declining the last open candidate of a group removes the group from the list while Hide declined groups is on. A decline stops applying once either element's content changes, and the group returns.

Declined members stay visible on the Declined tab and can be restored at any time. The decision survives later detection runs — that is the point of it. It is stored per element pair, independent of groups, so it is not deleted when a group is withdrawn either: it applies again when a rebuilt group has the same reference and neither element's content changed. A decline made in a group whose reference later changes does not appear in the new group, see Coupling to the embeddings configuration.

Merging​

Select exactly two elements and choose Compare & merge. One of the two becomes the merge target — the record that survives — and the other the merge source, the one being folded into it.

info

Merging data objects requires the Object Merger bundle. Without it the button reports Requires the Object Merger bundle. Image merging is built into this bundle and needs nothing extra.

The wizard adapts to the pair. The first and last steps always apply; the two middle steps appear only when they have something to do:

StepShown whenPurpose
1 MergealwaysCarry field values from the source into the target.
Assignmentsthe source has incoming referencesRe-point those references at the target.
Child assignmentsthe source has childrenMove the children under the target.
FinishalwaysDecide what happens to the leftover source.

The step chips at the top show which of them apply before you start, so you can see the shape of the job up front. Earlier steps stay revisitable; later ones unlock as you reach them.

The wizard offering Merge, Child assignments and FinishThe wizard offering Merge, Child assignments and FinishThe wizard offering Merge, Child assignments and Finish

Step 1 — Merge​

The merge step comparing two objects field by fieldThe merge step comparing two objects field by fieldThe merge step comparing two objects field by field

Source on the left, target on the right, field by field, with the similarity score in the header. Differing values are highlighted; the arrow beside a field copies the source value into the target.

  • Mirror view swaps the two roles. Use it when you picked the wrong survivor — and note that it changes which element the later steps are about, so the step chips can change with it.
  • Batch Apply copies several fields at once instead of one arrow at a time.
  • Revert undoes the pending changes and restores the target's original values.
  • Merge writes them to the target and moves to the next step.

Nothing is written until Merge is pressed. Without save permission on the target, the step warns and merging is not offered.

For images the equivalent step compares system data (path, filename, resolution, dates) and metadata rather than class fields, hides identical fields behind Expand unmodified fields, and marks values it cannot merge — calculated values, unsupported metadata types, and localized fields, which hold one value per language and cannot be merged as a whole.

Step 2 — Assignments​

Appears when something still points at the merge source. Deleting it now would leave those references dangling, so this step lists them and offers to re-point them at the merge target: Select assignments of the merge source to be replaced by the merge target, then Apply replacement to selected & Continue.

The assignments step listing an asset that points at the merge sourceThe assignments step listing an asset that points at the merge sourceThe assignments step listing an asset that points at the merge source

Each row is one thing pointing at the source, with its ID, type and path — in the screenshot a car image assigned to the object being merged away. Tick the ones to re-point.

You may Skip it and handle the references yourself. Note that skipping does not hold the wizard back: the guard on the Finish step only trips when a re-assignment that was started did not complete, so nothing stops you reaching the delete option with references still pointing at the source. Check the list before you skip it.

Step 3 — Child assignments​

Appears when the merge source has children — which is the case whenever the source is a parent record rather than a leaf. Deleting it would otherwise orphan them, so this step moves them under the merge target instead.

The child assignments step moving a variant under the merge targetThe child assignments step moving a variant under the merge targetThe child assignments step moving a variant under the merge target

The children are listed with their ID, current path and new path, and you select which to move. Because the new parent may already contain a child of the same name, the step handles naming up front:

  • A clash is flagged Rename suggested to avoid a duplicate path, and you edit the key inline.
  • A key is rejected when it is empty, contains /, already exists under the target, or collides with another row you are moving in the same batch.

Permissions are checked per child, and a child you may not move is listed with the reason rather than silently dropped: missing settings permission, missing publish permission, or a clash you would have to rename without the rename permission. Lacking create permission on the merge target blocks the whole step.

Long child lists are moved in batches — only the first page is listed, with a note that the remaining ones follow once these have moved. The move runs as a background job; if some children fail, the step says so and asks you to adjust their keys and try again.

Step 4 — Finish​

The merge target now has the values, the references and the children. This step decides what happens to the merge source, and it is the only step that can delete anything.

ChoiceEffect
Unpublish itThe object stays in the tree with its version history but is no longer delivered to any channel. Reversible at any time.
Delete itRemoves it. Choose it only once everything pointing at the source has been re-assigned — the wizard does not re-count the remaining references for you.
Do nothing for nowLeaves it in place and in the group, and decides later.

The finish step choosing what happens to the merged duplicateThe finish step choosing what happens to the merged duplicateThe finish step choosing what happens to the merged duplicate

What is offered depends on the situation. A source that is still published is called out as such — it would keep being delivered. One that is already unpublished gets a gentler note. A source that is the group's reference cannot be deleted here, because the group is built around it; delete it from the review screen instead. Options you lack permission for are not offered, and the step says which.

Assets have no unpublish. For an image, deleting the file is the only way to take it out of circulation, so that is the only action offered besides doing nothing.

The step guards against a half-finished job: if a re-assignment or child move was started and did not complete, it blocks the deletion and sends you back to that step. That guard tracks the jobs this wizard ran — it does not verify that no references or children are left over, so a step you skipped, or rows you left unticked, pass it unnoticed. Confirm & Finish closes the wizard.