Plenty of tools only offer reports as a CSV attachment in a daily email: point-of-sale systems, banks, ad platforms, warehouse software. Downloading each file and importing it into Google Sheets takes a few minutes every time. This guide sets up a sheet that does it on its own, every hour, for free.
It uses Gmail CSV to Sheets, a free, MIT-licensed Apps Script.
In Gmail’s search box, write a search that matches exactly the report emails, for example:
from:reports@vendor.com has:attachment filename:csv
Other useful parts: subject:"Daily sales", after:2026/10/01, label:reports. Keep adjusting until the results are exactly the emails you want imported. You’ll paste this search into the script.
Code.gs, and Save.Choose 📥 CSV Import → Set Up Import…, paste the search, and pick a mode:
Approve Google’s permission prompt the first time (“Google hasn’t verified this app” → Advanced → Go to (your project name) → Allow; it’s your own script).
The first run imports what’s already in your mailbox (up to 50 emails, oldest first). After that, it checks every hour. Each imported email gets the Gmail label csv-imported, which is how the script knows not to import it again. You’ll see the label in Gmail’s sidebar.
Does it work with Excel (.xlsx) attachments? No, only CSV. Most tools can email CSV instead; check the report settings.
Is it free? Yes. It runs on your own Google account, with no add-on and no Zapier task limits.
Does my computer need to be on? No. The hourly check runs on Google’s servers.
How do I stop it? 📥 CSV Import → Turn Off.
Get the script on GitHub · Also free: automatic email reminders from Google Sheets · Mail Merge for Google Sheets