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.

 

 

 

 

 

 

What is OData and How FileMaker Makes Data More Accessible

 If you’re managing data in FileMaker and exploring better ways to integrate with analytics or enterprise platforms, you’ve probably heard the term OData. But what is it, and why should FileMaker users care?

What is OData?

OData (Open Data Protocol) is a standardized way for systems to share data over the web, similar to how web pages are served to browsers. Think of it as a universal language that lets applications query, read, and write data through familiar web protocols like HTTP.

Created by Microsoft, OData is widely used across industries to connect databases to business intelligence tools, ERPs, and reporting dashboards.

What is the FileMaker OData API?

FileMaker now includes its own OData API, available on FileMaker Server 19.1 and later. This feature exposes FileMaker data using the OData v4 standard, meaning that you can connect your FileMaker databases directly to tools like:

  • Microsoft Power BI

  • Tableau

  • Excel (Power Query)

…and many other platforms that support OData. In addition it adds powerful capabilities to work with FileMaker server data including the ability to modify and create data structures programatically.  This feature is a major breakthrough for FileMaker Developers and promises powerful future capabilities for managing advanced FileMaker applications.

Why It Matters

If you’ve ever wanted to:

  • Build live dashboards in Power BI using FileMaker data

  • Query data from FileMaker without custom APIs or exports

  • Integrate FileMaker into larger enterprise data strategies

  • Open FileMaker applications for more advanced capabilities

…the OData API is a game-changer.

It means:

  • Less custom development to connect FileMaker to other systems

  • Standardized querying across platforms

  • Real-time data access for reporting and analytics

  • Improved FileMaker application support

What’s the Difference Between OData and FileMaker OData API?

  • OData: A universal protocol for data querying and manipulation.

  • FileMaker OData API: FileMaker’s specific implementation that lets external tools communicate with FileMaker databases using OData standards.

Is It Time to Upgrade?

If you’re on an older FileMaker Server version or still exporting data to spreadsheets, it’s time to explore how the FileMaker OData API can streamline your workflows.

Contact us today to discuss how we can help you unlock real-time data access and smarter analytics with FileMaker and OData.