
Post: Reconcile Keap Delta Exports in Google Sheets (Step-by-Step)
Keap delta exports contain only the contacts that changed since your last export. To reconcile them against your master list, you set up a three-tab Google Sheet, standardize both files, flag new versus updated records with VLOOKUP, and apply changes with INDEX/MATCH. The whole process takes under 30 minutes once the sheet is built.
What Is a Keap Delta Export?
A Keap delta export is a CSV file that includes only the contact records modified after a specific date. Unlike a full export that pulls every contact in your database, a delta export gives you a targeted slice of changes: new contacts added, existing contacts updated, and any field-level edits made during that window.
The practical benefit is file size and processing speed. A full Keap database with 20,000 contacts produces a large CSV that is slow to import and hard to diff manually. A delta export for the past week produces a manageable file with only the records that matter. The reconciliation challenge is merging that smaller file back into your master sheet without duplicating existing records or missing true updates.
Step 1: Export Delta and Full Records from Keap
Pull both files from Keap before you open Google Sheets. You need two exports for this workflow.
- Navigate to Contacts → Search in Keap and filter by Date Modified for your delta window (the last 7 days, last 30 days, or since your last reconciliation run).
- Export that filtered result as CSV. This is your delta file.
- Run a second export with no date filter to pull your full contact database. This is your master file.
- Save both files locally with clear names:
keap-delta-2026-07-29.csvandkeap-full-2026-07-29.csv.
Make sure both exports include the same columns. The reconciliation formulas depend on matching column headers between the two files. If your delta export has a column the master export does not, add that column to your sheet structure before importing.
Step 2: Set Up a Google Sheet with Three Tabs
Create a new Google Sheet and name the three tabs exactly as shown below. Consistent tab names matter because the formulas in later steps reference them by name.
- Delta — raw import of the delta CSV
- Master — raw import of the full contact CSV
- Reconciled — the working output where flagged and merged data lives
Do not put anything in the Reconciled tab yet. Leave it blank until both source tabs are populated and standardized. Having a dedicated output tab keeps the source data clean and makes it straightforward to audit the logic if a formula produces an unexpected result.
Step 3: Import and Standardize the Delta Export
Import your delta CSV into the Delta tab. In Google Sheets, go to File → Import, choose your delta CSV, and select Insert into current sheet with Replace current sheet on the Delta tab.
Once imported, standardize two things before moving on:
- Contact ID column: Keap contact IDs are numeric, but Google Sheets treats leading zeros and large integers inconsistently. Select the ID column, format it as Plain text (Format → Number → Plain text), and confirm the values display without scientific notation.
- Date fields: Keap exports dates in ISO 8601 format. If your downstream process expects MM/DD/YYYY, use
=TEXT(A2,"MM/DD/YYYY")in a helper column to reformat before reconciling.
Leave the original imported columns intact. Add any standardization as new helper columns to the right so you preserve the raw data for reference.
Step 4: Import and Standardize the Full Master Data
Repeat the import process for your full export, targeting the Master tab. Use the same File → Import path and insert it into the Master tab.
Apply the same standardization steps from Step 3 to the Master tab:
- Format the Contact ID column as Plain text.
- Reformat any date fields using helper columns if needed.
- Confirm the column headers in Master exactly match the headers in Delta. Case matters.
Emailandemailare treated as different columns by VLOOKUP.
At this point you have two clean, consistently formatted tabs. The Master tab is your baseline. The Delta tab is the set of changes you want to reconcile against it.
Step 5: Flag New vs. Updated Records with VLOOKUP
In the Reconciled tab, pull over all rows from the Delta tab and add a Status column that identifies each record as either NEW or UPDATED.
Assuming your Contact ID is in column A on the Delta tab and in column A on the Master tab, paste this header row into Reconciled row 1, then in row 2 add your VLOOKUP status formula:
=IF(ISNA(VLOOKUP(Delta!A2,Master!A:A,1,FALSE)),"NEW","UPDATED")
This formula looks up the delta record’s Contact ID in the Master tab’s ID column. If no match exists, the contact is NEW. If a match exists, the contact already exists in your master and this row represents an update to it.
Drag the formula down for every row in your Delta tab. Rows labeled NEW need to be appended to Master. Rows labeled UPDATED need to overwrite the matching Master row.
Expert Take
XLOOKUP is cleaner than VLOOKUP for this reconciliation pattern. VLOOKUP requires the lookup column to be the leftmost column in the range, which forces you to restructure your sheet if your ID column is not column A. XLOOKUP separates the lookup range from the return range, so you can match on any column and return any column without rearranging data. If your Google Workspace is on a plan that supports XLOOKUP, the equivalent formula is =IF(ISNA(XLOOKUP(Delta!A2,Master!A:A,Master!A:A)),"NEW","UPDATED"). For organizations locked to older Sheets compatibility, VLOOKUP with ISNA works reliably and is easier for non-technical team members to read and audit.
Step 6: Apply Updates and Append New Records with INDEX/MATCH
With every delta row flagged as NEW or UPDATED in the Reconciled tab, you now need to write the changes back into the Master tab.
For UPDATED records: Use INDEX/MATCH to overwrite the matching Master row. Assuming First Name is in column B and you want to update the Master row where the Contact ID matches, this formula returns the updated value from Delta:
=IFERROR(INDEX(Delta!B:B,MATCH(Master!A2,Delta!A:A,0)),Master!B2)
When the Contact ID from Master column A exists in the Delta tab, the formula returns the updated value. When there is no match, IFERROR returns the original Master value. Build this pattern for every field column you want to keep current.
For NEW records: Filter the Reconciled tab by Status = NEW, copy those rows, and paste them as values at the bottom of the Master tab. Paste as values only (Edit → Paste special → Values only) so you do not carry over any formula references.
Once all updates are applied and new records appended, copy the entire updated Master tab, paste as values only into a new tab or a fresh sheet, and save that as your new master file for the next reconciliation cycle.
Step 7: Review and Finalize
Before treating the reconciliation as complete, run three checks against the Reconciled tab and the updated Master tab.
- Row count check: The updated Master row count should equal the previous Master row count plus the number of NEW records from the delta. If the counts do not match, a formula pulled a blank row or a paste introduced duplicates.
- Spot-check five UPDATED records: Pick five contact IDs that were flagged UPDATED, find them in both the delta CSV and the updated Master tab, and confirm the field values in Master now reflect what was in the delta.
- ID uniqueness check: In the updated Master tab, run
=COUNTIF(A:A,A2)next to any row and filter for values greater than 1. Any Contact ID appearing more than once indicates a duplicate that needs to be removed before the next cycle.
When all three checks pass, the reconciled Master tab is your new baseline. Save a timestamped copy to Google Drive and archive the delta and full CSVs alongside it so you have an audit trail for every reconciliation run.
Frequently Asked Questions
What is the difference between a full Keap export and a delta export?
A full Keap export pulls every contact in your database regardless of when the record was last changed. A delta export filters by the Date Modified field and returns only contacts touched after a date you specify. Full exports are the baseline; delta exports capture incremental changes. Using both together is how you reconcile changes without reprocessing your entire database on every cycle.
Why do Keap contact IDs need to be formatted as text in Google Sheets?
Keap contact IDs are large integers, and Google Sheets defaults to displaying large numbers in scientific notation (1.23E+09). When VLOOKUP compares a number formatted as scientific notation to an ID stored as plain text, they do not match even though the underlying value is identical. Formatting the ID column as Plain text before running any lookup formulas prevents this silent mismatch and ensures every VLOOKUP and XLOOKUP comparison works correctly.
How do I handle records in the delta export that were deleted in Keap?
Keap delta exports do not include deleted contacts. A contact removed from Keap disappears from future exports rather than appearing with a deletion flag. To catch deletions, compare the Contact IDs in your previous Master tab against a fresh full export. Any ID present in Master but absent from the new full export represents a deleted contact. Flag those rows in your Master tab with a Deleted status column rather than removing them immediately, so you have a record of the removal before deciding whether to archive or purge the row.
Can Make.com automate the Keap delta export and reconciliation process?
Yes. Make.com connects to both Keap and Google Sheets natively, which means you can build a scenario that triggers on a schedule, pulls new and updated contacts from Keap using the Keap module’s filter parameters, and writes changes directly to a Google Sheet via the Sheets module without downloading and re-uploading CSV files manually. For a detailed look at what Make.com integrations make sense for this type of workflow, see 10 Essential Make.com Integrations: Unlock Cheaper, More Powerful Business Automation.
Keeping your Keap contact data clean and reconciled is one layer of data integrity. The other layer is protecting that data from configuration errors, accidental overwrites, and permission drift. For a full checklist of Keap data protection practices, see 10 Essential Strategies for Protecting Your Keap CRM Data in HR Recruiting.

