Back to Notion in Excel
SheetXAI logo
Notion logo
Notion · Excel Guide

Sync and Upsert Records From an Excel workbook Into Notion

2026-05-15
5 min read

The Scenario

You're the RevOps lead and you've just finished cleaning 500 customer records in a Excel workbook — names, emails, company, ARR, and stage. The Notion CRM has been partially updated by the sales team, so some of these customers already exist in the database and just need their ARR and Stage updated. Others are brand new and need to be created. You need one operation that handles both cases without leaving duplicates.

The bad version:

  • Export the Notion CRM to CSV, open it alongside your workbook, and manually compare emails to figure out which rows already exist.
  • For the ones that exist, update the ARR and Stage in Notion one record at a time through the UI. For the ones that don't, add them as new rows.
  • Discover midway through that 30 records in your workbook have email addresses that don't match Notion exactly — one has a trailing space, another is capitalized differently — so the comparison missed them and they were created as duplicates.

500 records is too many to reconcile manually. The duplicates you create today become data quality problems that get harder to untangle the longer they sit.

The Easy Way: One Prompt in SheetXAI

SheetXAI reads your Excel workbook and talks directly to the Notion API. An upsert prompt tells it to match on a key field, update what it finds, and create what it doesn't — without creating duplicates.

Upsert each row from this workbook into my Notion database ID abc123 — match on the Email property, case-insensitive and trimmed — create the record if no match exists, update ARR and Stage if a match is found

What You Get

  • Records with a matching email in Notion get their ARR and Stage properties updated.
  • Records with no match in Notion are created as new database entries.
  • A sidebar summary showing the split: N updated, M created, K skipped due to errors.
  • No duplicates introduced by case differences or trailing whitespace.

What If the Data Is Not Quite Ready

Some emails in the workbook are blank — those rows should be skipped entirely

Upsert rows from this workbook into Notion database ID abc123 — match on Email, case-insensitive — skip any row where the Email column is empty — write "skipped: no email" in column F for those rows

Blank-email rows are excluded from the upsert. Column F captures the skip reason so you know which records need attention.

ARR in the workbook is stored as text with dollar signs — it needs to be a number in Notion

Upsert rows from this workbook into Notion database ID abc123 — match on Email, case-insensitive — strip currency symbols and convert the ARR column to a number before upserting — update ARR and Stage on matches, create full records for new entries

The conversion happens before the data touches Notion, so the Number property receives a clean value.

Company name in the workbook doesn't always match the name in Notion — fall back to a secondary match on Customer ID

Upsert rows from this workbook into Notion database ID abc123 — match first on Email, then on Customer ID in column F if Email has no match — create new records only if neither match is found

Multi-field matching reduces duplicate creation for records where the primary key is inconsistent.

The kill chain — normalize, dedup within the workbook first, then upsert

In this workbook: remove duplicate rows where Email is the same, keeping the one with the higher ARR value — strip currency symbols from the ARR column — then upsert all remaining rows into Notion database ID abc123 matching on Email, case-insensitive — update ARR and Stage on matches, create full records for new entries

One prompt deduplicates the workbook before it touches Notion, normalizes the data, and runs the upsert. What arrives in Notion is clean the first time.

The most reliable upsert starts with a clean source — and that cleanup belongs in the same prompt.

Try It

Get the 7-day free trial of SheetXAI and open the Excel workbook with the records you need synced to Notion. Ask it to upsert with a match key and let it sort out what's new versus what needs updating. Also worth reading: bulk-update-database-rows for targeted property updates, and the hub overview for all Notion workflows.

Stop memorizing formulas.
Tell your spreadsheet what to do.

Join 4,000+ professionals saving hours every week with SheetXAI.

Learn more