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.)