History: see every change and restore earlier data
See who changed what and when, bring back deleted records, undo a bad import, or put a table back to how it looked at a point in time.
On this page
History keeps a record of every change to your app's data: who made it, when, where it came from (a form, an import, a workflow, the API) and the values before and after. When something goes wrong, you can put back one value, one record, a batch of deleted records, or a whole table as it was at a chosen moment, and you see exactly what will change before anything does.
Where to find it #
- A table's History tab: open the table in the Data Builder; History is the last tab. It shows every change to that table.
- One record's history: press the history icon on a record's row to see its full timeline.
- The whole app: Settings > Logs > History & Restore shows how long history is kept, every restore that's been run, and your exports.
History is for builders: the app owner and collaborators who can manage data tables. Your app's end users don't see it.
When to use it #
- "Who changed this?" Look up a record's timeline to see who edited a field, when, and what it was before.
- Someone deleted the wrong records. Bring them back, with their connections.
- An import or bulk update went wrong. Undo that one operation and nothing else.
- A table is a mess and you know when it was right. Put the whole table, or just some fields, back to how it looked at that time.
- You need a report of changes. Export every change between two dates.
Reading the history #
The History tab is a feed grouped by day. Each entry says what happened (edited, created, deleted, restored, or a change to the table's structure), who did it, and which fields changed. Press See changes to see each field's old and new value.
Use the filters to narrow it down: Changes, Created records or Deleted records; a person; Last 24 hours, Last 7 days, Last 30 days or All history; and a field. Show older changes loads more; older changes can take a few seconds to load.
| Shown as | Means |
|---|---|
| A person's name | A builder or app user made the change, in the builder, on a page or through a form. |
| API key "Name" | A call made with that API key. |
| Workflow "Name" | A workflow changed it. |
| Import, Batch Update, Table Rule, Equation, ... | The feature that made the change. |
| (deleted user) | The person's account has since been removed. |
| Direct database change | A change we can't trace to a person or feature. |
Changes to the table itself also appear: fields added, renamed, deleted or restored from the field trash, field type changes, and table rule changes. If there's ever a stretch where changes weren't recorded, the feed says so.
Restore #
| You want to... | Do this |
|---|---|
| Put back one field's earlier value | Open the record's history and press Restore this value on that change. |
| Put a record back to before a change | In the record's history, press Restore the record to before this change. |
| Bring back deleted records | On the History tab press Deleted records, tick the records, and press Restore. Their connections come back too. |
| Undo one import, batch update or bulk delete | Find it in the feed and press Undo. |
| Put a table back to a point in time | Press Restore table to a date..., choose Whole table or Only some fields, then pick the date and time. |
Before anything changes you see Here's what will change: how many records come back, how many get their old values, how many connections are put back, and a few before-and-after examples. You also choose two things:
- Records created after that time are kept unless you choose to remove them too.
- Records changed again since then are skipped unless you choose to overwrite them anyway, so a restore doesn't wipe out good work done since.
For a whole-table restore or one that touches 1,000 records or more, you type the table name to confirm. Large restores run in the background; you can close the window and we email you when it's done.
What can't be restored #
- Users: you can see the Users table's history, but not restore it. Passwords and login details are never shown or restored.
- Files: a file comes back only if it's still stored. Otherwise the field is left empty, and the preview tells you.
- Deleted fields: restore the field from the field trash first, then restore its values.
- Values that no longer fit: if a field's type changed, or a value would break a unique field, that value is skipped.
- Before a whole-app backup restore: you can't restore a table to a time before the app was restored from a backup. Whole-app backups stay under Settings > Backups for disasters.
How long it's kept, and exports #
How many days of history you keep, and which restore options you have, depend on your plan. The top of the History tab shows your number of days and the oldest change you can restore.
Export gives you either the table at a point in time or every change between two dates (one row per change: when, who, record, field, before and after). Exports appear under Settings > Logs > History & Restore > Downloads for 48 hours.