# Find duplicate customers for review

Scans customers for likely duplicates, checks Shopify merge eligibility, and reports up to 500 candidates for review. Optional auto-merge is off by default.

Canonical URL: https://templates.jsworkflows.com/templates/find-duplicate-customers-for-review/

## When to use this template

This template is built for Shopify stores using the JsWorkflows app.

What it does: Scans customers for likely duplicates, checks Shopify merge eligibility, and reports up to 500 candidates for review. Optional auto-merge is off by default.

It is designed for Shopify customer operations and gives you a production-ready starting point instead of building the automation from scratch.

This workflow uses the scheduled trigger model and starts from the "Weekly schedule" trigger. It includes setup fields for merchant-facing values, so you can configure the workflow before installing it.

## Metadata

- Category: Customers
- Trigger: Weekly schedule
- Workflow type: Scheduled
- Complexity: advanced
- Usage class: growth-friendly

## Connected services

- None

## Additional Shopify scopes

- write_customer_merge

## Setup fields

- Customer search query (`CUSTOMER_SEARCH_QUERY`)
  - Type: textarea
  - Storage: config
  - Required: no
  - Description: Optional Shopify customer search query. Leave empty to scan newest customers first, or narrow the scan with filters such as tag:vip or created_at:>2026-01-01.
- Maximum customers per run (`MAX_CUSTOMERS_PER_RUN`)
  - Type: number
  - Storage: config
  - Required: yes
  - Description: Safety cap for how many customers one scan can read.
- Maximum candidates to report (`MAX_CANDIDATES_TO_REPORT`)
  - Type: number
  - Storage: config
  - Required: yes
  - Description: Maximum duplicate customer pairs to preview and log for review. The highest allowed value is 500.
- Match exact email (`INCLUDE_EMAIL_MATCHES`)
  - Type: checkbox
  - Storage: config
  - Required: yes
  - Description: Find customers with the same normalized email address.
- Match exact phone (`INCLUDE_PHONE_MATCHES`)
  - Type: checkbox
  - Storage: config
  - Required: yes
  - Description: Find customers with the same normalized phone number.
- Match name and address (`INCLUDE_NAME_ADDRESS_MATCHES`)
  - Type: checkbox
  - Storage: config
  - Required: yes
  - Description: Find customers with the same first name, last name, default address, postal code, and country.
- Tag candidates (`TAG_CANDIDATES`)
  - Type: checkbox
  - Storage: config
  - Required: yes
  - Description: Add a tag to customers that appear in a duplicate candidate pair.
- Candidate tag (`CANDIDATE_TAG`)
  - Type: text
  - Storage: config
  - Required: yes
  - Description: Tag added when Tag candidates is enabled.
- Automatic merge mode (`AUTO_MERGE_MODE`)
  - Type: select
  - Storage: config
  - Required: yes
  - Description: Keep off unless you have reviewed matching behavior and are comfortable letting the workflow start customer merge jobs.

## Setup guide

## Before you start

This template helps find possible duplicate Shopify customers. It is conservative by default: it reports candidates for review and does not merge customers unless you explicitly change the automatic merge setting.

## What it checks

- Exact email matches
- Exact phone matches
- Name plus default address matches
- Shopify customer merge eligibility for each reported candidate

## Configure in setup

- `Customer search query`: optional Shopify customer search query to narrow the scan
- `Maximum customers per run`: safety cap for one scheduled scan
- `Maximum candidates to report`: maximum number of duplicate pairs logged for review. The setup field allows up to 500 candidates so logs stay reviewable.
- `Tag candidates`: optionally add a review tag to both customers in each candidate pair
- `Automatic merge mode`: keep this off until you have reviewed dry-run results

## Safety notes

- Automatic merging is off by default
- Name plus address matches are never auto-merged because they can identify family members or shared addresses
- Shopify can still block a merge if customer records contain conflicting fields
- The workflow requires Shopify customer merge access before it can preview or merge customers

