Every edit, import, export, push, AI run and settings change is recorded with the person behind it, the values before and after, and the reason. AI-originated changes are labelled as such and kept distinct from human edits. Any field change can be reverted, and the revert is itself logged, so there is no way to quietly undo history. Entries are hash-chained: each one is hashed together with the one before it, so changing or removing any entry breaks every hash after it — one click checks the whole chain, and the log exports to CSV with the hashes included so it can be verified independently.
When a price is suddenly wrong across three channels, the useful question is not "what is it now" but "what changed, when, and who did it". Most systems cannot answer that, and the ones that keep a log usually keep one you have to trust.
With AI writing product fields in bulk, this gets sharper: you need to be able to tell a machine’s edit from a person’s, and undo one without undoing the other.
How it works
Everything is recorded, by default
Edits, imports, exports, pushes, AI runs, approvals and settings changes, each with the person or system behind it, the values before and after, and the request that caused it.
AI edits are labelled as AI edits
AI-originated changes are marked as such and kept distinct from human ones, at field level, against the value they wrote.
Any field can be reverted
Revert one field, or a whole job or sync run. A revert appends a new event rather than erasing the old one, and it refuses if the value has moved on since — so you cannot silently overwrite someone else’s later fix.
Entries are hash-chained
Each entry is hashed together with the one before it. Altering or deleting any entry breaks every hash after it, and the sequence numbers are uniquely indexed so a removed row leaves a gap that cannot be filled.
You can check it, and take it with you
One button verifies the whole chain and names the first inconsistent entry if there is one. The log exports to CSV with the hashes included, so it can be verified independently of us.
What you get
- ✓Every action with attribution, timestamp, and before-and-after values
- ✓AI-originated changes distinguishable from human edits at field level
- ✓Per-field revert, and batch revert by job or sync run
- ✓A hash chain per workspace, with one-click verification
- ✓CSV export including the hashes, for independent verification or a compliance reviewer
- —It is tamper-evident, not tamper-proof. The chain is stored in the same database as the entries, so it detects alteration rather than preventing it — anyone with database write access could recompute it forward. Detection against that requires anchoring the current head hash somewhere outside the database, which is what the exported head is for. We would rather say this than call it immutable.
- —Reverting a field does not push it anywhere. It corrects the catalogue; the change then reaches platforms through the normal export or push path, with the normal approval.
- —Records are kept for two years by default, not forever.
Questions
Is the log immutable?
No, and we will not claim it is. It is hash-chained, which means altering or removing an entry is detectable — every hash after it stops reconciling, and a missing entry leaves a sequence gap. But the chain lives in the same database as the rows, so it proves tampering happened rather than preventing it. Export the log and keep the head hash elsewhere and you close that gap yourself.
Can I get the log out for an audit?
Yes. It exports to CSV from inside the product, including the chain columns, so a reviewer can re-verify the hashes without access to FeedGraph.
Can I undo an AI enrichment run?
Yes. AI-written fields keep their previous value, so you can revert one field, or the whole run by its job reference. The revert is itself logged, and it refuses if someone has since changed that field to something else.
More in Platform and control
All features →Reports
AI-written business reports you can schedule, plus sales velocity, quality history and sync activity.
View feature →Write Actions safety gate
FeedGraph is read-only towards your ad accounts until you say otherwise — then every single change still needs approving.
View feature →External API & webhooks
Read your catalogue, projections and adapters over REST with scoped keys — and receive HMAC-signed webhooks when things change.
View feature →Ready to try it?
FeedGraph is in early access. Apply to join and we'll onboard you personally — no credit card required.
Join early access