Skip to content

Hourly or daily

Fill a Supabase table from feeds on a schedule

New articles, prices or other public items land in your table every hour, with duplicates skipped.

Runs
Hourly or daily
Apps
Supabase
AI
Not needed
Access
secret key (write)

Send this to your assistant

Create a ClickRuntime automation: every hour, fetch new posts from these three RSS feeds and insert them into my Supabase articles table, skipping any URL that's already there.

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 researcher tracks competitor prices, a blogger follows news from a dozen feeds and an analyst wants video transcripts from a channel. All of them end up copying data into a spreadsheet by hand, or running a script on a laptop that stops the day the laptop sleeps. The dataset has holes, and trends are impossible to see because nothing was collected on the days it mattered.

On the hourly or daily schedule you choose, ClickRuntime fetches the public source, checks each item against its URL or ID so nothing is stored twice, and upserts the new rows into your Supabase table. The table grows steadily on its own and can be queried with SQL or connected to a dashboard.

It suits price monitoring, content aggregation and any project where a complete, queryable history is the goal.

What you get out of it

  • Your dataset has no gaps

    A job that runs every hour whether or not your laptop is open means the history is continuous. A price trend over six months is only meaningful if no weeks are missing, and scheduled collection prevents that.

  • Duplicates never pollute the table

    Deduplication by URL or ID, or by a unique constraint in Supabase, ensures the same article or price point is stored once. Counts, averages and charts built on the table are accurate without cleanup.

  • Your data lives in a real database

    Rows in Supabase can be filtered, joined and exported with ordinary SQL, or shown in a dashboard tool. That is far more flexible than a long spreadsheet that slows down as it grows.

  • Changes over time can be analyzed

    Because every collection run adds timestamped rows, you can see when a competitor lowered a price or when a topic started trending. Questions about what changed and when become answerable.

  • It frees you from running scripts

    No server to maintain, no cron job to debug, no laptop to leave on. Collection continues quietly, and the run history shows whether each fetch succeeded or failed. Failures are logged too.

How it works

What happens, step by step

  1. Every hour, or every day if you prefer, ClickRuntime fetches the public feed or page you chose.

  2. It skips items already in your table by checking their link or ID.

  3. New articles, prices or other items are added as rows in your Supabase table.

Before it runs live

  • Connect Supabase

What you get

RunsHourly or daily
Fill a Supabase table from feeds on a scheduletoday, 9:00Succeeded
Supabase · articlesInserted 7 new rows, e.g. "Northwind ships v2 of its routing API" (blog.example.com)

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

  • 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 Supabase 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.
collect_public_data_into_a_supabase_table_on_a_schedule.pyexample
import feedparser
from clickruntime import on_trigger, credentials, http, notify, report_fetched

SUPABASE_URL = "https://your-project.supabase.co"

def sb_headers(**extra):
    key = credentials.secret("SUPABASE_SECRET_KEY")
    return {"apikey": key, "Authorization": f"Bearer {key}", **extra}

FEEDS = ["https://blog.example.com/feed.xml", "https://news.example.org/rss", "https://example.dev/atom.xml"]

@on_trigger
def run(event):
    rows = []
    for url in FEEDS:
        feed = feedparser.parse(http.get(url).content)
        rows += [{"url": e.link, "title": e.title, "source": url, "published_at": e.get("published")} for e in feed.entries]
    report_fetched(len(rows))
    if not rows:
        return {"inserted": 0}
    resp = http.post(f"{SUPABASE_URL}/rest/v1/articles", params={"on_conflict": "url"}, json=rows,
                     headers=sb_headers(Prefer="resolution=ignore-duplicates,return=representation"))
    resp.raise_for_status()
    return {"fetched": len(rows), "inserted": len(resp.json())}

FAQ

Common questions

Does it work with any website or only APIs and feeds?
It works with sources that return data over HTTP, such as JSON APIs, RSS and Atom feeds and pages with consistent markup. Pages that require a login or heavy browser scripting may not be suitable, and terms of use of the source still apply.
How often can it collect?
You choose hourly or daily, or another interval that fits the source. Sources that update once a day gain nothing from hourly polling, and collecting less often is kinder to the site you are reading from.
How are duplicates detected?
Each item is matched on its URL or ID, using stored state or a unique constraint on the Supabase column with an upsert. If the item already exists, the row is updated or skipped rather than added again, depending on what you prefer.
What permissions does it need?
secret key (write). 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 runs (hourly or daily). Checks that find nothing to do 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 “Fill a Supabase table from feeds on a schedule” from your assistant

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