Detecting duplicate orders ensures your team isn't wasting time on redundant work or processing the same request twice. To do this reliably, the system automatically generates a standardized "address fingerprint" for every new intake, compares it against historic orders, and assigns a duplicate status—all while protecting any statuses that have already been manually verified by your team.
flowchart TD
A[New Order Intake] --> B[Generate Address Fingerprint]
B --> C{Is Status Protected?}
C -- Yes --> D[Keep Existing Status]
C -- No --> E{Is it a Second Order?}
E -- Yes --> F[Status: Second Order]
E -- No --> G{Measurement Required?}
G -- No --> H[Clear Status]
G -- Yes --> I{Fingerprint Match?}
I -- Exact Full Match --> J["Status: ✅ PD"]
I -- Base Match Only --> K["Status: ⚠️ PD?"]
I -- No Match --> L["Status: ❌ No"]How Address Fingerprinting Works
Because addresses are often typed differently (e.g., "123 N. Main Street Apt 4" vs "123 North Main St #4"), the system strips away formatting to create a clean, comparable string of text called a fingerprint.
The system generates two types of fingerprints for every order:
Base Fingerprint: Contains only the primary street number and street name. All spaces, punctuation, and directional words (North, S, NW) are removed.
Full Fingerprint: Combines the Base Fingerprint with the unit/apartment number and the 5-digit zip code.
| Raw Address Input | Base Fingerprint | Full Fingerprint |
|---|---|---|
| 123 N. Main St. Apt 4, 12345 | 123main | 123main-u4-12345 |
| 123 North Main Street #4, 12345 | 123main | 123main-u4-12345 |
| 4500 E Broad Way Ste 200, 90210 | 4500broad | 4500broad-u200-90210 |
By comparing fingerprints rather than raw text, the system can catch duplicates even if the original data entry was slightly inconsistent.
The Detection Process
When a new order enters the system, it goes through a strict sequence of checks to determine its final Prior Duplicate (PD) status.
- 1
Protect Existing Statuses
First, the system checks if a team member has already reviewed the order and applied a manual status. If the current PD status is one of the protected labels, the system stops and will not overwrite it.
- 2
Check for Second Orders
If the status isn't protected, the system looks for an exact match using the 2nd Order Search String. If a match is found on a previous order, the status is immediately updated to
Second Order. - 3
Verify Measurement Requirements
The system checks the Measurement field. If measurement is not required (e.g., marked as "No"), the duplicate check is skipped, and the PD status is cleared. If measurement is required ("Yes"), it proceeds to the final fingerprint check.
- 4
Evaluate Fingerprint Matches
Finally, the system compares the new order's fingerprints against the historic address database:
Exact Match (
✅ PD): The Full Fingerprint (street, unit, and zip) matches a previous order perfectly.Partial Match (
⚠️ PD?): Only the Base Fingerprint matches. This usually means the street address is the same, but the unit number or zip code differs.No Match (
❌ No): No historic matches were found.
Self-Exclusion: When searching the historic database, the system automatically ignores the current Order ID. This prevents an order from accidentally flagging itself as a duplicate.
Protected Statuses
To prevent automation from overwriting human judgment, the following statuses are "locked." If an order already has one of these labels in Monday.com, the automated duplicate checker will leave it exactly as is:
PD (Same)PD UpPD DownSecond Order✅ PD⚠️ PD?