Automated Lead Data Cleaning & Deduplication

Automated lead data cleaning workflow built with Make.com and Google Sheets to identify fresh and duplicate records, route them into separate sheets, and maintain a cleaner master lead database.

Short Summary

This project demonstrates a GTM data-management workflow that processes newly added lead records from a Raw Data sheet, routes them based on their status, separates fresh leads from duplicates, and adds accepted records to the Master Data sheet.

Core workflow:

Raw Data → Watch New Rows → Router → Fresh / Duplicate → Output Sheets → Master Data

Tools: Make.com, Google Sheets

Project Category

CategoryDetails
Project TypeGTM Engineering / RevOps Automation
Primary GoalAutomate lead-data cleaning and routing
WorkflowGoogle Sheets → Make.com → Google Sheets
InputRaw Data
Automation LayerMake.com
ProcessingStatus-based routing
Fresh OutputFresh Data
Duplicate OutputDuplicates
Master DatabaseMaster Data
Core Use CaseLead Data Hygiene & Deduplication

 

Project Overview

As lead datasets grow, keeping prospect records clean becomes an important part of GTM operations. Incoming lead data needs to be separated from existing records so that fresh leads can be added to the master database without making duplicate records harder to manage.

To solve this problem, I built a Make.com workflow using Google Sheets that processes newly added lead records and routes them based on their status.

The workflow starts with a Raw Data sheet. Make’s Watch New Rows module detects newly added records and passes the data into a Router. The Router then separates records into two paths: Fresh and Duplicate.

Fresh records are sent to the Fresh Data sheet and added to Master Data, while duplicate records are routed to the Duplicates sheet.

The goal was to create a repeatable data-management process that makes lead handling more organized and reduces the manual effort involved in separating new and duplicate records.

The Problem I Wanted to Solve

When working with lead datasets, manually checking every incoming record against existing data can become time-consuming and difficult to manage consistently.

The main problem was:

How can incoming lead records be automatically separated into Fresh and Duplicate records and routed to the correct destination?

The workflow needed to handle the incoming data, apply the appropriate status-based logic, and ensure that each record reached the correct sheet.

This also required understanding how Make processes new spreadsheet rows, how data is passed between modules, and how individual fields need to be mapped into destination sheets.

Expected Business Impact

The workflow is designed to make lead-data management more consistent by separating fresh records from duplicates before they become part of the broader master dataset.

Fresh records can be reviewed in Fresh Data and added to Master Data, while duplicate records are kept separately in Duplicates.

This creates a cleaner structure for managing incoming leads and provides a more reliable foundation for downstream GTM activities that depend on organized lead data.

What I Built

The core automation is:

Raw Data → Watch New Rows → Router → Fresh / Duplicate

The Watch New Rows module captures newly added records and makes their information available as Bundle 1.

The Router then evaluates the record’s Status and sends it through the appropriate route.

StatusRouter FilterDestination
FreshStatus = FreshFresh Data
DuplicateStatus = DuplicateDuplicates

For fresh records, the lead is also added to Master Data.

The relevant fields mapped from Bundle 1 included:

Name · Company · Email · Phone · LinkedIn URL

Lead Data Management

The workflow uses Google Sheets as both the source and destination environment.

Raw Data acts as the incoming data layer, while Fresh Data, Duplicates, and Master Data serve different operational purposes.

This separation makes the workflow easier to manage because each sheet has a defined role:

Raw Data → Incoming records
Fresh Data → Newly accepted records
Duplicates → Duplicate records
Master Data → Consolidated fresh lead data

One important part of the implementation was understanding that Fresh and Fresh Data are not the same thing. Fresh is the Status value used by the Router, while Fresh Data is the destination sheet.

The same distinction applies to Duplicate and Duplicates.

My Approach

I approached the workflow from the data-flow-first perspective.

First, I identified the source of incoming records and how new rows should enter the automation. I then configured Watch New Rows and examined the output bundle to understand how Make was receiving the lead information.

Next, I created the Router logic using two status-based filters:

Status = Fresh

and

Status = Duplicate

After configuring the routes, I mapped the fields from Bundle 1 into the respective Add a Row modules.

For fresh records, I mapped the lead information into both Fresh Data and Master Data. Duplicate records were mapped to the Duplicates sheet.

I then tested the workflow using controlled new records and adjusted the processing limit to 20 during testing so multiple records could be processed in an execution.

GTM Workflow Architecture

The complete workflow can be viewed as:

The workflow creates a simple data-quality layer between incoming lead records and the master database.

Instead of sending every incoming record directly into Master Data, the workflow first routes the record according to its status.

Challenges I Faced

The first challenge was understanding why existing rows were not being processed. Watch New Rows only responds to newly added rows, so records that were already present in Raw Data were not automatically picked up during testing.

To test the scenario correctly, I started the workflow and added the records again as new rows.

I also initially had an issue where records were not being routed to the correct output sheets. The Router filters were not configured correctly, so I created separate conditions for Status = Fresh and Status = Duplicate.

Another important issue was field mapping. Selecting the destination sheets was not enough; I needed to explicitly map the information from Bundle 1 generated by Watch New Rows into the corresponding Add a Row fields.

Once I mapped Name, Company, Email, Phone, and LinkedIn URL, the lead data could be written correctly into the destination sheets.

I also encountered some confusion between status values and sheet names. Understanding that Fresh / Duplicate are status values, while Fresh Data / Duplicates are sheet names, helped me configure the routing logic correctly.

During testing, I increased the Watch New Rows Limit to 20 so that more newly added records could be processed in a single execution.

Deliverables

DeliverablePurpose
Raw DataIncoming lead records
Watch New RowsDetect newly added records
RouterSeparate records by status
Fresh DataStore fresh records
DuplicatesSeparate duplicate records
Master DataMaintain consolidated fresh data
Field MappingTransfer lead information between modules
Testing SetupProcess multiple records during testing

 

Key Learnings

The biggest learning from this project was understanding how data actually moves through a Make.com workflow.

I learned that a trigger such as Watch New Rows only processes records that meet its trigger conditions, and that the output bundle needs to be understood before configuring downstream modules.

I also learned how Router filters control the path a record takes and why correct field mapping is essential when writing data into another Google Sheet.

Most importantly, the project showed me that lead-data automation is not only about moving records. It is also about creating a consistent process for determining where each record belongs and how it should be handled.

Skills Practiced

GTM Engineering

  • GTM workflow design
  • Lead data workflow architecture
  • Process automation

RevOps

  • Lead data management
  • Data hygiene
  • Deduplication
  • Master data management

Automation

  • Make.com
  • Router & filter logic
  • Trigger configuration
  • Field mapping
  • Workflow testing
  • Error troubleshooting

Data Operations

  • Google Sheets automation
  • Structured lead data
  • Record routing
  • Data validation

Lead Management

  • Lead classification
  • Fresh vs. duplicate identification
  • Lead database organization
  • Data-quality management

Reflection

This project gave me practical experience working with lead-data operations and automation logic.

The most valuable part was troubleshooting the workflow when the expected records were not being processed or routed correctly. By following the data from Watch New Rows → Bundle 1 → Router → Add a Row, I learned how to identify where the workflow was failing and correct the configuration rather than simply rebuilding the entire scenario.

The final workflow provides a structured process for handling incoming lead data:

Raw Data → Watch New Rows → Router → Fresh / Duplicate → Fresh Data / Duplicates → Master Data

This project strengthened my understanding of GTM data hygiene, automation logic, field mapping, routing, and RevOps operations, while creating a foundation that can support cleaner downstream lead management.

Want to Explore More Projects?

Explore the more projects or get in touch to discuss a new idea.