Every 15 minutes
Post edited Coda rows to Slack
When someone changes a row in your projects table, the updated row shows up in your Slack channel.
- Runs
- Every 15 minutes
- Apps
- Coda
- AI
- Not needed
- Access
- read
Send this to your assistant
Create a ClickRuntime automation: every 15 minutes check the Projects table in my Coda doc and post any rows that were updated since the last check to #project-updates in Slack, with the project name, owner and status.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
In a busy Coda table, existing rows change constantly. A status moves from Review to Blocked, an owner is reassigned, a due date slips, and the person who cares about that row is not told. They find out in a meeting two days later, after the dependent work was already delayed.
Every fifteen minutes, this lists the rows whose update time is later than the last check and posts the changed rows to Slack. Each post tells the team that a row moved, so the change gets noticed while it can still be acted on.
Project teams that track work, launches or approvals in Coda use it to keep Slack and the doc in step. The check compares each row's update time with the time of the last run, so a row is reported when it changes and not on every pass over the table.
What you get out of it
See blockers as they are raised
When a row changes to Blocked, the team sees it in Slack within fifteen minutes. Someone can unblock it the same day rather than at the next weekly review. A blocked item seen in Slack within fifteen minutes can be unblocked the same day, and not at the next weekly review.
Keep dependent teams informed
Downstream owners know when a date slips or an owner changes. They adjust their plans immediately instead of working from stale assumptions. Teams waiting on a date or an owner see the change at once, and can rearrange their own work without a meeting.
Keep Slack and the doc consistent
Updates written in Coda appear where conversation happens. Discussion about a change can start in the channel, right beside the alert. Discussion about a change can start in the channel, right beside the alert, rather than in a separate doc comment.
Cut manual status updates
People stop writing messages saying they updated the table. The change itself is the announcement, so updates take less effort and are more consistent. Writing the update in Coda is enough, so nobody has to post a second message announcing that they changed the table.
Maintain a feed of what moved
The channel becomes a running log of table changes. If there is a dispute about when a date changed, the Slack history gives a timestamp. If there is ever a dispute about when a date moved, the Slack history gives a timestamp for the change.
How it works
What happens, step by step
Every 15 minutes, ClickRuntime checks your Coda table for rows edited since the last check.
Rows that haven't changed are left out, so each edit is reported once.
Each edited row is posted to your Slack channel with its key fields, like owner and status, and a link to the row.
Before it runs live
- Connect Coda
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
- Act only on the items that match your own rules, and skip the rest
- 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 Coda steps into one automation
Under the hood
The code that runs this automation
from datetime import datetime, timezone
from clickruntime import on_trigger, report_fetched, state, notify, http, credentials
DOC, TABLE = "AbCDeFGH", "Projects" # your doc id and table
@on_trigger
def run(event):
rows = http.get(f"https://coda.io/apis/v1/docs/{DOC}/tables/{TABLE}/rows", headers={
"Authorization": "Bearer " + credentials.secret("CODA_API_TOKEN")}, params={
"useColumnNames": "true", "valueFormat": "simple", "sortBy": "updatedAt", "limit": 100,
}).json()["items"]
since = state.get("since") or datetime.now(timezone.utc).isoformat()
changed = [r for r in rows if r["updatedAt"] > since]
report_fetched(len(changed))
if not changed:
state.set("since", since)
return {"summary": "No updates"}
for r in changed:
v = r["values"]
notify.slack(f"{v.get('Project')} updated · Owner: {v.get('Owner')} · Status: {v.get('Status')}\n{r['browserLink']}", channel="#project-updates")
state.set("since", max(r["updatedAt"] for r in changed))
return {"posted": len(changed)}FAQ
Common questions
How does it find rows that changed?
Will it alert on rows I create?
Can I watch only certain columns?
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
Get an email for each new Coda row
Within minutes of a row being added to your table, its values arrive in your inbox.
See how it worksGet your open Coda tasks each morning
Every morning one email lists the tasks in your table that aren't done yet.
See how it worksClear out finished Coda tasks every week
Rows marked Done over 30 days ago are removed each week, and you get an email listing exactly what went.
See how it worksKeep exploring
Set up “Post edited Coda rows to Slack” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.