The Audit Log at Utilities → Audit Log is JewelTrak’s accountability layer: every meaningful change to a record (create, update, delete) is captured with who did it, when, the full before-and-after of every changed field, and a Restore button to undo it.
The audit log is admin-only (gated by CanManageUsers).
What gets logged
The audited operations cover the records most likely to need investigation or recovery:
- Inventory — creates, updates, deletes (including bulk operations), plus photo and video adds, replaces and deletes
- Customers / contacts — creates, updates, merges, deletes, communication and marketing-consent changes, and duplicate-suggestion dismissals
- Invoices and line items — finalize, void, edit, line add/remove, set grouping, and cancelled card-reader charges or payment links
- Memos — issue, return, convert, reminder snoozes
- Payments — record, void, refund
- Partnerships — setup, reconcile
- Settings — store config, user roles, permission group changes, invoice payment options, Stripe disconnect
- Your lists — adding, renaming and deleting values in List Maintenance, including how many records a rename rewrote
- Logins — user created, password changed, name changed, device signed out, account banned or unbanned
- Schema-touching admin actions — anything that goes through the audited helpers
Routine reads, list views, and report generation are not logged — too noisy. Neither is anything that isn’t really a change to your business records: presence pings, your own dashboard layout, per-device notification registration, and card-reader status refreshes (that last one is Stripe reporting what it sees, not somebody editing a record).
When the “user” isn’t one of your staff
Some entries are made by someone outside the shop, or by a connected service. There is no staff member to ask afterwards, so the log names the source instead:
- Customer (approval link) — a customer approved or declined a quote from the link you emailed
- Appraiser (upload link) — your outside appraiser uploaded a finished appraisal PDF
- Shopify (orders/create webhook) — an online sale created an invoice and reduced quantity on hand
- Shopify (orders/cancelled webhook) — an online order was cancelled, voiding the invoice
- calendly (appointment webhook) — a booking created an appointment, and possibly a new customer
That last detail is worth knowing: when a booking or an online order arrives from someone not
already in your contacts, JewelTrak creates the customer record for them. The audit entry says so
(contactCreated), which is usually the answer to “where did this customer come from?”
Entries made by JewelTrak support carry the support person’s name and appear in your log —
including when a JewelTrak admin signs into your account, which is recorded as admin_entered_org.
Searching the log
Filters on the log page:
- Date range — most common starting filter
- User — who did it
- Entity type — inventory / contact / order / payment / etc.
- Operation — create / update / delete
- Search text — match against record IDs or field values
Each row shows the timestamp, user, operation, the affected record, and a one-line summary of what changed, such as QtyPurchased: 2 → 3.
To see everything in an entry, click anywhere on its row (on a phone, tap it). A panel opens with:
- What changed: every field that changed, with its Before and After values side by side.
- Details: anything recorded with the entry that isn’t a change, such as a restock’s date and unit cost. When a whole record was saved or deleted, every field it held is listed here under Record as it was or Created with.
- The note, if there is one, and a Restore this record or Undo this change button when the entry can be put back (see below).
Restoring from the log
Restoring starts from the entry itself: click the entry’s row to open it. When it can be put back, the panel shows a button, and JewelTrak asks you to confirm before anything changes.
For deletes, the button is Restore this record. Every audited delete captures the full record as it was (and any of its dependent rows that went with it), and JewelTrak rebuilds it from that, including the IDs where possible. An audit entry is added recording the restore.
For updates, the button is Undo this change. It puts the entry’s Before values back on those fields. Later edits made since that change are not reverted, only the change you’re undoing.
When an entry can’t be restored, the panel says why: some kinds of records aren’t restorable from the log, only deletes and updates can be undone, and some entries didn’t save the values needed to put them back.
This works for any audited record without database access. Common uses:
- Salesperson deletes the wrong invoice → restore from audit
- Manager edits a partner’s split percentage by mistake → restore from audit
- Inventory item description changed and you want the old one back → restore the field
Polymorphic refs and limits
The restore engine handles polymorphic references (item_additional_costs, setstones.MountID, etc.) at the app layer — there are some edge cases where a restore needs manual intervention if the parent record has changed since the delete. The UI flags those with a warning.
Tips
- The audit log is append-only — no editing, no deletion of entries. Even the act of restoring leaves its own log entry.
- For high-volume changes (bulk imports), the log can get large fast. Use date filters to keep the page responsive.
- The log is invaluable for compliance and audits — most year-end reviews want to see “who changed what when” for sample transactions.
- If you need a one-shot bulk-export of audit entries (for a regulator, an incident response), the Audit Log Viewer’s CSV export covers the same data the UI shows.