How to get a Slack message or email when a row is added to Google Sheets
Post each new Google Sheets row to Slack and email it to your team, with the columns you choose. Checked every 5 minutes; existing rows never run. No code.
Updated
A sheet that collects leads, orders or requests is only useful if someone notices the new rows. Google Sheets' own notification rules can email you when something changes, but only you, and you can't choose what the email says. This guide posts each new row to a Slack channel and emails it to the team, with the columns you pick. It uses Foliot's When a row is added to Google Sheets trigger, with no code and no Apps Script.
Trigger
When a row is added to Google Sheets
Tab: Leads, with the columns Name, Email, Plan. Checked every 5 minutes.Step 1
Post to Slack
New lead: Trigger → Name (Trigger → Plan)Step 2
Send email
To sales@example.com: New lead Trigger → Name
Before you start
- A Foliot account. The free plan is enough to build and test this.
- A Google account that can open the spreadsheet.
- A tab with column headers in row 1, for example
Name,Email,Plan. Each new row reaches the steps by these headers. - For Slack: an incoming webhook for the channel. See how to create one.
Set it up
1. Create the workflow and pick the sheet
Create a new workflow and choose When a row is added to Google Sheets. Then:
- Under Google account, connect your Google account. Foliot only asks for access to files you pick, not your whole Drive.
- Paste the spreadsheet's link and click Load sheet, or use Browse your Drive to give Foliot that one file.
- Choose the tab to watch.
2. Get sample data
Click Get sample data. Foliot reads the last row of the tab, so the next steps can show its columns in the data picker: Trigger → Name, Trigger → Email, and Trigger → Row number for where the row is.
3. Add the Post to Slack step
Click + after the trigger and choose Post to Slack. Under Slack connection, choose + Add a Slack webhook… and paste the webhook URL. Then write the message:
*New lead:* [Trigger → Name] ([Trigger → Plan])
[Trigger → Email]
<https://docs.google.com/spreadsheets/d/YOUR-SHEET-ID|Open the sheet>The bracketed parts are data chips you pick with the data button.
4. Add the Send email step
Add Send email after Slack. Put up to 10 addresses in To, separated by commas, and use the same chips in the subject and message. The email comes from a Foliot address, shown as your chosen name “via Foliot”. Skip this step if Slack is enough, or drop Slack if email is.
5. Test, then turn the workflow on
Test this step sends the Slack message or email for real with the sample row. Then switch the workflow on and add a row at the bottom of the tab. Within 5 minutes, the message arrives.
What counts as a new row
Foliot checks the tab every 5 minutes and starts one run for each row added at the bottom since the last check (up to 100 a check; more wait for the next one). Empty rows are skipped; an exact copy of a row above, added at the bottom, is still a new row. The limits, plainly:
- Only rows added at the bottom. A row inserted in the middle, or an edit to an existing row, doesn't start a run.
- Fill a row in one go. Pasting a row, a form or a tool that appends rows is fine. A row typed cell by cell can be read before you finish it.
- Deleting and adding at once. Rows added while rows above are deleted still run, and so do rows added while the last row is edited. The exception: if, within the same 5 minutes, you delete exactly as many rows as you add, it looks like a sort and the new rows don't run.
- Long tabs. Past 1,000 rows, Foliot remembers less. Rows added while the last row is edited don't run, and rows added while rows above are deleted only run when the tab ends up shorter.
- Sorting. A sort starts no runs, not even for a row added in the same 5 minutes. The one exception: rows you edited recently, sorted below the last row while rows are being added or deleted, can run.
- Replacing the last row. A row that takes the place of a deleted or cleared last row in the same 5 minutes doesn't run; rows added after it do. On tabs over 1,000 rows, none of them run.
When in doubt, Foliot skips a row rather than run an old one again. Each run shows its row number in the run history, so you can check which rows ran.
Useful variations
- Only some rows: a Filter first, “Only continue if Trigger → Plan is
Pro”. Other rows end as “Filtered out”. - Mark the row as sent: add Update row in Google Sheets on the same tab, with the row number Trigger → Row number and a
Notifiedcolumn set toYes. Editing rows doesn't start runs, though past 1,000 rows a row added during that edit can be missed. Don't use Add row to Google Sheets on the watched tab: each added row would start another run. - Email the person in the row: put Trigger → Email in To. Mind the daily email limit below.
- Rows from a form: if the rows come from your own form, a Foliot form can post to Slack and add the row in one workflow. See form to Google Sheets.
Good to know
- Cells reach the steps as text, the way the sheet shows them.
- Each new row is one run, however many steps: 500 runs a month on the free plan, 10,000 on Pro ($12 a month). Emails are limited to 25 recipients a day on Free and 100 on Pro.
- If a check fails (say, the spreadsheet was deleted or access was removed), the trigger shows “The last check failed” with the reason, and Foliot keeps checking.
- The spreadsheet stays in your Google account. Foliot stores its own data in the EU, but your rows live wherever Google keeps your files.
Other ways to do it
- Google Sheets' notification rules. Free and built in (Tools → Notification settings). They email you, and only you, when the sheet changes or a form is submitted.
- Apps Script. Free and runs inside Google: an
onChangetrigger that callsMailAppor a Slack webhook. You write and maintain the script. - Other automation tools. Zapier, Make and others have a new-row trigger too. Compare how often they check and what each run costs on your plan; see Foliot vs Zapier.
Questions
How quickly does a new row arrive?
Foliot checks the tab every 5 minutes, so a new row usually starts its run within 5 minutes.
Will turning it on send all the rows already in the sheet?
No. It starts from the tab's current end, so only rows added after that start runs.
Does editing a row send a notification?
No. Only rows added at the bottom start runs. Edits, sorts and rows inserted in the middle don't.
Is it free?
The free plan includes 500 runs a month and 5 active workflows. Each new row is one run. Pro is $12 a month for 10,000 runs.