Sending Calendar Invites through FileMaker Pro

FileMaker is often the system of record for projects, cases, inspections, and client interactions. Yet meeting coordination frequently happens outside the system that owns the data, in inboxes, chat threads, or third-party scheduling tools. Over time, this disconnect creates friction, missed context, and unnecessary manual work.

Sending calendar invites directly from FileMaker helps close that gap. It allows meetings and appointments to be generated as part of a workflow, tied directly to the records that define them, without introducing plug-ins, external APIs, or additional services.

Using only native functionality available as early as FileMaker Pro 18, FileMaker can generate standard iCalendar (.ics) files and send them as email attachments that are recognized by most modern calendar clients.

How iCalendar Invites Work

Calendar invitations are distributed as .ics files that follow the iCalendar (RFC 5545) specification. When attached to an email, calendar applications such as Outlook, Apple Calendar, and Google Calendar detect the file and prompt the recipient to accept, decline, or tentatively accept the event.

From FileMaker’s perspective, this is a simple process:

  1. Assemble the meeting details in iCalendar format
  2. Write the formatted text to a .ics file
  3. Attach the file to an email

Because .ics files are plain text, FileMaker’s Data File script steps provide everything needed to create them programmatically.

 

Why This Matters in Real FileMaker Systems

Automated calendar invites are most valuable when they are driven by record state and business logic rather than manual steps.

Common scenarios include:

  • Project and client meetings
    Automatically generate calendar invites when a project meeting is scheduled or updated, ensuring all participants receive consistent details tied directly to the project record.
  • Inspections and site visits
    Send calendar invites to inspectors or field staff when inspections are assigned, reducing missed appointments and improving coordination across time zones.
  • Healthcare or laboratory scheduling
    Create appointment invites directly from FileMaker without relying on third-party scheduling platforms that may introduce compliance or data exposure concerns.
  • Internal reviews and approvals
    Schedule internal handoffs, audits, or review meetings as part of a controlled FileMaker workflow, keeping operational events aligned with the data that drives them.
  • Automated follow-ups
    Trigger calendar invites based on record changes such as contract approval, equipment readiness, or milestone completion, removing manual coordination steps.

In each case, the calendar invite becomes an output of the system, not a separate process users must remember to perform.


Important iCalendar Considerations

While the overall approach is straightforward, there are several rules and quirks to be aware of when generating .ics files.

  • Line length limits
    Each line must be no longer than 75 characters. Longer values, such as meeting titles or descriptions, must be folded onto additional lines. Continuation lines must begin with a space or tab character.
  • Time zones and daylight saving time
    Date and time values should be carefully formatted, typically using UTC (Z) timestamps. Incorrect handling can cause meetings to appear at the wrong time for recipients.
  • Invitation behavior
    The METHOD property determines whether recipients are prompted to respond (REQUEST) or whether the event is simply added to their calendar. This choice affects how invites behave across different clients.

Handling these details correctly is what separates a working proof of concept from a reliable production workflow.

Example iCalendar Event Data

Below is an example of a complete .ics file generated from FileMaker:

BEGIN:VCALENDAR

VERSION:2.0

PRODID:-//Meetings_Manager//FileMaker Pro//EN

METHOD:REQUEST

BEGIN:VEVENT

SUMMARY:FileMaker Pro Meeting Invite Creation Demo

UID:4821265E-F188-4A3B-9B47-6B62023885B8@fakemeetingscompany.com

DTSTAMP:20260128T185213Z

DTSTART:20260128T233000Z

DTEND:20260129T000000Z

LOCATION:Online Only

DESCRIPTION:

ORGANIZER;CN=Kyo Logic:mailto:kyoLogic@testEmail.test

ATTENDEE;CN=Test Person:mailto:testEmail@testEmail.test

SEQUENCE:2

END:VEVENT

END:VCALENDAR

Each field maps directly to meeting data that typically already exists in FileMaker, including start and end times, attendees, and organizer information.

 

Creating the .ics File in FileMaker

Once the meeting data is formatted correctly, generating the file itself is simple.

The basic steps are:

  1. Create a Data File, for example invite.ics
  2. Open the Data File
  3. Write the formatted iCalendar text to the file
  4. Close the Data File

Because the file contents are plain text, no special encoding or additional processing is required.

 

Sending the Calendar Invite

After the .ics file is created, it can be attached to an email using any supported FileMaker email method, including SMTP or the user’s default email client.

From the recipient’s perspective, the email behaves like a standard calendar invitation. The event can be accepted, declined, or added to their calendar depending on the calendar client and the invite settings.

 

Common Pitfalls to Watch For

When implementing calendar invites in real systems, a few issues tend to surface:

  • Incorrect or inconsistent time zone handling
  • Missing or duplicated UID values when updating events
  • Line folding errors that cause invites to be ignored silently
  • Different behavior across calendar clients, especially between desktop and web-based calendars

Testing with multiple clients and real email addresses is strongly recommended.

 

Extending the Pattern

Once basic invite generation is in place, the same approach can support more advanced workflows:

  • Updating existing calendar events by incrementing the SEQUENCE value
  • Supporting multiple attendees dynamically
  • Sending cancellation notices
  • Logging invite creation and updates back into FileMaker

These extensions make calendar invites a first-class part of a FileMaker system, rather than a one-off feature.

 

Putting It All Together

By generating calendar invites natively, FileMaker can participate directly in scheduling workflows without relying on external tools or services. This keeps coordination close to the data, reduces manual steps, and improves consistency across teams and systems.

Open the Meetings With Calendar Invites file, enter your meeting details, add attendees and an organizer, and send your first calendar invite directly from FileMaker.

If you’d like any help setting this up or have questions, give us a shout here.

 

Introducing the Multi-File Uploader (Free FileMaker Add-On)

Introducing the Multi-File Uploader (Free FileMaker Add-On)

Many teams need to attach more than one file at a time… photos, PDFs, spreadsheets, drawings. Out of the box, FileMaker selects a single file per action. The Multi-File Uploader add-on lets you drag-and-drop multiple files at once into your solution, much like you’d expect in modern web apps and storage tools.

You get: faster intake, fewer clicks, and a cleaner experience for staff who work with documents every day.

 

What you can do with it (examples)

  • Upload multiple files in one step to a record (photos, PDFs, spreadsheets, etc.).
  • Preview, download, or delete uploaded files from a simple portal.
  • Keep files with the record you’re viewing (customer, order, project, ticket).
  • Point storage to your own table if you already have a Documents/Files table.

     

Requirements & compatibility

  • FileMaker 19 or later (add-on support).
  • Works in hosted or local files.
  • Designed to drop onto any layout and link to that layout’s primary key.

Quick start (about 5 minutes)

1) Create the add-on bundle

  1. Open FileUploader-Addon.fmp12
  2. Click Create Add-on.
  3. When the script finishes, close FileMaker.

     

2) Install the add-on into your app

  1. Reopen FileMaker and open the target file (the file you want to enhance).
  2. In Layout mode, open the left pane → Add-ons → + Install Add-on.
  3. Select FileUploader and click Choose.
  4. In the Add-ons panel, drag the FileUploader icon onto your layout.

Configure it for your layout (important)

Note on sample code
These steps are examples. Please update layout names, table occurrences, field names, and any privileges to match your solution before deploying.

Open the script uploader_Upload File and make two small adjustments:

  • Tie uploads to your record

     

  • Change the value of the $id variable on lines 20 and 23 to use the primary key field of the layout’s base table
    (for example, Customers::CustomerID or Jobs::JobID).

     

  1. Choose where files are stored

     

  • By default, files are saved in the included uploaderFiles table.
  • If you keep documents elsewhere, update lines 33–37 in uploader_Upload File to target your own Documents/Files table and fields.

     

How to use (day-to-day)

  1. Click the blue “Upload Files” button.
  2. Drag and drop one or more files into the pop-up window.
  3. Click Upload to attach them to the current record.

Uploaded items appear in the portal below the button, where users can preview, download, or delete files as needed.

How it fits in real workflows

  • Field service or inspections: Drop in photos and checklists from a visit. No extra steps.
  • Sales and account records: Keep proposals, SOWs, and change orders with the customer.
  • Operations and projects: Store drawings, packaging specs, or vendor certifications on the job.
  • Support tickets: Attach screenshots and logs to speed up resolution.

Styling tips

  • Restyle the button and portal objects to match your theme.
  • Consider a card-style container for the file list (light background, subtle border).
  • If your theme has specific button/icon styles, apply them to the uploader controls.

Security & deployment

  • Apply privilege sets so only the right roles can upload or delete files.
  • If you change the storage table, confirm that accounts have the correct record and field access.
  • Test on a copy of your file before rolling out to production users.

Troubleshooting

  • Add-on not visible? Confirm you ran Create Add-on and restarted FileMaker before installing.
  • Files not linking to the right record? Re-check the $id assignment on lines 20 and 23 of uploader_Upload File.
  • Files not appearing in your table? If you pointed storage to a custom table, verify lines 33–37 and field mappings.
  • Portal looks empty? Ensure the portal is pointed at the correct related table occurrence and that the relationship uses your record’s primary key.

Special Thank You

The Multi-File Uploader would not be possible without Jason Wood of Define Database’s work. Jason originally created this tool for usage in S3, which we then converted for use in Filemaker. You can learn more about his original work here. Thank you Jason!

 

Download and next steps

If you would like a hand, we can help you drop the add-on onto a layout, point it to your primary key, and adjust the storage table. A short working session is often enough.

Appendix (for power users)

  • Consider adding a server-side cleanup routine (e.g., remove orphaned files if a record is deleted).
  • If you need versioning (v1, v2 files), add a simple counter field and include it in the file name on upload.
  • For large files, provide a progress indicator (conditional object tied to a “busy” flag set during upload).
  • If you keep documents externally (S3, Azure), adapt the storage portion of uploader_Upload File to write URLs and use a signed URL pattern for downloads.

Multi-File Uploader Add-on Download File

Please complete this form to download the FREE file.

This field is for validation purposes and should be left unchanged.
Name(Required)

Introducing the Communication Log (Free FileMaker Add-On)

Most teams track conversations in email threads, chat, and spreadsheets. When you need the full picture on a client, order, job, or ticket, context is scattered. A Communication Log centralizes those touchpoints right on the record, so anyone can see what was said, by whom, and when without leaving FileMaker.

You get: faster handoffs, fewer “did anyone call them?” moments, and an audit trail you can trust.

What you can do with it (examples)

  • Pin call notes, emails, and internal comments to any record

  • See a chronological timeline of interactions in one place

  • Load a log per customer, order, project, etc.

Requirements & compatibility

  • Works with modern FileMaker versions that support Add‑ons (FileMaker 19+).

  • Designed to drop onto any layout and point to your base table’s primary key

  • Ships with two helper scripts: dialog_Create Message and dialog_Load WebViewer

Quick start (5 minutes)

  1. Create the add‑on bundle

    • Download and open FileUploader-Addon.

    • Click Create Add‑on.

    • When the script finishes, close FileMaker.

  2. Install the add‑on into your app

    • Reopen FileMaker and open the target file.

    • In Layout mode, open the left pane → Add‑onsInstall Add‑on.

    • Select CommunicationLog and click Choose.

  1. Drop it into a layout

    • In the Add‑ons panel, drag the CommunicationLog onto the layout you want.

    • Restyle to match your theme (styles, fonts, colors).

 

  1. (Optional) Support multiple contexts

    • Open the script dialog_Create Message.

    • Replace the hard‑coded IDs on lines 10 and 20 with your layout’s primary key field (e.g., Customers::CustomerID).

    • This lets you reuse the add‑on on different layouts (Customers, Orders, Projects) and keep each log scoped correctly.

  2. Load behavior (recommended)

    • Trigger dialog_Load WebViewer on OnRecordLoad or OnLayoutEnter.

    • Pass the record’s primary key as a JSON parameter.

    • Use the example attached to the add‑on’s “Load Dialog” button as the source of truth for the correct JSON keys.

  3. Example (generic):
    // Script trigger parameter
    JSONSetElement ( “{}”
    ; [ “ID_LOG” ; YourTable::PrimaryKey ; 1]
    )

How it fits into real workflows

  • Sales/Account Management: Log calls and emails against a customer; see the full history before a renewal call.

  • Service/Support: Tie notes to a ticket; cut back on “who said what” confusion.

  • Operations/Projects: Keep vendor or internal coordination readable at a glance.

Styling tips

  • Create custom object styles for headings, timestamps, and message text to match your app.

  • Consider a light/dark background card for readability.

  • If the add‑on exposes buttons (add, filter, etc.), map them to your theme’s button style.

Security & deployment

  • Apply proper privilege sets so only the right users can add or edit messages.

  • Test on a copy of your file before deploying to users.

Troubleshooting

  • Add‑on doesn’t appear? Make sure you ran Create Add‑on and then restarted FileMaker before installing.

  • Web Viewer is blank? Confirm the dialog_Load WebViewer script is firing and that you’re passing the expected JSON key(s).

  • Messages not tied to the right record? Double‑check you replaced the hard‑coded IDs on lines 10 and 20 in dialog_Create Message with your primary key.

Download + next steps
Download the Communication Log (attached here)

Credentials for the demo: Admin / Admin (update before production).

Have 30 minutes? We’ll help you drop the add‑on into your file, point it at your primary key, and confirm the trigger/JSON parameter setup.

Appendix (for power users)

  • Consider calling the load script on both OnRecordLoad and OnLayoutEnter if you allow record switching and fast layout navigation.

  • If you need more than a single log per context (e.g., separate internal vs. external threads), duplicate the add‑on instance and drive each with a different context key.

  • Source control: version your add‑on bundle and keep a lightweight readme of local changes for your team.

Communication Log Add-on Download File

Please complete this form to download the FREE file.

This field is for validation purposes and should be left unchanged.
Name(Required)

GetFieldsOnLayout and Dynamic UI Creation

FileMaker 2025 introduces a new function that’s small in name but huge in impact: GetFieldsOnLayout. This addition allows developers to dynamically retrieve all fields that exist on a given layout—making it easier than ever to create adaptive, data-aware user interfaces that respond intelligently to context and user permissions.


Smarter, More Flexible Interfaces Traditionally, UI updates in FileMaker required developers to hard-code field lists or manually update scripts whenever layouts changed. With GetFieldsOnLayout, you can now query which fields exist on any layout at runtime.

That means you can:

  • Automatically build record views or reports that adapt to layout changes

  • Filter available fields by user role, record type, or access level

  • Dynamically display or hide fields without editing scripts manually

This dramatically reduces maintenance overhead and makes your apps more resilient as layouts evolve.

How It Works GetFieldsOnLayout ( layoutName ) returns a JSON array of all fields currently present on the specified layout. Developers can then parse this JSON and use it to power dynamic UI generation, reporting logic, or layout-aware automation.

Example use case:
A developer might build a script that automatically populates dropdowns or data grids based on the fields found in a layout. If a field is added or removed later, the UI updates automatically. No script changes required.

 

Building Dynamic Dashboards and Reports The combination of GetFieldsOnLayout with FileMaker’s JSON and scripting functions opens up exciting new possibilities:

  • Dynamic dashboards that automatically populate charts or KPIs based on layout fields.

  • Role-based interfaces that hide sensitive data depending on user privilege.

  • Smart reporting tools that adapt to layout changes without developer intervention.

These capabilities make FileMaker more modular, data-driven, and scalable for organizations with evolving business needs.

Why It Matters By introducing GetFieldsOnLayout, FileMaker 2025 eliminates one of the biggest friction points in UI management: keeping your front-end synchronized with your schema. Developers can now build smarter, more responsive apps that require less maintenance and deliver a better user experience.

Conclusion GetFieldsOnLayout is a deceptively simple addition that unlocks powerful, dynamic UI capabilities in FileMaker 2025. Whether you’re generating adaptive dashboards, automating reports, or managing user-specific layouts, this function helps your app evolve as your data does.

Want to learn how Claris FileMaker’s new development tools can simplify your app design and automation? Reach out to Kyo Logic here.

Faster Scripting: Code Folding and Navigation Updates

FileMaker 2025 introduces major improvements to the Script Workspace, giving developers the ability to move through complex scripts faster and write cleaner, more maintainable code. 

These updates, which are focused on code folding, enhanced navigation tools, and better organizational controls, make scripting more efficient for both new and experienced developers.


Code Folding: Simplify Complex Logic

One of the most welcome additions to Script Workspace is code folding. Developers can now collapse or expand sections of scripts, making it easier to manage lengthy processes.

Instead of scrolling through hundreds of lines, you can:

  • Collapse loops, conditional branches, or repetitive routines

  • Focus on the logic you’re actively editing

  • Keep scripts tidy for easier debugging and collaboration

This feature is especially valuable in enterprise solutions, where scripts often span multiple workflows and layouts.

 

 

Improved Navigation and Organization

FileMaker 2025 also introduces smarter navigation options inside Script Workspace, designed to reduce friction during development. Developers can:

  • Jump quickly between script sections or functions

  • Use search and filter tools to find steps by name or keyword

  • Navigate through scripts with clearer visual cues and indentation

Combined with the new Go to List of Records script step and enhanced script grouping, these updates make the workspace feel faster and more intuitive (especially when working across multiple scripts or modules).

 

 

Why It Matters for Developers

For anyone managing large, logic-heavy solutions, the new Script Workspace saves time at every turn. Developers can organize scripts by purpose, collapse logic when not in use, and find specific actions in seconds. Over time, these workflow improvements add up to significant productivity gains.

Beyond convenience, these updates also improve collaboration and maintainability. Clean, well-organized scripts are easier for teams to understand and modify, reducing onboarding time and preventing costly errors.

The Script Workspace updates in FileMaker 2025 give developers the clarity and control they’ve been asking for. With code folding, faster navigation, and smarter organization tools, building complex scripts is now faster, cleaner, and far more manageable.

Want to modernize your FileMaker environment and take advantage of these new scripting tools? Reach out to Kyo Logic here.

FileMaker Cloud 2025: What This Means for Modern FileMaker Deployments

Claris has announced that FileMaker Cloud 2025 (v2.22) is arriving in November, bringing faster performance, new security updates, and a few critical compatibility changes.

For most developers, this release isn’t about flashy new features, it’s about alignment: keeping your apps compatible, secure, and future-ready as the FileMaker platform continues its cloud-first evolution.

 


Why It Matters

The new FileMaker Cloud version introduces updated security infrastructure, improved monitoring, and performance optimizations built on the same Ubuntu foundation as FileMaker Server 2025.

But the real story is compatibility: older clients won’t connect after the upgrade. That means organizations running legacy versions of FileMaker Pro or Go need to update before November 6 to avoid user lockouts or connection errors.

In other words:

If you’re running FileMaker Pro earlier than 20.3.2 or FileMaker Go before version 21, plan your upgrades now.

 


What’s New

FileMaker Cloud 2025 brings:

  • Enhanced encryption and security certification (SOC 2 Type 2, ISO/IEC)

     

  • Expanded AWS region support for better regional performance and compliance

     

  • Proactive infrastructure management handled entirely by Claris (patching, updates, OS maintenance)

     

  • Improved version-checking tools so admins can automatically prompt users to update

     

Together, these updates continue Claris’s push toward a self-maintaining, secure, and scalable FileMaker environment (especially for organizations ready to offload infrastructure management).

 


How to Prepare

If you’re an administrator:

  1. Audit your connected clients.
    Use the Admin Console’s Access.log or Claris’s sample file to check which FileMaker Pro/Go versions are still in use.

     

  2. Set up an upgrade prompt.
    You can script a simple version check using Get ( ApplicationVersion ) on file open. Claris even provides a template!

     

  3. Review your maintenance schedule.
    Manual upgrades open November 6, and systems with automatic maintenance will update during their next scheduled window.

     

For teams that rely on continuous uptime, this is a good opportunity to test in a staging environment before upgrading production systems.

 


Where It Fits

Claris continues to narrow the gap between on-premise and cloud deployments, with FileMaker Cloud now offering many of the same administrative controls as FileMaker Server (but without the maintenance burden).

For Kyo Logic clients, we see FileMaker Cloud 2025 as a strong fit for:

  • Teams that need enterprise-grade security without managing servers

     

  • Organizations with distributed workforces or multi-region access needs

     

  • Businesses planning to integrate Claris Connect or AI-driven features that depend on modern infrastructure

     

If you’re still hosting your own FileMaker Server but curious about the cloud transition, this release makes the case stronger than ever.

 


Kyo Logic’s Take

Claris isn’t just maintaining the platform, they’re future-proofing it. With FileMaker Cloud 2025, the company is making sure that as FileMaker continues to integrate AI, APIs, and data services, your infrastructure won’t hold you back.

We recommend using this update window to:

  • Confirm client version compliance

     

  • Evaluate whether your hosting environment still fits your operational goals

     

  • Explore modernization opportunities, like hybrid AI or analytics layers built on FileMaker 2025

     

Need help preparing or auditing your deployment?
We’re helping clients plan clean upgrade paths now before the November rollout.

Contact us to make sure your systems are ready.

 
 
 
 

 

Can Your FileMaker Do This? Mini JSON Use Cases

1) A readable audit trail without extra fields

What: Keep a simple change log per record as JSON (who changed what, and when).
Why: Easier reviews and handoffs; no more scattering “_old/_new” fields across the table.
How: On commit, append one JSON entry to an “AuditJSON” field.

// Append one change entry (example for a Status change)

Set Variable [ $entry ;

  JSONSetElement ( “{}” ;

    [ “timestamp” ; Get ( CurrentTimestamp ) ; JSONString ] ;

    [ “user” ; Get ( AccountName ) ; JSONString ] ;

    [ “field” ; “Status” ; JSONString ] ;

    [ “from” ; $$old_Status ; JSONString ] ;

    [ “to” ; Status ; JSONString ]

  )

]

Set Field [ Table::AuditJSON ; List ( Table::AuditJSON ; $entry ) ]  // one JSON per line

 

 


 

2) A safe outbound “API outbox” (with retry)

What: Queue JSON payloads for external systems (ERP/CRM/shipping) with a status flag: Queued, Sent, Failed.
Why: Network hiccups happen; a queue prevents lost or duplicate updates.
How: Write payloads to an Outbox table; a server script (or Claris Connect) posts and updates status.

Set Variable [ $payload ;

  JSONSetElement ( “{}” ;

    [ “orderId” ; Orders::OrderID ; JSONString ] ;

    [ “total” ; Orders::Total ; JSONNumber ] ;

    [ “items” ; Orders::ItemsJSON ; JSONObject ]  // your own items JSON

  )

]

New Record/Request

Set Field [ Outbox::Endpoint ; “https://api.example.com/orders” ]

Set Field [ Outbox::Payload  ; $payload ]

Set Field [ Outbox::Status   ; “Queued” ]

 

 


 

3) Validate incoming JSON before it touches your fields

What: Confirm required keys and data types with JSON functions.
Why: Protects your schema; stops odd values at the door.
How: Use JSONListKeys and JSONGetElementType to check presence and types.

Set Variable [ $body ; $$IncomingJSON ]

If [ PatternCount ( ¶ & JSONListKeys ( $body ; “” ) & ¶ ; ¶ & “email” & ¶ ) = 0

  or JSONGetElementType ( $body ; “email” ) ≠ “string” ]

  Show Custom Dialog [ “Incoming JSON missing a valid email.” ]

  Exit Script

End If

 

 


 

4) Drive picklists and rules from JSON (no schema change)

What: Store business rules (allowed statuses, thresholds) in JSON so small changes don’t require schema edits.
Why: Faster updates; fewer trips through the relationship graph.
How: Keep rules in a Settings table, load to a global on first use.

// Settings::RulesJSON example: { “StatusOptions”: [“New”,”Packed”,”Shipped”] }

Set Variable [ $$rules    ; Settings::RulesJSON ]

Set Variable [ $$statuses ; JSONListValues ( $$rules ; “StatusOptions” ) ]

// Use $$statuses in a value list or custom UI

 

 


 

5) Hand a “view model” to a Web Viewer

What: Build a small JSON view model for a record and let HTML/JS render cards or charts.
Why: Clear separation: FileMaker gathers data; the viewer handles visuals.
How: Assemble JSON and pass it as a parameter or via a global field.

Set Variable [ $$vm ;

  JSONSetElement ( “{}” ;

    [ “customer” ; Customers::Name ; JSONString ] ;

    [ “balance”  ; Customers::AR_Balance ; JSONNumber ] ;

    [ “orders”   ; Customers::RecentOrdersJSON ; JSONObject ]  // prebuilt JSON

  )

]

// Web Viewer page reads $$vm and renders

 

 


 

6) A tidy JSON summary for BI (Power BI/Tableau)

What: Normalize your data once into JSON and expose it via an OData layout for BI tools.
Why: One shaping step in FileMaker keeps dashboards simple downstream.
How: Write a “staging” JSON per row in a BI_Staging table that your OData layout publishes.

Set Variable [ $row ;

  JSONSetElement ( “{}” ;

    [ “OrderID”   ; Orders::OrderID ; JSONString ] ;

    [ “ItemCount” ; ValueCount ( JSONListValues ( Orders::ItemsJSON ; “” ) ) ; JSONNumber ] ;

    [ “OrderDate” ; Orders::OrderDate ; JSONString ]

  )

]

Set Field [ BI_Staging::RowJSON ; $row ]   // include this field on the OData layout

 

 


 

How to try this (quick plan)

  1. Pick one use case above (audit trail or validation is a good start).

  2. Build a small script in a copy of your file; test with a few records.

  3. If it helps, add a Claris Studio form or a Claris Connect step to round out the flow.

  4. Share a short demo with your team and note the time saved or errors avoided.

Note on sample code
The snippets below are examples. You’ll need to adapt names and context to your solution before running them. In particular, update:

  • Layout names (e.g., Orders_list, Customers_edapi)

  • Table occurrences and field names (paths used in JSON and scripts)

  • Portal/table occurrence names for portalData and related writes

  • Privileges and triggers (who can run it, when it should fire)

  • Error handling (Get( LastError ), logging, retries)

  • Publishing context for BI (place fields on your OData layout)

Web Viewer handoff method (global field, script parameter, etc.)

 

 

How Claris Expanded “Execute FileMaker Data API” in 2024–2025

If you have not looked at the Execute FileMaker Data API script step (often shortened to eDAPI) in a while, it’s worth a revisit. Recent versions let you read and write records, including create, update, delete, and duplicate, by sending a small JSON request. You can do this without moving users around layouts and without calling the server’s web Data API. The step runs inside your file (hosted or local) and returns clear JSON that works well with web viewers, JavaScript, and external services. help.claris.com

 


 

What changed

  • Full CRUD + metadata. The action key supports read, metaData, create, update, delete, and duplicate. help.claris.com

  • Context-independent. Point to a layout in your JSON and eDAPI uses that context. No Go to Layout/Commit sequencing. help.claris.com

  • Local or hosted. It runs in your file and does not make a web service call to the Data API. help.claris.com

  • JSON in / JSON out. Pair with Get ( LastError ), Get ( LastErrorDetail ), and Get ( LastErrorLocation ) for diagnostics. help.claris.com

  • Concurrency-aware. Use modId on updates for optimistic concurrency. help.claris.com

  • Additional control. version supports v1, v2, vLatest; options.entrymode and options.prohibitmode let you follow or override validation/auto-enter rules when you need to. help.claris.com

 


 

Why teams find it useful

  • Shorter scripts. Many tasks become “build JSON → run one step.”

  • Fewer context issues. Read and write without leaving the user’s current layout.

  • Better interoperability. The JSON request/response makes it easy to work with web viewers, JavaScript, and Claris Connect.

  • Safer updates. modId helps avoid accidental overwrites when multiple users are editing.

 


 

Quick reference (keys you’ll use often)

  • action: read | metaData | create | update | delete | duplicate

  • layouts: target layout name (defines context)

  • tables: table occurrence name (for metaData)

  • query: array of find objects (standard FileMaker find operators)

  • recordId: internal ID for update/delete/duplicate

  • sort, offset, limit

  • fieldData: object of field:value pairs

  • portalData: object keyed by portal/TO name → array of related rows

  • modId: optimistic concurrency on update

  • layout.response: different layout for the response context (e.g., summary fields)

  • version: v1 | v2 | vLatest

  • options.entrymode: user | script

  • options.prohibitmode: user | script help.claris.com

 


 

Patterns and examples

Each example builds Request with JSONSetElement. Store the result in a variable and pretty-print with JSONFormatElements ( $$result ) while developing. Replace layout and field names with your own.

1) Read with a find and sort

// Returns last 100 paid orders from 2025, newest first

Execute FileMaker Data API [ Select ; Target: $$result ;

  JSONSetElement ( “{}” ;

    [ “layouts” ; “Orders_list” ; JSONString ] ;

    [ “query” ; “[ { \”Status\”:\”Paid\” , \”OrderDate\”:\”>=1/1/2025\” } ]” ; JSONArray ] ;

    [ “sort” ; “[ { \”fieldName\”:\”OrderDate\” , \”sortOrder\”:\”descend\” } ]” ; JSONArray ] ;

    [ “limit” ; 100 ; JSONNumber ]

  )

]

Set Variable [ $$result ; JSONFormatElements ( $$result ) ]

 

2) Create a record (temporarily allow a protected field)

Execute FileMaker Data API [ Select ; Target: $$result ;

  JSONSetElement ( “{}” ;

    [ “action” ; “create” ; JSONString ] ;

    [ “layouts” ; “Customers_edapi” ; JSONString ] ;

    [ “fieldData” ;

      “{ \”CustomerID\”:\”CUST-10027\” , \”Name\”:\”Acme Corp\” , \”Status\”:\”Active\” }” ;

      JSONObject

    ] ;

    [ “options” ; “{ \”prohibitmode\”:\”script\” , \”entrymode\”:\”user\” }” ; JSONObject ]

  )

]

 

3) Update with optimistic concurrency (modId)

Execute FileMaker Data API [ Select ; Target: $$result ;

  JSONSetElement ( “{}” ;

    [ “action” ; “update” ; JSONString ] ;

    [ “layouts” ; “Customers_edapi” ; JSONString ] ;

    [ “recordId” ; $recordId ; JSONString ] ;

    [ “modId” ; $expectedModId ; JSONString ] ;

    [ “fieldData” ; “{ \”Status\”:\”Inactive\” }” ; JSONObject ]

  )

]

If [ Get ( LastError ) = 0 ]

  # success

Else If [ Get ( LastError ) = 301 ]

  # record modified by another user; refetch and retry

End If

 

4) Create parent and related rows with portalData

Requires a layout with a portal where Allow creation of records is enabled for that table occurrence.

Execute FileMaker Data API [ Select ; Target: $$result ;

  JSONSetElement ( “{}” ;

    [ “action” ; “create” ; JSONString ] ;

    [ “layouts” ; “Orders_withLines_edapi” ; JSONString ] ;

    [ “fieldData” ; “{ \”CustomerID\”:\”CUST-10027\” , \”OrderDate\”:\”2/10/2025\” }” ; JSONObject ] ;

    [ “portalData” ;

      “{ \”Order_OrderLines\” : [

           { \”OrderLines::SKU\”:\”SKU-001\” , \”OrderLines::Qty\”:2 },

           { \”OrderLines::SKU\”:\”SKU-002\” , \”OrderLines::Qty\”:1 }

        ] }” ;

      JSONObject

    ]

  )

]

 

5) Duplicate and delete

// Duplicate

Execute FileMaker Data API [ Select ; Target: $$dup ;

  JSONSetElement ( “{}” ;

    [ “action” ; “duplicate” ; JSONString ] ;

    [ “layouts” ; “Orders_edapi” ; JSONString ] ;

    [ “recordId” ; $recordId ; JSONString ]

  )

]

 

// Delete

Execute FileMaker Data API [ Select ; Target: $$del ;

  JSONSetElement ( “{}” ;

    [ “action” ; “delete” ; JSONString ] ;

    [ “layouts” ; “Orders_edapi” ; JSONString ] ;

    [ “recordId” ; $recordId ; JSONString ]

  )

]

 

6) Discover structure with metaData

// List all table occurrences

Execute FileMaker Data API [ Select ; Target: $$tables ;

  JSONSetElement ( “{}” ;

    [ “action” ; “metaData” ; JSONString ] ;

    [ “tables” ; “” ; JSONString ]

  )

]

Set Variable [ $$tables ; JSONFormatElements ( $$tables ) ]

 

// List fields for a specific TO

Execute FileMaker Data API [ Select ; Target: $$fields ;

  JSONSetElement ( “{}” ;

    [ “action” ; “metaData” ; JSONString ] ;

    [ “tables” ; “Orders” ; JSONString ]

  )

]

Set Variable [ $$fields ; JSONFormatElements ( $$fields ) ]

 
 
 

 

Data Security Enhancements in FileMaker Cloud and Server

FileMaker 2025 brings a new level of security to both FileMaker Cloud and FileMaker Server, delivering critical enhancements in encryption, SSL handling, and API authentication. These updates are designed to help organizations strengthen data protection and meet stringent compliance requirements, including HIPAA, GDPR, and enterprise-grade security standards.

Whether deployed on-premises or in the cloud, FileMaker 2025 ensures that your sensitive business data stays safe, encrypted, and under your control.

Stronger Encryption and Data Protection

FileMaker 2025 enhances encryption protocols for both data at rest and data in transit. Improved key management and modern cipher support ensure that databases, backups, and network communications maintain top-tier protection.

For organizations managing confidential information—such as healthcare providers, financial institutions, and manufacturers—these encryption upgrades reinforce compliance with global privacy laws and data protection frameworks.

Simplified SSL Management with Let’s Encrypt

Setting up SSL certificates has historically been a challenge for administrators. FileMaker Server 2025 streamlines this process with Let’s Encrypt integration, allowing certificates to be issued and renewed automatically.

This eliminates the need for manual SSL management while ensuring that all connections remain encrypted and compliant with modern browser and network security requirements.

Benefits include:

  • Automatic SSL issuance and renewal

  • Reduced configuration errors

  • Continuous, secure connections across all deployments

Token-Based API Access for Secure Integrations

Both FileMaker Cloud and FileMaker Server now support token-based authentication for API access, replacing static credentials with dynamic, revocable tokens.

This approach enhances integration security by ensuring that credentials:

  • Expire automatically after a defined period

  • Can be scoped to specific permissions or resources

  • Are easily revoked if compromised

Token-based authentication reduces the attack surface and makes it easier to comply with HIPAA and GDPR requirements for data access auditing and control.

Compliance Made Easier

With these security upgrades, FileMaker 2025 provides organizations with a compliance-ready foundation. Key benefits include:

  • Encrypted data across all layers—storage, transfer, and access

  • Automated SSL configuration to prevent mismanagement

  • Secure, auditable API integrations using short-lived tokens

For industries handling sensitive personal or operational data, these improvements simplify compliance management without sacrificing performance or flexibility.

FileMaker 2025’s security enhancements in Cloud and Server reflect Claris’s continued commitment to protecting business-critical information. With improved encryption, automatic SSL handling, and token-based API access, organizations can maintain compliance and operate confidently in highly regulated environments.

Want to strengthen your FileMaker security posture or validate your setup for HIPAA or GDPR compliance? Reach out to Kyo Logic here.

 
 

 

Advanced Container Field Management and Image Processing

 FileMaker 2025 delivers powerful new tools for handling media-rich data with enhanced container field management and image processing capabilities. With built-in functions for image optimization, automated thumbnail generation, and metadata extraction, developers can now create apps that handle photos, documents, and media files more efficiently than ever.

For industries like manufacturing, field services, healthcare, or marketing—where images and documents play a critical role—these improvements make FileMaker faster, smarter, and easier to manage.

Automated Image Optimization and Thumbnails

Large image files can slow down databases and layouts, especially when users work remotely or on mobile devices. FileMaker 2025 introduces functions that automatically optimize images for size and performance, generating thumbnails without manual resizing or third-party tools.

Benefits include:

  • Faster record loading in layouts and portals

  • Reduced file size for container data

  • Consistent thumbnail previews across devices

This automation streamlines workflows for image-heavy apps, ensuring visual data is always accessible without compromising speed.

Built-In Metadata Extraction

FileMaker now allows developers to extract detailed metadata directly from container-stored images and files. This includes EXIF information such as:

  • Date, time, and location of photos

  • Camera settings (aperture, ISO, lens type)

  • Keywords or embedded tags

Developers can use this metadata to automatically categorize, filter, or search images—ideal for asset management, inspection records, or photographic documentation in the field.

Smarter Workflows for Media-Driven Apps

By combining optimization and metadata extraction, developers can build FileMaker apps that automatically handle complex image workflows:

  • Field Technicians: Capture site photos that automatically compress, tag, and upload with GPS data.

  • Manufacturers: Record product or defect images tied to work orders for quality assurance.

  • Marketing Teams: Manage brand assets with searchable tags and visual previews.

Every image becomes part of an intelligent, organized system rather than a static attachment.

Why It Matters

FileMaker’s new container field and image processing tools help businesses:

  • Reduce storage overhead while maintaining quality

  • Improve performance in image-heavy layouts

  • Automatically tag and classify visual data

  • Eliminate reliance on external file processors or plugins

With these updates, FileMaker 2025 evolves into a truly full-featured media management platform that integrates seamlessly with your existing workflows.

FileMaker 2025 empowers developers to manage and process images directly inside their apps—optimizing performance and automating organization. From generating thumbnails to extracting metadata, these enhancements make media-driven solutions faster, cleaner, and easier to maintain.

Want to see how Claris FileMaker can simplify image and document management for your organization?  Reach out to Kyo Logic here.