Skip to content

Every 5–15 minutes

Get an email for each new Coda row

Within minutes of a row being added to your table, its values arrive in your inbox.

Runs
Every 5–15 minutes
Apps
Coda
AI
Not needed
Access
read

Send this to your assistant

Create a ClickRuntime automation: every 10 minutes check the Requests table in my 'Team Ops' Coda doc and email me the Name, Type and Details of any new rows.

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

A shared Coda table is often where requests arrive, whether from a form, a teammate or another automation. But Coda does not push those rows to anyone by default. An urgent request added at 10 a.m. can sit unread until somebody next happens to open the doc, and the requester assumes silence means it was ignored.

Every five to fifteen minutes, this lists the table's rows sorted by creation time, finds IDs it has not seen before, and emails the new row's values. It remembers what it has seen, so each row triggers exactly one email.

It works well for intake tables such as support requests, applications or bug reports, where the person responsible does not want to watch the doc. Each email is triggered by a row ID that has not been seen before, so a request is announced exactly once, and nothing depends on someone remembering to refresh the table.

What you get out of it

  • Respond to requests within minutes

    Instead of waiting until someone opens the table, the owner is notified within the polling interval. That keeps response times short for requests that people expect to be seen quickly. A request seen within fifteen minutes gets answered while the requester is still expecting a reply and has not given up.

  • Make Coda a real intake channel

    Forms and tables become reliable only when someone is told. A new-row email gives a request table the same reliability as a dedicated inbox. Forms and shared tables become dependable intake channels, because there is a person who is told about each new item.

  • See the full row in the email

    The values arrive in the message itself, so you can often act without opening Coda. A quick reply can be sent straight from your mailbox. The row values appear in the message itself, so many requests can be answered straight from the mailbox without opening Coda.

  • Avoid duplicate notifications

    Because it remembers rows it has already emailed, a row never triggers a second message. Your inbox is not flooded when the automation restarts or a row is edited. A row that was emailed once is remembered, so a restart or a later edit does not send the same message again.

  • Let owners ignore the doc safely

    People who are not in Coda all day can still be responsible for a table. They trust that anything new will reach them, which makes ownership easier to share. The person responsible can work away from Coda all day, because anything new reaches them without anyone having to forward it.

How it works

What happens, step by step

  1. Every 5 to 15 minutes, ClickRuntime checks your Coda table for new rows.

  2. It remembers which rows it has already seen, so each new row is emailed only once.

  3. You get an email for each new row, listing every column with its value.

Before it runs live

  • Connect Coda

What you get

RunsEvery 5–15 minutes
Get an email for each new Coda rowtoday, 9:00Succeeded
Email · 1 new request in Team OpsName: Laptop for new hire Type: IT Details: Starts Nov 3 at Northwind Leeds, needs a 14" MacBook

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.
new_row_email.pyexample
from clickruntime import on_trigger, report_fetched, state, notify, http, credentials

DOC, TABLE = "AbCDeFGH", "Requests"  # your 'Team Ops' 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": "createdAt", "limit": 100,
    }).json()["items"]
    seen = set(state.get("seen") or [])
    new = [r for r in rows if r["id"] not in seen]
    report_fetched(len(new))
    if not new:
        return {"summary": "No new rows"}
    if seen:
        lines = [f"Name: {r['values'].get('Name')}\nType: {r['values'].get('Type')}\nDetails: {r['values'].get('Details')}\n{r['browserLink']}" for r in new]
        notify.email_me(f"{len(new)} new requests in Team Ops", "\n\n".join(lines))
    state.set("seen", list(seen | {r["id"] for r in new})[-2000:])
    return {"new": len(new)}

FAQ

Common questions

How soon after a row is added do I get the email?
It checks every five to fifteen minutes depending on the setup, so the email usually arrives within that interval. For an instant response a Coda webhook-style trigger would be needed instead, which polling does not use. The check runs every five to fifteen minutes, so expect the email within that time, and not instantly as with a push trigger.
Does it email when a row is edited?
No. It looks only for row IDs it has not seen. For changes to existing rows, use the updated row alert, which tracks rows modified since the last check. Edited rows are a different case, and the updated row alert is the right tool because it tracks rows modified since the last check.
What if many rows are added at once?
Each new row is found and emailed in the same run, so a bulk import produces one email per row. If that is too many, ask for a single combined email listing all new rows. A bulk import sends one email per row by default, and a single combined message listing them all is a small 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 “Get an email for each new Coda row” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.