Import guide
Import Google Sheets into monday.com on a schedule
A shared Google Sheet is the fastest thing a team can agree on, and the least reliable thing to import by hand: someone edits a cell, and the board is wrong until a person notices.
Boardfeed reads a Google Sheet on a schedule and writes the result into a monday.com board, updating existing items by key rather than rebuilding the board every time. A sheet is a source it can fetch again by itself, which is what makes the schedule possible — unlike a file you upload.
Last checked : the three ways to connect, what the export returns, the header and displayed-value rules, and the schedule and marking rules, read off the connector and run against a CSV whose first line is empty
Doing it by hand, every time
- Remember to download the sheet as CSV.
- Upload it through the board’s import and remap the columns.
- Ask around for who changed the header row last week.
- Re-sort the board because the import appended everything at the bottom.
The scheduled route
- Connect the sheet one of three ways. The shortest is to **connect the Google account that can already open the sheet**: press Connect Google, approve read-only access once, and share the sheet with that account — which is what makes a private sheet importable without a Google Cloud project. The other two are publishing it to the web, or sharing it with a service-account address. Whichever you pick, Boardfeed only reads, and only from docs.google.com — an arbitrary CSV URL is not a Google Sheets source.
- Pick the tab. Boardfeed reads Google’s own CSV export of it, and the header is the first row of that export that is not empty.
- Map the columns, choose the key column to match on, and pick the schedule: hourly, daily, weekly or a cron expression.
- Check the values before you save. On a remote source the check covers the rows it previewed, and the run checks the rest as it writes them — the screen says so rather than implying the whole sheet was read.
- Every run is listed with its counts, and a run that left rows out e-mails you those rows as a CSV.
Field mapping notes for Google Sheets
This is the part that decides whether an import works on the first try. Everything below is handled in the mapping step, before the first run.
- Connected account (recommended for a private sheet): connect the Google account the sheet is shared with, and Boardfeed reads it with that account. Press Connect Google in the source dialog, approve the read-only access Google asks for, then choose the account in the source. One connection serves every Google source in the workspace — a Search Console or Google Analytics import reads with the same account, so this is one consent, not three.
- Published link: File → Share → Publish to the web, as CSV. The export always returns the sheet’s current values, so there is nothing to re-publish after an edit. It does expose the tab to anyone holding the link — publish a sheet built for it, not the one with everything in it.
- Service account: share the sheet with the service-account address and leave the file private. This is the right choice when nobody owns the sheet in a personal Google account and the workspace wants a key of its own rather than a person’s login.
- Header row: the header is the first row of the exported tab that is not empty, so a blank spacer row above the table is skipped rather than becoming the header. A row with something in it — a merged title — does become the header instead, so start the tab at the table.
- Displayed values: Boardfeed reads the tab through Google’s own CSV export rather than through the Sheets API, and it takes that file as it comes. A currency cell the sheet renders as $1,200.00 arrives as that text, and the number reading takes the symbol and the thousands separator off it, so the amount imports as 1200 rather than failing its row.
- Formulas are read as the sheet last calculated them. A cell that pulls from another spreadsheet which has not loaded comes through empty rather than stale.
Google Sheets import questions
Do I need a Google Cloud project or a service-account key?
No. Connect the Google account that can open the sheet, from the source dialog, and Google asks that account whether Boardfeed may read your Sheets — read-only, and nothing else. There is no key to create, paste or rotate, and nothing to set up in Google Cloud. The sheet still has to be shared with the account you connected: Boardfeed reads the sheets that account can open, and a sheet nobody shared with it is one it is refused. A service-account key is still there if you want a key rather than a person’s account.
Does Boardfeed get write access to the sheet?
No. Boardfeed only reads. A connected Google account, publishing to the web and sharing with a service account all grant read access, and the connector issues no write of any kind. The connected account and the service-account routes both keep the sheet unpublished and private.
How quickly do sheet changes reach the board?
At the next run. Hourly is the shortest of the named intervals, and a cron expression can run more often than that — the scheduler looks once a minute, so a five-minute cron is a five-minute sync. Bear in mind that a run has to finish inside its own interval; the scheduling guide has the measured rates for sizing that.
What happens when a row is deleted from the sheet?
Nothing, by default: Boardfeed never deletes or archives a monday.com item because a row disappeared upstream. If you want to see it, an upsert import can opt in to marking instead — items it has imported before and the source no longer has get a status label you choose, only after a run that read the whole source and failed nothing, and the label comes off by itself if the row returns.