Skip to content
Open beta — everything’s free right now, and your rate is locked when it ends.

Comments and activity: the record's memory

A conversation attached to the record it's about, and a history of who changed what. Where Activity lives, how @mentions notify, and who can see any of it.

Updated August 2026

Two people working the same table eventually need to say something to each other about one row. Not about the table — about this booking, the one with the deposit that hasn't cleared. Put that in a field and you've invented a notes column nobody trusts. Put it in a chat app and it's a sentence about a record, in a place with no record.

Every record now has an Activity surface holding both halves: what people said, and what changed.

Where it is

Open any record and look at the panel's header. On a wide screen Activity puts the feed beside the fields — record on the left, its memory on the right. Close it and the panel returns to its usual width; the choice is remembered for the rest of the session.

On a narrow screen there isn't room for two columns, so the panel shows a Record · Activity tab strip instead and gives you one at a time.

In the grid, a row that has comments shows a small speech bubble in the left margin, beside the row number — so you can see where the conversations are without opening anything. It sits in the margin rather than in the row so it never covers the record's name, and it steps aside on hover to leave you the select checkbox and the expand button. Change events don't put it there: a mark that appeared every time somebody touched a cell would stop meaning anything.

What the history records

The feed reads oldest at the top, newest at the bottom, with three shapes of sentence:

  • Created by Layla — the record's birth. When the record was made by an import or through the API, it says so instead: Created via import, Created via the API.
  • Layla changed Status, with the old value and the new one beside each other. A save that touched several fields at once is one line — Layla changed 3 fields — that opens to show each of them. For a field holding a list — linked records, a multi-select, assignees, attachments — only what actually moved is shown: a + for what arrived and a for what left. Changing one link on a record holding five shows you that one link, not both lists side by side.
  • A comment, with who wrote it and when.

Values render the way they do in the grid: a select keeps its colour, a link shows the linked record's name as it reads today, a long text is trimmed to its first 120 characters. The field itself always holds the full truth; the history is a record of the change, not a second copy of your data.

Two pills at the top filter the feed to All or Comments.

Where the history starts

Records created before this shipped have no recorded birth event, so their Activity opens with a line drawn from the record's own creation stamps and nothing before it. Changes made before that day were never written down and are not invented. A history that guesses is worse than one that starts late.

Mentions

Type @ in the composer and pick someone. They get one email: the comment, and a button that opens the record with the comment in view.

That is the whole notification system. There is no inbox, no digest, and no way to follow a record — being named is the only thing that reaches out to anybody, which is what keeps a mention worth reading. A mention of yourself doesn't mail you, and mentioning the same person twice in one comment is still one email.

If you'd rather not be emailed, turn it off in Your profile. A mention is still the only notification Tabla has — the switch beside it covers something else entirely, the few short notes we send in your first weeks if it looks like you got stuck. You can still be mentioned with the email off: the mention renders, points at you, and is there when you open the record. What you've declined is the email.

Editing a comment afterwards doesn't send anything again.

Who can see it

Comments and activity are for owners and editors. A viewer has no Activity control, no tab, and no count in the grid — the surface isn't dimmed or empty for them, it isn't there. The server refuses the same requests independently, so it isn't a matter of hidden buttons.

Public view links carry none of it. A shared view is your data without your team's conversation about it, and that stays true of anything the page loads.

Reacting

Hover a comment and pick one of four: got it, done, on it, or thanks. Click the same one again to take it back. Hovering a reaction shows who left it.

Four, and no picker. Most of what gets said in reply to a comment is an acknowledgement, and a reaction turns that into one click instead of a comment that pushes the real conversation down. A full emoji list would turn that one click into a search — and make the feed decorative, which isn't what a database is for.

Editing and deleting

You can edit your own comments; an edited one is marked Edited, and there's no revision history behind that — the current text is the comment. You can delete your own, and an owner can delete anyone's.

A deleted comment disappears for everyone immediately, and the feed offers Undo for about ten seconds. Take it back and it returns exactly where it was, with its own timestamp — not as a copy at the bottom pretending to be new. Let the moment pass and it's gone for good: no placeholder is left behind, and a link to a comment that's since been removed opens the feed and says Comment deleted.

Deleting a record takes its comments and its history with it, seven days later when the trash empties. Restoring it from the trash brings all of it back, including the lines recording the trip.

What it isn't

  • Not threaded. A flat feed of plain sentences. Replies-to-replies are how a record's notes turn into a chat app — and a reaction covers most of what a reply would have said anyway. If you need to direct a message, @ does it.
  • Not a way to rewind. The history shows what a field held; it doesn't put it back. Restoring a value means editing it, the way you would any other.
  • Not in the API. The public API has no comments or activity endpoints today. Adding them is a deliberate piece of API design, not something that should arrive as a side effect. The whole-database export does carry them: comments.csv, one row per comment, in any zip pulled by an editor or an owner.
  • Not a webhook trigger. Comments don't fire webhooks.

Tabla is the database we build these on.

A no-code database with real Postgres underneath: every feature on every plan, a million records per database, and your whole database back out in one file, any day.

More guides