Skip to content

Weekly

Email yourself a weekly Notion database backup

Each week a CSV copy of your database properties lands in your inbox.

Runs
Weekly
Apps
Notion
AI
Not needed
Access
read

Send this to your assistant

Create a ClickRuntime automation: every Sunday at 10pm, export all rows of my Notion Clients database to a CSV file and email it to me.

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 small agency keeps its whole client roster in one Notion database: company, contact, retainer amount, renewal date, owner. Then an intern bulk-edits the Status column, a relation property gets deleted while tidying up, or a workspace admin archives the wrong page. Notion's page history helps with single pages but is awkward for recovering a hundred rows, and most teams have never exported anything.

Once a week, the database is read page by page, every property is flattened into a plain column (select names, multi-select lists, people, dates, relations), and the result is built into a CSV that lands in your inbox as an attachment. It runs on the weekly schedule, so the copy exists whether or not anyone remembered.

It suits anyone whose Notion database doubles as a system of record: CRM tables, inventories, content calendars, vendor lists.

What you get out of it

  • A dated copy outside Notion

    If rows are overwritten or a property is wiped, the attachment from last Monday still holds the old values. You can open it in Excel or Google Sheets and copy the missing cells straight back.

  • Recovery from bulk edits

    A mistaken bulk change to a Status or Owner column can touch hundreds of rows in seconds. A recent CSV lets you compare before and after and restore only the rows that were damaged.

  • Proof for audits and handovers

    When a client asks what their retainer looked like in March, or a new hire needs last quarter's list, the emailed files act as a dated record that does not depend on anyone's Notion permissions.

  • Freedom to leave the tool

    A CSV opens in almost anything, so moving the data to another database or CRM later means importing a file you already have, not scrambling to build an export under pressure.

  • No reliance on someone's memory

    Manual exports get skipped during busy weeks. A scheduled run produces the file on the same day each week, so the gap between your data and your latest backup never grows past seven days.

How it works

What happens, step by step

  1. Once a week, ClickRuntime reads every row in your Notion database, however many there are.

  2. It turns each row's properties, like name, status, owner and dates, into plain spreadsheet columns.

  3. The rows are saved as a CSV file and emailed to you, with the row count in the subject line.

Before it runs live

  • Connect Notion and share the database you want it to use

What you get

RunsWeekly
Email yourself a weekly Notion database backuptoday, 9:00Succeeded
Email · Notion Clients backup: 214 rowsName,Status,Owner,Renewal Northwind Traders,Active,Sales,2026-11-30

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 Notion 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.
database_backup_email.pyexample
import csv, io
from clickruntime import on_trigger, credentials, http, notify

DATABASE_ID = "your-clients-database-id"

def plain(prop):
    kind = prop["type"]
    value = prop.get(kind)
    if kind in ("title", "rich_text"):
        return "".join(t["plain_text"] for t in value)
    if kind in ("select", "status"):
        return (value or {}).get("name", "")
    if kind == "multi_select":
        return ", ".join(o["name"] for o in value)
    if kind == "date":
        return (value or {}).get("start", "")
    return "" if isinstance(value, (dict, list)) else str(value or "")

@on_trigger
def run(event):
    headers = {"Authorization": f"Bearer {credentials.connection('notion', 'work')}",
               "Notion-Version": "2022-06-28"}
    rows, body = [], {"page_size": 100}
    while True:
        page = http.post(f"https://api.notion.com/v1/databases/{DATABASE_ID}/query",
                         headers=headers, json=body).json()
        rows += [{k: plain(v) for k, v in r["properties"].items()} for r in page["results"]]
        if not page.get("has_more"):
            break
        body["start_cursor"] = page["next_cursor"]
    out = io.StringIO()
    writer = csv.DictWriter(out, fieldnames=sorted({k for r in rows for k in r}))
    writer.writeheader()
    writer.writerows(rows)
    notify.email_me(f"Notion Clients backup: {len(rows)} rows", out.getvalue())
    return {"rows": len(rows)}

FAQ

Common questions

Which Notion property types end up in the CSV?
Text, numbers, select, multi-select, dates, checkboxes, people and URLs are turned into readable cell values. Relations and rollups are written out as the titles or IDs they point to. File attachments appear as links, not the files themselves.
Does the backup include page content or only properties?
Only the database properties are exported, one row per page. The body text inside each page is not included. If you need page bodies as well, a separate export of pages to Markdown or HTML is the better fit.
Will it work on a database with thousands of rows?
Yes. Notion returns query results in pages of up to 100 rows, and the run keeps requesting pages until none are left. A very large database simply takes longer, and the full CSV is built before it is emailed.
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 runs (weekly). 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 “Email yourself a weekly Notion database backup” from your assistant

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