Databases
Your own data, kept on this Mac. A place for flows to remember things — with no server, no account, and nothing uploaded.
Overview
Most flows are stateless. A Save to Database node is how one remembers: it writes rows a Find in Database node can read back next week, or next year. This page is about the databases themselves — making them, naming them, keeping them out of the way, and removing them. What each node does with one is on that node's page.
A database here is one ordinary SQLite file, kept in Watchflows' Application Support folder. Nothing about it is proprietary — open it in any SQLite tool you own and it reads exactly as you would expect, which is also why the two columns Watchflows manages are named plainly (id, created_at) instead of hidden behind underscores.
They never leave your Mac. There is no sync, no backup service, and no upload — a database is covered by whatever backs up your Mac, and nothing else.
Making One
You make a database where you need it — from a Database node's own Database field. Open the picker and choose New Database…; a name is already filled in from the flow you're building, so the common case is two keystrokes and Create. There is no schema step, no file path, and no format to choose.
Tables and columns arrive the same way: an Insert builds the table to fit whatever you store, the first time it runs. Settings → Databases is the management surface, not the starting point — on a Mac with none yet it says so and points you back at the node.
Naming and Renaming
Each tile in Settings → Databases shows the database's name as an editable field, with its size on disk and the date it was created underneath. Type a better name and press Return.
Renaming never breaks a flow
A Database node finds its database by a hidden id, not by the name. The name is yours to change as often as you like — every node pointing at it keeps working, and picks up the new name the next time you look at it. Two live databases can't share a name, so a name is always unambiguous while it exists.
Private Databases
Each tile carries a Private switch. Turning it on does two things, and it is worth knowing both:
- It disappears from the database picker other flows browse. You can't reach for it by accident while wiring something unrelated.
- It becomes invisible to the AI Flow Builder. The builder is told which databases exist so it can name one in a flow it drafts; a private database is never on that list, and a drafted flow naming it resolves to nothing.
Flows already pointing at it keep working exactly as before. Private is about what gets offered, not about locking anything — the file is not encrypted, and a Database node already holding the id runs normally.
Deleting, and Getting It Back
A database can be the thing a small personal app is made of, so deleting one is deliberately not a quiet checkbox. Press Delete and Watchflows first counts the damage: it scans every saved flow for nodes pointing at this database and tells you the number and the names — “Clipboard History” is used by 3 nodes in 2 flows: Clip Log, Weekly Digest. Deleting it will make those nodes fail on their next run. When nothing uses it, it says that instead.
Agreeing performs a soft delete. The database vanishes from every picker and a node pointing at it stops with a clear message — but the file stays on your Mac, untouched. Deleted entries collect under a Deleted heading at the bottom of the pane, struck through, each with a Restore button that puts it back exactly as it was.
Nothing in the app erases the rows. If you want the bytes gone, delete the entry here and then remove the file yourself.
When a File Goes Missing
If a database's file is moved or removed from outside the app, the entry stays and wears an orange Missing badge: the file for this database isn't on this Mac any more. Nothing was recreated — flows pointing at it will fail until it's back. The picker in the node marks it the same way.
That inertness is the point. Watchflows will not quietly create an empty database to stand in for one it can't find, because a flow that appears to work while writing into nothing is worse than a flow that stops. Put the file back and the entry recovers on its own.
Writing SQL Yourself
The Database node's five modes cover the everyday shapes without any SQL at all. When you want the real thing — a join, a GROUP BY, an index — the Run SQL mode takes one statement you write, and the SQL Workbench gives that statement a full-window editor with its results beside it.
See The Workbench for how it runs, and Run SQL for how {{variables}} bind and which statements are refused.