On a schedule
Post rows due in the next 3 days to Slack
Each weekday morning your team sees what's due soon, with links to the rows, before anything slips.
- Runs
- On a schedule
- Apps
- Smartsheet
- AI
- Not needed
- Access
- read
Send this to your assistant
Create a ClickRuntime automation: every weekday at 9am post to #ops in Slack the rows in my Smartsheet 'Launch Tracker' due within the next 3 days whose Status isn't Complete, with a link to each row.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A project manager keeps a Smartsheet with a hundred rows: deliverables, owners, a Due Date column and a Status column. People update their own rows when they remember, and nobody opens the sheet every day to see what is coming. A task due Thursday is noticed on Thursday afternoon, when it is too late to ask for help, move a dependency or warn the client. The delay is rarely about effort. Nobody saw it coming.
Each morning, ClickRuntime reads the sheet, keeps the rows whose Due Date falls between today and three days from now and whose Status is not Complete, and posts the list to Slack with a link to each row. If nothing is coming due, there is nothing to read.
Project offices, agencies and operations teams that live in Smartsheet but communicate in Slack get the most from it.
What you get out of it
Deadlines are visible three days ahead
A short lookahead leaves enough time to reassign a task, request help from a teammate or warn a stakeholder, which a same-day reminder cannot do. Most slipped dates are cheaper to fix on Monday than on Thursday.
Owners are reminded where they work
Most people read Slack all day and open Smartsheet rarely. A morning post with row links brings the due items to the place they already look, and the link takes them straight to the row to update.
Completed work is not nagged about
Rows marked Complete are filtered out, so the list contains only open work. People learn to trust it because it never shows something they already finished. A trusted reminder gets read, and an ignored one does not.
Project managers stop checking manually
Scanning a long sheet for dates is slow and easy to get wrong. A generated list removes the daily chore and the risk that a filter was set incorrectly or left on from last week.
The team shares one view of the week
When the list is in a channel, everyone sees what is due, including people who rely on someone else's deliverable. Dependencies get discussed in the thread instead of discovered afterward.
How it works
What happens, step by step
Every weekday at 9am, ClickRuntime reads your Smartsheet sheet.
It keeps the rows due in the next three days that aren't marked Complete.
It posts the list to your Slack channel with each due date and a link to the row.
Before it runs live
- Connect Smartsheet
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Run it at a different time, more or less often, or only on weekdays
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Slack
- Combine it with other Smartsheet steps into one automation
Under the hood
The code that runs this automation
from datetime import date, timedelta
from clickruntime import on_trigger, notify, http, credentials
SHEET_ID = 4583173393803140 # your 'Launch Tracker' sheet
@on_trigger
def run(event):
sheet = http.get(f"https://api.smartsheet.com/2.0/sheets/{SHEET_ID}", headers={
"Authorization": "Bearer " + credentials.connection("smartsheet", "main")}, params={"include": "rowPermalink"}).json()
titles = {c["id"]: c["title"] for c in sheet["columns"]}
today, until = date.today().isoformat(), (date.today() + timedelta(days=3)).isoformat()
soon = []
for row in sheet["rows"]:
cells = {titles[c["columnId"]]: c.get("value") for c in row["cells"]}
due = str(cells.get("Due Date") or "")[:10]
if due and today <= due <= until and cells.get("Status") != "Complete":
soon.append(f"• {due} <{row['permalink']}|{cells.get('Task Name', 'Row ' + str(row['rowNumber']))}>")
if soon:
notify.slack("Due in the next 3 days:\n" + "\n".join(sorted(soon)), channel="#ops")
return {"due_soon": len(soon)}FAQ
Common questions
Which columns does the reminder rely on?
Can the window be longer than three days?
Will it tell the person who owns each row?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Email yourself a weekly copy of a sheet
Every Monday you receive an export of the sheet, so you always have last week's version on hand.
See how it worksGet a Monday list of overdue rows by owner
Once a week, one email lists every unfinished row past its due date, grouped under the person it's assigned to.
See how it worksGet new Smartsheet rows by email
Each time a row is added to the sheet, you get an email with every cell value in it.
See how it worksKeep exploring
Set up “Post rows due in the next 3 days to Slack” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.
