Skip to content

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.

Paste it into your assistant. It tells you what it will send or change before it runs live.

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

  1. Every 15 minutes, ClickRuntime checks your Coda table for rows edited since the last check.

  2. Rows that haven't changed are left out, so each edit is reported once.

  3. 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

RunsEvery 15 minutes
Post edited Coda rows to Slacktoday, 9:00Succeeded
Slack · #project-updatesAcme portal redesign updated · Owner: Sam Lee · Status: In review https://coda.io/d/_dAbCDeFGH#Projects/r12

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • 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

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
updated_row_alert_coda.pyexample
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?
It uses each row's updated time and compares it with the time of the previous check. Any row edited since then is posted, so one edit is reported once, unless it is edited again. Each row is checked against its update time, so one edit is announced once, and the next edit to the same row is announced again.
Will it alert on rows I create?
A newly created row also has an update time, so it can appear in the first check after it was added. To tell new rows apart from changes, ask for a separate flow. A row that is newly created also has an update time, so it can show up in the first check after it was added.
Can I watch only certain columns?
Coda reports a row as updated without saying which column changed, but you can compare values with the stored previous version. Tell your AI assistant to watch specific columns and approve the revised steps. Coda reports a row as updated without naming the column, so watching one column means comparing stored values, which is a reviewed change.
What permissions does it need?
read. Nothing else in your accounts is used.
Does it need AI?
No. It runs without AI, so it doesn't use your plan's AI allowance.
How many runs does it use?
One run each time it checks. Checks that find nothing new and stop right away aren't counted.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

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.