What this workflow does

This n8n workflow searches AutoTrader.ca every morning at 7:00 for cars listed in the last day that match your makes, budget, mileage and location, saves each new car to Google Sheets, and sends the ones priced below AutoTrader's market median to Telegram. It runs on Autotrader Canada Scraper ($0.001 per result) and the template itself is free.

๐Ÿ” How it works

The useful part is the deal filter. The scraper returns AutoTrader's market median price with each listing, and the workflow compares the asking price against it. With the defaults, only cars at least 5% under that median reach Telegram. Every other new car still lands in the sheet.

One node, Set your search, holds everything you edit: makes and models (comma separated), a maximum price and mileage, a minimum model year, a location with a radius, and whether you want private sellers, dealers or both. Leave a value empty to skip that filter, or leave the location empty to search all of Canada.

The sheet gets one row per car: price, market median, the percentage against the market, mileage, seller, phone, city and VIN. Left running, it becomes a record of what your segment was listed at, day by day.

The 9 nodes, in order

  1. Schedule TriggerEvery morning at 7
  2. Edit FieldsSet your search
  3. ApifyFind new cars on AutoTrader.ca
  4. Remove DuplicatesSkip cars already sent
  5. Edit FieldsFormat car row
  6. Google SheetsSave every car to Google Sheets
  7. FilterKeep deals only
  8. AggregateCombine into one message
  9. TelegramSend deals to Telegram

๐Ÿ“ฅ Get the workflow

Three ways to import it. They all give you the same workflow, published 2026-09-28.

  • n8n.io: open the template and choose "Use for free". It opens in your n8n Cloud or self-hosted instance.
  • Paste: copy the JSON, click an empty n8n canvas and press Ctrl+V (Cmd+V on a Mac).
  • Import from URL: in the workflow menu choose "Import from URL" and paste https://automationbyexperts.com/static/n8n/autotrader-ca-car-alerts-telegram-google-sheets.json

โš™๏ธ The settings you edit

Every value you change lives in one node, Set your search. These are the defaults the template ships with.

SettingDefaultWhat it does
makesToyota, HondaOne or more makes, comma separated.
models(empty)One or more models, comma separated. Empty means every model of those makes.
priceTo25000Maximum asking price in CAD.
mileageToKm150000Maximum odometer reading in km.
modelYearFrom2016Oldest model year to include.
postalCodeToronto, ONA city or postal code to search around. Empty searches all of Canada.
radiusKm100Search radius: 10, 20, 50, 100, 150, 200, 250, 300 or 400.
sellerType(empty)private, dealer, or empty for both.
listedWithinDays1Only cars listed within this many days.
maxCars100Most cars one run returns, which is also what caps the cost of a run.
dealsOnlytruetrue sends only deals to Telegram. false sends every new car.
minBelowMarketPct5How far under AutoTrader's market median a car must be to count as a deal.
googleSheetUrlPASTE_YOUR_GOOGLE_SHEET_URL_HEREThe URL of the empty Google Sheet that receives the rows.
telegramChatIdPASTE_YOUR_TELEGRAM_CHAT_ID_HEREThe Telegram chat the alert is sent to.

๐Ÿ“Š What lands in your Google Sheet

One row per new car, with these 20 columns. The header row is written on the first run, so start with an empty sheet.

โœ“Year
โœ“Make
โœ“Model
โœ“Trim
โœ“Price (CAD)
โœ“Market median (CAD)
โœ“Vs market (%)
โœ“Mileage (km)
โœ“Body
โœ“Transmission
โœ“Drivetrain
โœ“Fuel
โœ“Seller
โœ“Seller type
โœ“Phone
โœ“City
โœ“Province
โœ“VIN
โœ“Found on
โœ“Link

See real records from a Autotrader Canada Scraper run โ†’

๐Ÿ”” What the Telegram alert looks like

One message per run, not one per car. This is its layout:

๐Ÿš— Year Make Model Trim (links to the listing)
price (percentage vs market) ยท mileage in km
city, province

๐Ÿš€ How to set it up

  1. Get the workflow into n8n

    Open it on n8n.io and choose "Use for free", or copy the workflow JSON from this page and paste it onto an empty n8n canvas.

  2. Connect Apify

    Create a free Apify account and connect it in the Find new cars on AutoTrader.ca node, with OAuth or an API token.

  3. Connect Google Sheets and Telegram

    Create an empty Google Sheet and paste its URL into googleSheetUrl. Create a bot with @BotFather, connect it in the Telegram node, and paste your chat id into telegramChatId.

  4. Set your search, run once, activate

    Edit the makes, budget and location in Set your search and run the workflow once by hand. The first run writes the header row in the sheet. Then activate it.

No Apify account yet? Create one free โ†—

๐Ÿ’ต What it costs to run

$0.001
per result
The template is free. Each run bills Autotrader Canada Scraper on your own Apify account. A full run of 100 cars costs $0.10, so running every morning at 7:00 (30 runs a month) comes to at most about $3.00 a month at the current price. Lower maxCars to lower that ceiling. The Apify free plan works.

โ“ Questions about this workflow

How does it decide a car is a deal?

Each listing comes back with AutoTrader's market median price and the percentage the asking price sits above or below it. The Keep deals only node passes cars at least minBelowMarketPct under the median, 5 by default. Set dealsOnly to false to be alerted about every new car.

Can I search all of Canada?

Yes. Leave postalCode empty. With a location set, radiusKm accepts 10, 20, 50, 100, 150, 200, 250, 300 or 400.

Will I be sent the same car twice?

No. The Skip cars already sent node remembers every listing URL across runs, so each car is sent once.

Can it run more often than once a day?

Yes. Change the schedule node to hourly, which suits flipping. Each run is billed per car returned, up to maxCars.

What does it cost to run?

The workflow itself is free. Each run bills the AutoTrader Canada scraper on your own Apify account per car returned, and maxCars caps that at 100 cars per run by default. The Apify free plan works.

๐Ÿงช Run it once without n8n

To see the data before building a schedule around it, open one of these ready-made Autotrader Canada Scraper tasks on Apify.

Need this for a different site?

A workflow needs an actor for the site first. Tell me which one and what the alert should say.