FileMaker integration · Beta
Add CellAlert to FileMaker
A Web Viewer panel turns date fields in your FileMaker records into monitored deadlines — with email & calendar reminders, even when FileMaker is closed.
Web Viewer URL
https://filemaker.cellalert.appRequires FileMaker Pro 19+ (Web Viewer with JavaScript) and a CellAlert account.
Set up in 4 steps
- 1Place a Web Viewer on the layout you want (e.g. “Customers”).
- 2Set the calculated formula below as the “Web Address” — it passes the current record (primary key, field, date) to CellAlert. Adapt the table and field names to your schema.
- 3Optionally add a FileMaker script “CellAlert Saved” that stores the returned reminder_id on the record — so the link is kept.
- 4Sign in once in the panel with your CellAlert account. Done — confirm the date and it's a monitored deadline.
Web Viewer formula
Enter this calculated “Web Address” into the Web Viewer. Replace “Kunden”, “Vertragsende” and “_pk” with your table, date field and primary key.
"https://filemaker.cellalert.app/?" & "title=" & GetAsURLEncoded ( Kunden::Name & " — Vertragsende" ) & "&due=" & GetAsURLEncoded ( Kunden::Vertragsende_ISO ) & // yyyy-mm-dd "&file=" & GetAsURLEncoded ( Get ( FileName ) ) & "&table=" & GetAsURLEncoded ( Get ( LayoutTableName ) ) & "&recordId=" & GetAsURLEncoded ( Kunden::_pk ) & // dein Primärschlüssel "&field=Vertragsende" & "&solution=" & GetAsURLEncoded ( Einstellungen::SolutionID ) & // stabile Lösungs-ID "&callbackScript=CellAlert Saved"
Date as ISO (yyyy-mm-dd)
CellAlert expects the date as yyyy-mm-dd. If your field is formatted differently, convert it with this helper and use it as “due=”.
Year ( Kunden::Vertragsende ) & "-" & Right ( "0" & Month ( Kunden::Vertragsende ) ; 2 ) & "-" & Right ( "0" & Day ( Kunden::Vertragsende ) ; 2 )
Stable link (important)
To keep a deadline firmly linked to the record — even if the FileMaker file is renamed or copied — pass a stable solution ID (the “solution” parameter). Create a global text field “SolutionID” and set it once via auto-enter/script to a UUID. CellAlert uses it to recognise the record and update the existing deadline instead of creating a duplicate.
If ( IsEmpty ( Einstellungen::SolutionID ) ;
Get ( UUID ) ;
Einstellungen::SolutionID )Callback to FileMaker (optional)
After saving, CellAlert calls your “CellAlert Saved” script with { reminderId, recordId, field } as the script parameter. Read it with Get(ScriptParameter) and store the reminderId on the record — this firmly links the deadline to the record and updates it on re-open instead of creating a duplicate.
Stage 2
Automatic sync — without the panel open
So a deadline updates automatically when someone changes the date in FileMaker (or deletes the record) — even without opening the panel — a FileMaker script trigger pushes the change straight to CellAlert.
- 1. Create an org API token (owner only) and store it in a field “CellAlertToken” — the token authorises background access without a login.
- 2. Create the “CellAlert Sync” script (below) and adapt the table/field names to your schema.
- 3. Attach the script as an “OnRecordCommit” layout trigger (Layout Setup → Script Triggers). When the date is empty it automatically sends “delete”.
Ingest endpoint
https://evpwrncmodbakhseyxdl.supabase.co/functions/v1/fm-ingestSync script (FileMaker)
Builds the JSON and sends it via “Insert from URL” to the endpoint. The token comes from “Einstellungen::CellAlertToken”.
# Script „CellAlert Sync" · Trigger: OnRecordCommit
Set Variable [ $url ; "https://evpwrncmodbakhseyxdl.supabase.co/functions/v1/fm-ingest" ]
Set Variable [ $body ; JSONSetElement ( "{}" ;
[ "action" ; If ( IsEmpty ( Kunden::Vertragsende ) ; "delete" ; "upsert" ) ; JSONString ] ;
[ "solution" ; Einstellungen::SolutionID ; JSONString ] ;
[ "file" ; Get ( FileName ) ; JSONString ] ;
[ "table" ; Get ( LayoutTableName ) ; JSONString ] ;
[ "field" ; "Vertragsende" ; JSONString ] ;
[ "recordId" ; Kunden::_pk ; JSONString ] ;
[ "title" ; Kunden::Name & " — Vertragsende" ; JSONString ] ;
[ "due" ; Kunden::Vertragsende_ISO ; JSONString ] ;
[ "reminderDays" ; 14 ; JSONNumber ]
) ]
Insert from URL [ With dialog: Off ; Target: $result ; $url ;
cURL options:
"-X POST" &
" -H \"Authorization: Bearer " & Einstellungen::CellAlertToken & "\"" &
" -H \"Content-Type: application/json\"" &
" -d @$body" ]