Navarre.ai engageU
EngageU Malmö · Thursday, October 1

Seven practical
AI patterns

Who

What I do

•AI integrationfor FileMaker developers and their clients
•Trainingclasses, free and paid
•Coachingone to one, on your own solution

navarre.ai

Matt Navarre
Who

FileMaker
since 1987

Certified on every version.

Matt as a baby, already in a suit and glasses
Who

Matt Navarre

•fmSearchResultsnow Mitos
•fmLognow Clio
•Podcasting since 2008FileMaker Talk, then ClarisTalk AI with Cris Ippolite
Matt on a scooter at Lake Kournas, Crete
The rule

FileMaker is the
source of truth

The system of record.

AI reads, sorts and writes words. It does not own your data.

Today

The seven

01

Semantic search

Then & now
02

Unlimited extension

Beside
03

Ask your data

Beside
04

Logs in the AI age

Beside
05

Record checker

Inside
06

Data entry assistant

Inside
07

Automation

Aletheia preview
First · the change under all seven

A tool that runs
beside FileMaker

The change · what it is not

Almost nothing in your file

It is not
  • A plug-in, or an add-on
  • A custom function
  • An extra file
  • Lots of scripts or calcs
  • Lots of layouts
Per tool, it is
  • One script
  • A couple of calcs
  • A couple of layouts
The change · what it is

One container

It holds

Its own code

And

Its own data

And

Its own screens

Kept by

A coding agent

The change · the key

100% of the code
is maintained by prompts
in Claude Code

The change · where it runs

Anywhere Docker runs

Fly

one command, a few euros a month

AWS, Azure, Google

the cloud you already pay for

Your FileMaker Server box

same machine, same building

A desktop

any Mac or PC with Docker

A mini PC or a NAS

in the office cupboard

Your own rack

a VM like any other

Render, Railway, DigitalOcean

if you prefer them

Nowhere new

it is one image, so you can move it

The change · why it matters

What this makes possible

Now possible
  • Jobs that take minutes
  • Data too big for a script
  • Python, or any language
  • Always on: schedules, webhooks
  • A screen with no FileMaker
  • Anything with an API
01

Semantic search.
Then and now

Find what you meant, not what you typed.

01
Demo

Old and new.
Side by side

1:30
Method 1 · inside the file

All in FileMaker. Two paths

Easy

You type

A search term

Perform Semantic Find

A flat table

Result

Ranked

Fuller

You type

Search term

Then

Enriched

Then

Embedded

Then

Semantic find

Result

Ranked

01 Search · enrichment

Enrichment

A name
Bob Whitfield, cardiac clinic

becomes

Robert WhitfieldWhitfeildBobbyheart cliniccardiology
A product
Canon EOS R5

becomes

Canon R5EOS R5EOSR5mirrorless camerafull-frame
01 Search · the extra power

One to one. Many to many

Without enrichment

One way in

A record matches the words it holds. Type something else and you miss it.

With enrichment

Many ways in

Many phrasings reach one record, and one question reaches many records: "heart doctors" finds every cardiology clinic, whatever it is called.

Method 1 · all in FileMaker

What you carry

The challenges
  • Re-embedding records, every time they change
  • Re-enriching records, so the text is worth embedding
  • The limits of the native Perform Semantic Find
Method 2 · the new way

Fly does the work in a Web Viewer

Docker · container · Fly

You type

Search term

Beside

Enriched

Beside

Embedded

Beside

Semantic find

Web Viewer

Ranked

Method 2 · the new way

What it asks of you

The list
  • A Fly account, with a card on file
  • OData and the Data API switched on
  • A read-only account: fmodata and fmrest only
  • One AI key
  • Someone to own it
01 Search · what decides what

Every step is a switch

Combine them per table. All on is not the goal.

At sync

Enrich this table?

Every keystroke

Text search, record and enrichment

On Return

Read it, embed it

The merge

Exact hits are never removed

01 Search · pro and con

Pro and con

Pro
  • One box, every table
  • Ranked, with a reason
  • Exact hits are never removed
  • Each stage is a switch
Con
  • A second thing to run
  • A copy of the text outside the file
  • The index syncs, so it lags
01 Search · back to FileMaker

Let’s install

$ curl -fsSL https://navarre.ai/get/mitos | sh

It asks for a name, then it builds.

02

Unlimited extension.
It is your code

02 Extension

Mitos: unlimited new features

with Claude Code, or Codex, or any coding agent

Learn from clicks Write Python Find, download and integrate outside data Custom login credentials Connect to non-FileMaker sources A sixth search stage Another model provider A new query kind Teach it names and nicknames Change what a record means Per-user table limits Run a local model Write back to FileMaker
02 Extension · today

What I will build, live

Claude Code · mitos

Mitos already logs every search and every click. When a search like this one was clicked through to a record before, raise that record in the list, and say why on the row.

It reads the repo first. It waits for my word before any deploy.

02 Extension · the shape

It learns from clicks

Already there

Every click, logged

Claude Code adds

A score for past clicks

Then

The same search

On the row

Clicked here before

02
Demo

Start the build

0:30
03

Ask your data.
Reports are just the start

03
Demo

Ask.
Get meaningful answers

1:00
03 Ask your data · the shape

Beside the file

Your file

Read-only account

Sync

OData, only what changed

Beside

DuckDB

a million rows grouped in 8 ms

Either

A meaningful answer

Or

Something to look at

03 Ask your data · pro and con

Pro and con

Pro
  • Any question, in English
  • Big data stays fast
  • Print it to PDF
  • Ask again, dig deeper
Con
  • A copy of the data outside FileMaker
  • It answers from the last sync
  • Somebody has to own the box
03 Ask your data · back to FileMaker

Let’s install

$ curl -fsSL https://navarre.ai/get/pythia | sh

It asks for a name, then it builds.

Demo

Look inside

04

Clio

Logs. Boring.
Let’s see what this AI thing is, though.

04
Demo

What Clio does

1:00
Method 1 · OnWindowTransaction

You commit
a record

Invoices · 4211
CustomerNordic Ferries AB
StatusDraftSent
Total1,250.001,480.00
Modified byanna
✓ Commit
Method 1 · OnWindowTransaction

One trigger.
The whole file

Invoices · 4211
Total1,480.00
File Options › Script Triggers

OnWindowTransaction

Set at file level. One checkbox,
plus one unstored calc per key table.

Method 1 · OnWindowTransaction

It hands you
the changes

Invoices

4211

Trigger

OnWindow­Transaction

Get ( ScriptParameter )

{ "Sales" : {
    "Invoices" : [
      [ "Modified", 4211, { ... } ],
      [ "New",      4212, { ... } ],
      [ "Deleted",  4108, { ... } ]
] } }
Method 1 · OnWindowTransaction

The { ... } is yours

ScriptParameter

[ "Modified", 4211, { ... } ]

Invoices::OnWindowTransaction · unstored calculation

JSONSetElement ( "{}" ;
  [ "id" ;          Invoices::ID ;         JSONString ] ;
  [ "total" ;       Invoices::Total ;      JSONNumber ] ;
  [ "status" ;      Invoices::Status ;     JSONString ] ;
  [ "modified_by" ; Invoices::ModifiedBy ; JSONString ]
)
Method 1 · OnWindowTransaction

One script sends it

Invoices

4211

Trigger

OnWindow­Transaction

Script

Insert from URL

Clio

Logged

Method 1 · pro and con

Pro and con

Pro
  • One checkbox, every table
  • No layout work
  • Runs on imports and deletes
  • Open Transaction: 200 records, one call
  • Rolled back work logs nothing
Con
  • An unstored calc per table
  • Fires on everything, automations too
  • No off switch, per account or in a script
  • The script can be cancelled
  • Direct Data API and OData writes: no fire
Method 2 · OnObjectSave

Or pick
your spots

Layout by layout. Field by field.

One field

Status

Trigger

OnObjectSave

Script

Insert from URL

Clio

Logged

Method 3 · any script at all

No trigger.
Just the call

Called from
  • A login script
  • A nightly automation
  • An import or an export
  • Anything you already wrote
Script

Insert from URL

Clio

Logged

04 Clio · what you get

Then the useful part

Every change

what changed, record by record, and when

Rules

you build them in a chat

Alerts

to Slack or a webhook, when a rule fires

Questions in English

"who changed this price?"

04 Clio · what you add to your file

What you add
to your file

1script
1unstored calc per table
1checkbox
04 Clio · what you add to your file
1script
1unstored calc per table
1checkbox
5in total
04 Clio · what you add to your file
1script
1unstored calc per table
1checkbox
3in total

“Three, sir!”

04 Clio · back to FileMaker

Let’s install

$ curl -fsSL https://navarre.ai/get/clio | sh

It asks for a name, then it builds.

Demo

Look inside

05

Deep in the record.
Up on the surface

It reads the whole tree and tells you what matters.

05
Demo

Open a record.
See a short analysis

1:00
05 Record checker · the shape

It never makes you wait

On record load

Start in the background

Load

The record tree

One call

The AI analyzes it

Write

A related record

05 Record checker · the answer

A fixed shape,
every time

The schema you send with the record

{ "summary":  "one sentence a human would say",
  "odd":      ["values that do not fit the rest"],
  "missing":  ["fields a record like this usually has"],
  "next":     ["what to do about it"] }
05 Record checker · what it does

Surfaces
useful info

Demo

Look inside

06

A data entry assistant.
Paste, and it fills

Every field that can be set, is set. You check it.

06
Demo

Paste. Done

1:00
06 Data entry · the shape

Your fields drive it

Any text

Pasted in one field

Your field list

Sent with it

One call

JSON back

The script

Fills the fields

06 Data entry · the point

It takes what is relevant.
It ignores the rest

•Fields the text says nothing about are left alone
Demo

Look inside

07

Automation.
The Aletheia preview

Super early.

07 Automation · Aletheia

She runs the work you give her

Always open

Bridges

Real time, system to system.

Public

Forms

Hosted, reaching into FileMaker. No copy of FileMaker needed.

On a schedule

Timed jobs

Cleaners, importers, updaters.

Every run tracked. A super early preview.

07 Automation · as it happens

Aletheia, as you type

A user

Enters data

The server

The call fires

Rule based

AI call applied

Then

Log saved, data edited

07 Automation · on a schedule

And while nobody is there

Aletheia

Looks for updated records

Rule based

Check

Log

Every finding

Apply

The changes

07
Demo

Aletheia

1:00
07 Automation · the rule

A rule is data

One rule · state as a two letter code

{
  "field": "State",
  "check": { "type": "pattern", "pattern": "^[A-Z]{2}$" },
  "fix":   { "type": "map", "map": { "New Jersey": "NJ" } },
  "mode":  "auto",
  "minConfidence": 1
}
07 Automation · the gate

You pick the trust

report

Say it

Record the finding. Propose nothing.

propose

Offer it

Propose a value. Wait for a person.

auto

Do it

Write it, above the confidence floor.

07 Automation · the log

Every run
leaves a reason

Aletheia's ledger · one entry per write

{ "at": "2026-08-25T09:41:02Z", "rule": "org-state-usps",
  "field": "State", "old": "New Jersey", "new": "NJ",
  "why": "known replacement", "confidence": 1, "mode": "auto" }
07 Automation · coming next

And five more jobs

Alerts

when a rule finds something

Quality reports

what got fixed, by rule

Scheduled imports

clean on the way in

Webhooks

in and out

Merges

duplicates, found and joined

Ideas, not built yet.

Back to 02

Remember
the build?

It worked while we talked.

Live

Check in

Demo

Same search.
Watch it move

The family

Four tools, one shape

Μ

Mitos

one box, every table

Π

Pythia

ask your data

Κ

Clio

every change, remembered

Α

Aletheia

the work you give her

Same install, same posture: beside the file, never inside it.

Help

Let me help you

Free

Half an hour

What are you working on?

navarre.ai

Questions

navarre.ai

Free tools · Open source · More on the way