Audit Log & Version History: the FileMaker add-on that knows who changed what

Free FileMaker add-on

Add field-level accountability and record restore points without building a custom history system from scratch.

Get the Audit Log & Version History add-on

Tell us where to send it and we will email your download link right away.

FileMaker does not include audit logging or version history out of the box, and building either one yourself is a bigger project than it looks. Kyo Logic’s Audit Log & Version History add-on gives your FileMaker solution both in a few minutes of setup: a filterable log of every field-level change, plus optional record versioning that lets you restore an entire record to an earlier state at the click of a button.

Here is the moment this add-on exists for. A quantity on an order is wrong. The customer says they never approved the change. Three people had the record open this week, and every one of them says it was not me. Without an audit log, that conversation goes nowhere. With one, you open the log, filter to the order, and see the field, the old value, the new value, who made the edit, and when.

Why is audit logging hard in FileMaker?

Audit logs and versioning are not native FileMaker features, and they are not easy to implement well. A homegrown approach usually means a separate history table, scripted writes on every layout, and careful handling of edge cases like deletions and related records.

The harder problem is maintenance. Most audit tools, homegrown or otherwise, need constant attention as the solution grows. Add a field and someone has to remember to log it. Add a table and someone has to wire it in. The log quietly falls behind the schema, and the gaps only surface when you need the history you did not capture.

The add-on is built to avoid that trap. It takes only a few minutes to set up and runs seamlessly from there.

What the add-on logs out of the box

The core functionality covers the cases a homegrown script usually misses:

  • Every non-container field that changed in the record is logged with its value, even if the field is not on the layout where the edit happened.
  • Standard exceptions such as summary fields, calculations, globals, and record metadata can be included or excluded based on naming conventions, so you decide what counts as signal.
  • Logs are easy to view and filter, so finding one change in one record does not mean scrolling raw data.

A user edits a record

↓

Every changed non-container field is captured with its value

↓

The log records who made the change and when

↓

An authorized user can view and filter the history

Setup is two script triggers, not a rebuild

To begin logging on a new table or section of your solution, only two script triggers are required. That is the whole integration step. No per-field configuration, no rebuilding layouts, no audit schema to design. It also means the add-on keeps up as your solution grows: bringing a new table under logging is minutes of work, not a project.

Related records tell the rest of the story

Many edits that matter do not happen on the record you are looking at. An order looks untouched while its line items changed underneath it. Related Record Logging, the first of two optional features, extends the audit trail across those relationships:

  • Changes made to related records are logged.
  • Related record creation and deletion are logged too, so a deleted line item leaves evidence instead of a gap.
  • You choose which related tables to include or exclude by changing only one script step.

Every version is a restore point

Record Versioning & Restoration is the second optional feature, and it turns the audit trail into an undo button. When any change is made, the add-on stores the previous version of the record: who made the edit, when, and the value of all fields unless you have excluded them from logging. When Related Record Logging is enabled, versioning covers related records as well.

Every stored version is a restore point. At the click of a button, you can revert an entire record back to an earlier state. Versions are viewable and searchable, so recovering from a bad import or an accidental edit starts with finding the right moment in time, not reconstructing it from memory.

A record is about to change

↓

The previous version is stored, with who, when, and every field value

↓

Versions accumulate as a searchable history

↓

One click restores the record to any earlier state

What this could look like in your solution

Sample FileMaker audit log view listing changed-on, changed-by, field changed, and before and after values for each record edit
A sample audit log view for a solution like yours. Conceptual illustration, not a product screenshot. The final add-on interface may differ.

For most teams, the payoff shows up in three places. Troubleshooting gets faster because the log answers what changed before anyone starts guessing. Accountability gets easier because who and when are recorded facts instead of recollections. And recovery gets safer because restoring a record is a click, not a manual re-entry from a backup.

Kyo Logic builds custom Claris FileMaker and manufacturing software for businesses across New England and beyond, and the Audit Log & Version History add-on comes from the same place as the rest of our work: problems our clients actually hit. If you want to see the add-on running against a real solution, or you want help deciding which tables deserve logging first, reach out. Setup takes minutes. The first time it answers who changed this, it will have paid for itself.

Frequently asked questions

Does FileMaker have built-in audit logging?

No. FileMaker does not natively track field-level changes or record versions. Audit logging requires either a custom build or an add-on like Kyo Logic’s Audit Log & Version History tool.

What does the add-on capture when a record changes?

It logs the value of every non-container field that changed in the table, along with who made the change and when, even if the field is not on the current layout. Summary fields, calculations, globals, and record metadata can be included or excluded by naming convention.

Can I undo a change to a record?

Yes, with the optional Record Versioning & Restoration feature. Every change stores the previous version of the record as a restore point, and you can revert the entire record to any earlier state at the click of a button.

How much work is it to add logging to a new table?

Two script triggers. Related record logging for a table is included or excluded by changing one script step.

 

Custom Import Tool: let anyone import spreadsheets into FileMaker without breaking data

Free FileMaker add-on

Custom Import Tool: let anyone import spreadsheets into FileMaker without breaking data

Friendly column labels, saved templates, and a preview step before anything touches your real records.

You can give everyday users a safe, flexible way to import spreadsheets into FileMaker without exposing your database structure. Kyo Logic’s free Custom Import Tool add-on maps friendly column labels to real fields, saves reusable import templates, and loads every file into a staging table first, so users can preview and fix the data before it reaches your real records.

Here is the moment it exists for. Every Monday, purchasing imports a vendor price sheet. This week the vendor added a column and moved “Unit Cost” two places to the right. The pre-mapped import script does not notice. Four hundred items now show a freight charge as their cost, and nobody finds out until a quote goes out wrong.

Why are FileMaker imports hard for everyday users?

Most FileMaker systems offer one of two import paths, and neither is ideal for a non-technical user.

  • A pre-mapped import script is simple, but rigid. If a column is renamed or reordered, it breaks or quietly puts data in the wrong field.
  • FileMaker’s built-in import dialog is flexible, but it shows users back-end field names, table structure, and naming conventions they should not need to understand.

Real files make it worse. Columns get renamed. Extra columns appear. Some rows should be skipped. One column holds two pieces of data. A user should not have to call a developer because a spreadsheet has one extra column.

What the add-on does out of the box

The Custom Import Tool sits in the middle. A full-access user defines friendly header options once, so an end user sees “Customer Email” instead of a field name like Customer::cust_primary_email. From there the workflow looks like this:

A full-access user maps friendly header labels to real FileMaker fields

↓

The incoming file is imported into a staging table

↓

An end user selects or creates an import template

↓

The user chooses which columns to import and which to skip

↓

The user previews, edits, and fixes the staged data

↓

The final import script moves the staged data into the right FileMaker table

Out of the box the tool supports up to 20 columns, and more can be added if you need them.

Templates that bend without breaking

If a vendor, customer, department, or outside system sends files in a consistent format, users save that structure as a template and reuse it. When a file arrives a little different, they adjust the column order or mark a column to skip. If the change is temporary, they make a one-time adjustment without changing the saved template.

Preview before you commit

A bad import straight into production can create duplicates, overwrite good values, or put information in the wrong fields. Staging the data first gives users a safe place to look. Skipped rows and skipped columns are highlighted, and the staging table is open for edits, so users can clean up values or remove rows before the final step.

Create and update records in one import

With match fields configured, one import can update records that already exist and create new ones where no match is found. That is useful for customer lists, inventory counts, product catalogs, order updates, and membership lists, where some rows are new and some are changes.

Ideas for how to use it

  • Vendor price sheets: one template per vendor, adjusted when a vendor changes its format.
  • Inventory counts: stage the counts, review the differences, then update.
  • Customer and prospect lists: match on email or account number, update the rest.
  • Order data from outside systems: map their column names to your fields once.
  • Cleanup before go-live: review and correct legacy data before it reaches the new system.

Developers can extend it with scripting, for example splitting a single “Full Name” column into first and last name, or parsing a combined address into street, city, state, and ZIP. Once data is in, the Audit Log & Version History add-on can record what changed afterward, and the Data File script steps handle the export side.

What this could look like in your solution

For most teams, the first template is the import someone dreads every week. Once that one runs from a template with a preview step, the developer stops getting calls about it, and the person running it stops worrying about it. Messy data is often the real problem behind unreliable reports, and controlled imports are one of the cheapest places to stop it at the door.

Kyo Logic builds custom Claris FileMaker and manufacturing software for businesses across New England and beyond. If you want help setting up match logic, building parsing rules for a difficult file, or deciding which recurring imports to template first, reach out.

Frequently asked questions

How do I let users import data into FileMaker without seeing field names?

Map friendly column labels to real fields ahead of time. The Custom Import Tool lets a full-access user define those labels so end users choose names like Customer Email instead of back-end field names.

Can I preview an import before it changes my records?

Yes. The tool imports the file into a staging table first. Users can review, edit, and skip rows or columns, and skipped items are highlighted, before the final import runs.

Can one import create new records and update existing ones?

Yes. With match fields configured, the import updates records that already exist and creates new records where no match is found.

How many columns does the Custom Import Tool support?

Up to 20 columns out of the box, with the option to add more if needed.

Quick takeaways

  • List the imports your team runs every week and template the most painful one first.
  • Use a staging step for any import that touches records people rely on.
  • Pick a reliable match field, such as an account number or email, before you allow updates.
  • Download the add-on and run one real file through staging to see what it catches.

Get the Custom Import Tool add-on

Tell us where to send it and we will email your download link right away.