FileMaker-Integration · Beta
CellAlert in FileMaker einbinden
Ein Web-Viewer-Panel macht aus Datumsfeldern in deinen FileMaker-Datensätzen überwachte Fristen — mit Erinnerung per E-Mail & Kalender, auch wenn FileMaker zu ist.
Web-Viewer-Adresse
https://filemaker.cellalert.appVoraussetzung: FileMaker Pro 19+ (Web Viewer mit JavaScript) und ein CellAlert-Konto.
In 4 Schritten eingebunden
- 1Auf dem gewünschten Layout (z. B. „Kunden“) einen Web Viewer platzieren.
- 2Als „Webadresse“ die berechnete Formel unten einsetzen — sie übergibt den aktuellen Datensatz (Primärschlüssel, Feld, Datum) an CellAlert. Tabellen- und Feldnamen an dein Schema anpassen.
- 3Optional ein FileMaker-Script „CellAlert Saved“ anlegen, das die zurückgegebene reminder_id am Datensatz speichert — so bleibt die Verknüpfung erhalten.
- 4Im Panel einmal mit deinem CellAlert-Konto anmelden. Fertig — Datum übernehmen = überwachte Frist.
Web-Viewer-Formel
Diese berechnete „Webadresse“ in den Web Viewer eintragen. „Kunden“, „Vertragsende“ und „_pk“ durch deine Tabelle, dein Datumsfeld und deinen Primärschlüssel ersetzen.
"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"
Datum als ISO (yyyy-mm-dd)
CellAlert erwartet das Datum als yyyy-mm-dd. Ist dein Feld anders formatiert, mit dieser Hilfsformel umwandeln und als „due=“ einsetzen.
Year ( Kunden::Vertragsende ) & "-" & Right ( "0" & Month ( Kunden::Vertragsende ) ; 2 ) & "-" & Right ( "0" & Day ( Kunden::Vertragsende ) ; 2 )
Stabile Verknüpfung (wichtig)
Damit eine Frist fest mit dem Datensatz verknüpft bleibt — auch wenn die FileMaker-Datei umbenannt oder kopiert wird — gib eine stabile Lösungs-ID mit (Parameter „solution“). Lege dazu ein globales Textfeld „SolutionID“ an und setze es einmalig per Auto-Eingabe/Script auf eine UUID. CellAlert erkennt den Datensatz daran wieder und aktualisiert die bestehende Frist, statt eine zweite anzulegen.
If ( IsEmpty ( Einstellungen::SolutionID ) ;
Get ( UUID ) ;
Einstellungen::SolutionID )Rückmeldung an FileMaker (optional)
Nach dem Speichern ruft CellAlert dein Script „CellAlert Saved“ mit { reminderId, recordId, field } als Script-Parameter auf. Mit Get(ScriptParameter) auswerten und die reminderId am Datensatz ablegen — damit ist die Frist fest mit dem Datensatz verknüpft und wird beim erneuten Öffnen aktualisiert statt doppelt angelegt.
Stufe 2
Automatischer Sync — ohne offenes Panel
Damit sich eine Frist automatisch aktualisiert, wenn jemand das Datum in FileMaker ändert (oder den Datensatz löscht) — auch ohne das Panel zu öffnen — pusht ein FileMaker-Script-Trigger die Änderung direkt an CellAlert.
- 1. Org-API-Token erzeugen (nur Owner) und in einem Feld „CellAlertToken“ hinterlegen — der Token autorisiert den Hintergrund-Zugriff ohne Login.
- 2. Das Script „CellAlert Sync“ (unten) anlegen und Tabellen-/Feldnamen an dein Schema anpassen.
- 3. Das Script als Layout-Trigger „OnRecordCommit“ hinterlegen (Layout-Einstellungen → Script-Trigger). Bei leerem Datum sendet es automatisch „delete“.
Ingest-Endpoint
https://evpwrncmodbakhseyxdl.supabase.co/functions/v1/fm-ingestSync-Script (FileMaker)
Baut die JSON-Daten und schickt sie per „Insert from URL“ an den Endpoint. Der Token kommt aus „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" ]