The Scenario
You ran an Apify Google Maps scraper overnight. It finished while you were asleep and dropped 1,500 local business records into a dataset. Now it's 7:45 AM, your outreach campaign kicks off at 9, and the leads need to be in your Leads sheet — deduplicated by phone number, sorted by rating — before your SDR gets in.
The bad version:
- Open Apify, find the dataset, download it as CSV, and open it in a separate tab.
- Copy the 1,500 rows into your Leads sheet, which already has 600 rows from last month's run, and immediately notice a column header mismatch because the scraper returned 'phoneNumber' but your sheet expects 'phone'.
- Spend 45 minutes writing a dedup formula, find that 300 records are duplicates, delete them manually, then sort by rating — and realize you never checked whether the emails column is empty on half the new rows.
The campaign starts in 75 minutes and you haven't opened your outreach tool yet.
The Easy Way: One Prompt in SheetXAI
SheetXAI is an AI agent that lives inside your Google Sheet. It reads your existing data, understands the layout of your Leads sheet, and through its built-in Apify integration it can fetch a dataset, match it to your column structure, and deduplicate on the fly — all from one prompt.
Get all items from Apify dataset ID 'abc123' and append them to the Leads sheet, skipping rows where the phone in column B is already present
What You Get
- New rows appended to the Leads sheet starting after the last populated row.
- Rows where column B matches an existing phone number are skipped — not flagged for later, not duplicated and then highlighted, just skipped.
- Column headers are mapped to match your existing sheet structure even if the dataset field names differ.
- A summary note in the first available cell below the new data tells you how many records were added and how many were skipped as duplicates.
What If the Data Is Not Quite Ready
The dataset has 'phoneNumber' but your sheet header says 'phone'
Fetch all items from Apify dataset ID 'abc123', rename 'phoneNumber' to 'phone' to match the column header in the Leads sheet, then append rows skipping any where column B already has that phone number
You want to deduplicate on email instead of phone, and only import records with a rating above 4.0
Get all items from Apify dataset ID 'abc123', filter to records where 'rating' is greater than 4.0, remove duplicates by the 'email' field, and append the remaining rows to the Leads sheet
The dataset spans multiple pages and you need all of them merged before dedup
Fetch all pages of Apify dataset ID 'abc123', combine them into a single list, deduplicate by 'phone', sort by 'rating' descending, and paste the result starting at row 2 of the Leads sheet, clearing any existing data first
You want cleanup, dedup, rating filter, and source tagging in one shot
Fetch all items from Apify dataset ID 'abc123', remove records missing both 'email' and 'phone', deduplicate by 'phone', sort descending by 'rating', add "google-maps-may" in a new column G as the source tag, then append to the Leads sheet skipping existing phone numbers
One prompt, one pass — the dataset is clean and in your sheet before the SDR arrives.
Try It
Get the 7-day free trial of SheetXAI and open the sheet where your scraped leads live, then ask it to pull the latest Apify dataset and merge it in without duplicates. You might also want to look at how to trigger an Actor run from a URL list or browse the full Apify integration overview.
