Back up your important records every night and keep a month of copies
Published 2026-11-03
Most small teams keep their important records in a handful of places: a customer list in one app, orders in another, form answers in a third, and a shared sheet that everyone edits. Each tool says it is safe, and usually it is. The trouble starts when someone deletes the wrong rows, an export setting changes, or an account lapses, and the only copy is gone. A real backup means a dated copy of each source, made on a schedule, kept somewhere you own. ChatGPT or Claude can explain how to export your data and even write the script. The chat cannot run that script at two in the morning, store the files, or tell you when last night's copy came back empty.
What a chat cannot do alone
A backup is only useful if it happens every night without anyone thinking about it. Something has to wake up on a clock, pull the data from each source, save it with the date in the name, delete copies that are older than you need, and check that the new file looks like the old ones. A chat only runs while you type in it, and it has nowhere to keep a month of files.
What your assistant builds with Sails
Sails is a coding agent you connect over MCP, with cloud deployment built in. Your assistant writes the code and Sails runs it in the cloud. For backups it builds a few small pieces.
A short list of sources, each with how to export it: an API call, a CSV download link, or a table you already keep in Sails. Any keys those sources need are stored as secrets, so they never appear in the code or the chat.
A scheduled job written as ordinary shell code with no model in the loop. Every night it exports each source, saves the result in a file store under a folder for that source and a file named with the date, and records the row count and file size in a small log table.
A cleanup step in the same job that removes copies older than thirty days, while always keeping the first copy of each month for a longer history.
A check that compares tonight's row count with last night's. If an export fails, comes back empty, or shrinks by more than a set amount, the job emails you from a mailbox on your domain with the source name and both numbers.
Why it works
The job does the same thing every night whether or not anyone remembers it exists. The copies sit in a file store you control, not inside the tool that might lose them. The size check catches the quiet failures, like a broken export that still says it succeeded. When you do need an old record, a later chat with your assistant can open the dated file and find it.
Hand it off
Copy this into your assistant:
Add Sails from https://sails.app/start. Build a nightly backup of my important records. Keep a list of sources with how to export each one, and store any keys they need as secrets. Write a nightly scheduled job in plain shell code with no model involved that exports every source into a file store, one folder per source and one file per date, and logs the row count and size of each file. Delete copies older than thirty days but keep the first copy of each month. Email me from a mailbox on my domain when an export fails, comes back empty, or shrinks a lot compared with the night before. Ask me anything you need before you start.