Execute FileMaker Data API in Claris FileMaker 19

Execute FileMaker Data API in Claris FileMaker 19

The Changing World of Travel

My much-anticipated first trip to Mexico was in March of 1998. I was looking forward to being immersed in Spanish to practice my new language skills, but when my parents, two siblings and I got to the airline ticket counter at the airport an hour away, we were not sure if we would be allowed to fly. My mom had forgotten her driver’s license, so all we had was one driver’s license and two driver’s permits.  We discretely put them on the counter all together, and no questions were asked! We left in faith not knowing if it would be a problem to re-enter the country. With the modern-day security restrictions, especially for international travel, I look back in disbelief that we managed to make the round trip without any issues. The world of travel has sure changed a lot since then!

The Changing World of Data Retrieval

Claris FileMaker 19 was just released and provides us with a new script step called “Execute FileMaker Data API”. While travel restrictions have gotten tighter, I’m thankful to see that data retrieval restrictions are lessened with this script step as compared to the FileMaker Data API, introduced in version 16. Using the FileMaker Data API could be likened to modern-day international travel that strictly requires a passport for identification, the authorization key, and it has a price tag in that you use some of your FileMaker Data API Annual Limit. The new script step could be likened to “virtual travel” in that it operates locally on the database of the window the script is called from and does not require the authorization key or consume any of the FileMaker Data API Annual Limit.

Data Retrieval Tools Compared

Exploring new tools to understand how and when to use them is important for developing your skill set. It may be tempting to reach for the new and shiny tool right after exploring how to use it, however, it takes time and experience working with a tool to recognize the less obvious overall implications of using it.

What are some of the tools you should compare with the new script step “Execute FileMaker Data API” to determine if it is the right one for your use case? From what I understand, the intention of the script step is to enable users to create an array of records as per specific criteria in a JSON format, therefore, the criteria to identify the tools for comparison are:

  • The ability to gather data according to specified criteria, and
  • The format of the result

FileMaker was designed and built to perform finds and then display the found set within a list or a form view. This native, basic FileMaker Find functionality is the first tool you should compare. The second tool to compare is the “ExecuteSQL” function.

You may be hoping that I will provide specific use cases for each tool, but that is difficult to do since the answer would be “it depends”… you as the developer need to evaluate what the needs are as well as the potential benefits or pitfalls of using each tool. At Skeleton Key, we prize simplicity of code, which I appreciate more and more over time. I would encourage you to learn how to use the new tools and select the one that will accomplish the goal with the simplest code. Whoever comes in to review or revise your code at a later date, which could be yourself, will appreciate the clarity!

Perhaps you are reading this blog to learn how to use the new script step and see example JSON. Jeremy Brown of Geist Interactive has an excellent blog with this information that is linked in the references below.

FileMaker Find vs. the “Execute FileMaker Data API” Script Step

As you most likely already know, the native FileMaker Find is comprised of entering find mode, navigating to a layout to set the context for the find, specifying the search criteria, and performing the find (including constraining or extending the existing found set). The results are displayed in either the list or form view. A standard find is very powerful and is still the most straightforward way to display a found set of information and to summarize it using sub-summary parts. The FileMaker Find could be likened to a hammer or a screwdriver in the carpenter’s toolbox, it is a fundamental tool that fits many use cases in such a way that a future developer can easily understand how something was built and revise it as needed.

Similar to a FileMaker Find, the new script step “Execute FileMaker Data API” requires the context of a layout in order to perform a query, however, the script does not require you to explicitly navigate to that layout. The query is also able to retrieve data from related fields based on what fields and portals are present on the target layout. “Execute FileMaker Data API” returns the results of the query in a JSON format versus as a found set of records like a FileMaker Find.

“ExecuteSQL” Function vs. the “Execute FileMaker Data API” Script Step

Albeit in infancy form, the “Execute FileMaker Data API” script step seems to most closely resemble the “ExecuteSQL” function that was added in FileMaker version 12. ExecuteSQL is a powerful tool to enable the gathering of data according to specified criteria within the query statement. This function was added to potentially reduce the complexity of the relationship graph since you can execute queries on table occurrences independent of relationships. Over time, some of the pitfalls of “ExecuteSQL” have become obvious. The performance of SQL queries is substantially less when employing certain aggregate functions on large data sets as compared to standard FileMaker Finds. In addition, there is a significant performance impact when a user does a local query (not Perform Script on Server) and that same user has as an open record in the target table. Due to this behavior and the need to have all records committed when a SQL call is made, the use of ExecuteSQL should be limited to scripts and avoided in field definitions or other locations such as conditional formatting or object hiding. (See the linked blog by Wim Decorte and FMForums thread below.) The new “Execute FileMaker Data API” script step offers similar promise to retrieve data without making the relationship graph more complex, but with the advantage of being in a JSON format.  It is too early to say what the pitfalls may be, and we haven’t had the time to do significant testing yet.

In the table below, the standard “ExecuteSQL” SELECT statement clauses are mapped to the “Execute FileMaker Data API” script step keys:

ExecuteSQL SELECT statement clauses Execute FileMaker Data API script step keys
SELECT [DISTINCT] {* | column_expression [[AS] column_alias],…} read (using the fields from the layout specified by the layouts or layout.response key)
[ WHERE expr1 rel_operator expr2 ] query
[ GROUP BY {column_expression, …} ] (not available)
[ HAVING expr1 rel_operator expr2 ] (not available)
[ UNION [ALL] (SELECT…) ] the query key can be an array with more than one element to mimic the AND / OR find behavior
[ ORDER BY {sort_expression [DESC | ASC]}, … ] sort (both permit specifying ascending or descending order as well as allowing multiple fields to sort by)
[ OFFSET n {ROWS | ROW} ] offset
[ FETCH FIRST [ n [ PERCENT ] ] { ROWS | ROW } {ONLY | WITH TIES } ] limit

It Takes a Village

This post would not have been possible without assorted resources available from the Claris Community, such as:

About Skeleton Key

Skeleton Key develops apps on the FileMaker platform making them easy-to-integrate, easy-to-use, and quick to build and deploy. Our team of experts takes a comprehensive consulting approach to focus on learning how your organization operates. With deeper insights into the way your team works, we’re able to create an ideal solution built around your operations while forming a partnership founded on trust and transparency. We hope you found this content useful and we would love to hear from you if we can be of any further assistance.

NFC (Near Field Communication) in Claris FileMaker Go 19

NFC (Near Field Communication) in Claris FileMaker Go 19

NFC, Near Field Communication, is famously used for contactless payments, such as Apple Pay. NFC smart tags are adaptable and inexpensive passive tags that are included in a variety of things like keycards, wristbands, and adhesive stickers. We see them on price tags in retail stores to get digital coupons, museums carry them on exhibit posts to provide more information, and specific mountain trails have them posted to give hiking insight/maps. NFC tags are read by a device when held near the tag. The data on a tag typically contains just an identifier, but some tags have capacities up to a few thousand bytes of data.

FileMaker & NFC

Previous versions of FileMaker Go have included features for receiving data from the device’s sensors, such as camera, microphone, accelerometers, and GPS. FileMaker Go 19 adds the ability to read NFC tags on iPhones. For example, FileMaker Go 19 can utilize NFC to track inventory or counting attendees entering an event.

The Script Workspace in FileMaker Pro 19 includes the new script step, Configure NFC Reading. This script step is configured with an action, either Read or Cancel. The Read action requires a script to be specified. The script runs whenever a tag is read, an error occurs, the user cancels the operation, or another Configure NFC Reading script step cancels the operation. Optional parameters include a Parameter that passes to the script, a Timeout value (in seconds), and a Continuous Reading option allows reads of multiple tags.

Configure NFC Reading

Before use, users should note:

  • Only one NFC operation is allowed at a time unless Continous Reading is selected, where multiple tags can be read consecutively.
  • NFC reading does not work on devices that do not have the required hardware: iPads, any iPhones older than the iPhone 7.
  • There are many NFC standards, so not all NFC and RFID tags can be read by an iPhone due to differences in communication standards.

Reading NFC tags in FileMaker Go is conceptually similar to scanning barcodes, but is faster when scanning multiple tags. It is not necessary for NFC tags to be visible to the user, making them a better choice than barcodes for asset tracking and identification. For more information about the Configure NFC Reading script step and the format of the parameter that is passed to one’s script, see FileMaker Pro Help.

About Skeleton Key

Skeleton Key develops apps on the FileMaker platform making them easy-to-integrate, easy-to-use, and quick to build and deploy. Our team of experts takes a comprehensive consulting approach to focus on learning how your organization operates. With deeper insights into the way your team works, we’re able to create an ideal solution built around your operations while forming a partnership founded on trust and transparency. We hope you found this content useful and we would love to hear from you if we can be of any further assistance.

It's time to plan your strategy for a Claris FileMaker 19 Upgrade

Claris FileMaker 19 Upgrade Strategies

With the release of the FileMaker 19 platform, it may be time to reevaluate your organization’s upgrade strategy.

Some organizations always want the latest and greatest features as soon as they become available. Others prefer to wait as long as possible and only upgrade when forced to do so due to a compatibility issue with their computers, operating systems, or other applications. Most fall somewhere between these extremes. In any case, we recommend that you have a plan so that you can take advantage of new features that are important to you while also avoiding unplanned costs and downtime.

Most of the organizations we work with are on annual license plans, so when a new version is released, there’s rarely an issue with needing to buy an upgrade. However, it can still require a significant amount of time and effort to install upgrades on servers, workstations, and devices. In some cases, hardware will need to be upgraded and other applications and integrations may need to be upgraded in parallel.

In the past, some FileMaker version upgrades have required file format changes and sometimes significant development work to address compatibility issues. While we still recommend testing a new version before putting it into production, most recent upgrades have required very few development changes and the experience is usually uneventful for users.

Things to know

FileMaker Server 19 can be used by both FileMaker 18 and 19 clients. Older clients are not supported by FileMaker Server 19. FileMaker Pro 19 and FileMaker Go 19 can connect to files hosted with FileMaker Server 18 and 19.

All FileMaker 16 and 17 products are “end of life” (EOL) as of September 18, 2020. End of life means that support is no longer available from Claris and updates will not be available.

The following operating systems are NOT supported with the FileMaker 19 platform:

  • Windows 7
  • Windows Server 2012R2
  • macOS High Sierra (10.13)
  • iOS 12

FileMaker Cloud for AWS 1.18 is the last version of this hosting product. Many of our clients are using FileMaker Cloud for AWS to host their apps because it is one of the lowest-cost options for cloud hosting and it is incredibly reliable with very little maintenance. All versions of FileMaker Cloud for AWS will no longer be supported as of January 1, 2022. Claris has announced that the future roadmap includes a Linux version of FileMaker Server and we hope to transition many of our hosting clients to this new version when it becomes available.


If you’re currently hosting with version 18, plan for an upgrade to your server or cloud host to version 19 within the next twelve months.

Start by upgrading a few of your power users to FileMaker Pro 19 and FileMaker Go 19 within the next month or two. As they can verify that all is working well, plan to roll out the new versions to all remaining users who have compatible systems. For anyone who requires a hardware or operating system upgrade for their computer or device, determine the best time to purchase and deploy those upgrades. Once all the clients have been upgraded, implement the host upgrade.

If you’re currently hosting with version 16 or 17, you won’t be able to use FileMaker Pro 19 or FileMaker Go 19 until you upgrade your host.

You should start by doing some compatibility testing with a test server or at least a local copy of your solution. Once you’re satisfied that your solution is working well, you’ll need to coordinate the host and client upgrades. If you have a small number of users, you could upgrade the host and clients to 19 all at one time. If that isn’t logistically practical, first upgrade each of your clients to version 18 (so that they can still connect to your current host) and then upgrade the host to version 19. After the host has been upgraded, you can begin staging the deployment of FileMaker Pro 19 and FileMaker Go 19.

If you’re currently hosting with version 15 or earlier, you’ll need a plan to simultaneously upgrade your host and clients to a current version.

There are scenarios where you may want to consider an intermediate upgrade to FileMaker 17 or 18. For example, if you still have computers with older operating systems such as Windows 7 or macOS High Sierra or iPads that can’t be upgraded to iOS 13.4. If you fall into this category, you’ll want to plan carefully to avoid getting into a jam as you start doing upgrades. For instance, if you buy a new Mac, it is going to come with macOS Catalina, which requires FileMaker Pro Advanced 18 or FileMaker Pro 19 and won’t be able to connect to older hosts.

As you can see from these scenarios, the longer you wait between upgrades, the more difficult it becomes to avoid complicated deployments and significant downtime.

If you need help planning or implementing your FileMaker upgrade strategy, click the Free Consultation button at the top of this page and we’ll be glad to schedule a call to discuss how we can help.

About Skeleton Key

Skeleton Key develops apps on the FileMaker platform making them easy-to-integrate, easy-to-use, and quick to build and deploy. Our team of experts takes a comprehensive consulting approach to focus on learning how your organization operates. With deeper insights into the way your team works, we’re able to create an ideal solution built around your operations while forming a partnership founded on trust and transparency. We hope you found this content useful and we would love to hear from you if we can be of any further assistance.


Perform JavaScript in Web Viewer in Claris FileMaker 19


One of the most exciting new features that Claris’ FileMaker Pro 19 has introduced is the “Perform JavaScript in Web Viewer” script step. It has expanded the ability for FileMaker to transcend from its environment to other programming language environments.

In the past, there were a few workarounds to integrate FileMaker with JavaScript. For example, using a plugin or running a Web Viewer with embedded JavaScript code that calls on a FMP URL to return the results to the current solution. Now with this new script step, we are able to call upon a JavaScript function embedded in a Web Viewer from a FileMaker script.

Not only are you able to call the JavaScript function via FileMaker scripts, you are also able to call FileMaker scripts in the JavaScript function using the new “FileMaker.PerformScript” function. This will allow you to call upon FileMaker scripts to possibly return calculation results or actions that you would like to perform.


Setup is simple. You will need to perform the following:

  1. Move a Web Viewer onto the layout.
  2. Assign a name to the Web Viewer.
  3. Embed the JavaScript functions as a calculation result.

That’s it! You don’t have to worry about configuring security options or enabling permissions to allow the “Perform JavaScript in Web Viewer” script step to run.

If you would like to use the “FileMaker.PerformScript” function to call FileMaker scripts in the JavaScript code, you will need to enable the “Allow JavaScript to perform FileMaker scripts” permission in the Web Viewer Setup dialog.


Other than that, you’re all set!


Let’s take a look at how we can use this script step.


The screenshot above displays a JavaScript function called “filemakerTest” that performs the following:

  • Accepts three parameters.
  • Concatenates the three parameters to one text string.
  • Modifies the H1 HTML text with the concatenated string.

Now let’s look at the FileMaker script that will be calling this JavaScript function.


It’s very simple. You only need to reference the Web Viewer you’ll be using by its object name, set the name of the JavaScript function you plan to call and pass in the appropriate parameters that you wish to use in the JavaScript function.

Let’s see this script in action.


You can see that after the FileMaker script ran, calling the JavaScript function, it modified the HTML text in the Web Viewer with the concatenated parameter string. We confirmed that the JavaScript function actually ran!

Now we are going to add in the new “FileMaker.PerformScript” function to our JavaScript function. It will call a script in FileMaker that passes the parameter text string as a FileMaker script parameter and it will display a dialog window with the text string.


You can see that once the script is executed, the script that was referenced in the Perform Script function is then called and the parameter is passed to the script as a script parameter.

Be careful when using the “FileMaker.PerformScript” function. It runs asynchronously, meaning that the FileMaker script will not wait for the JavaScript function to finish. JavaScript will continue to perform after calling a FileMaker Script and will not wait until the FileMaker script has been completed. You will need to take precautions with scripts entering a different context. The PerformScript function will run the FileMaker script on the context the window is currently on at the time.



One of the largest benefits that this script step will provide is increased performance for calculations via FileMaker scripts.


For example, the FileMaker script that you see above appends 100,000 numbers to a FileMaker List. These numbers are generated using the Random and Ceiling FileMaker functions. The numbers are then counted using the ValueCount function and displayed using a custom dialog along with how long it took to complete the operation.


When running the script, you can see it took me around 11 seconds for it to be completed.

Now let’s try to do the same thing using JavaScript!


As you see above, the JavaScript function is looping 100,000 times and appending a number that it generates using the Random() and Ceiling() JavaScript functions. From there, it returns it back to FileMaker using the PerformScript function. It then counts the list and displays the count plus the completion time in a custom dialog as it did previously.

Let’s run it.


It was instantaneous! It only took less than a second to complete.

Even when increasing the iteration to 1,000,000, JavaScript was lightning fast where FileMaker had to wait a few minutes to finish the script. It is exciting to see that calculations that take a minute or two to complete via FileMaker scripting, may only take a few seconds with JavaScript.

Expands FileMaker Capabilities

JavaScript introduces function calls that FileMaker Pro doesn’t provide.

For example, FileMaker doesn’t have a calculation function to reverse a string of text. There are ways to get around that by creating a custom function or using a plugin. With JavaScript, it already provides some function calls that make this task very simple.


JavaScript also provides function calls regarding regular expressions. Regular expressions allow us to find or replace matching character combinations in text. These functions will expand similar situations as we apply the PatternCount and Substitute functions today. It also allows us to integrate with other JavaScript libraries and API technologies.

Drag and Drop

Since all the JavaScript code is embedded in the Web Viewer, it makes it very simple to use the same JavaScript functions in other FileMaker solutions. Just copy and paste the Web Viewer to the target solution and it will have access to those JavaScript functions. This allows for optimal reusability similar to the behavior with FileMaker scripts. The downside with FileMaker scripts is that they may be context-dependent, requiring tables and layouts to be brought over to execute the scripts properly. This should never be the case with JavaScript.


Error Trapping

If you are familiar with FileMaker scripting, you probably know that error trapping is a very important tool used to troubleshoot scripting errors. By using FileMaker’s script debugger, we can step through a script to find where an error might have occurred. Once the scripting error is found, we can take the necessary steps to trap the error and avert the user from running the remaining script steps that are dependent on a non-error situation.

Unfortunately, the new “Perform JavaScript in Web Viewer” script step doesn’t provide us error trapping methods the way FileMaker provides. If the JavaScript code that was embedded in the Web Viewer had an error, FileMaker would throw a silent error when the “Perform JavaScript in Web Viewer” script step is run.


As you can see above, once the script step was run, we received a FileMaker error code of 5. This means that there was an invalid call to the JavaScript function. This alerts us that the JavaScript code is written incorrectly or that there might be a mistake in the Web Viewer calculation text. FileMaker doesn’t provide us a method of understanding what part of the Web Viewer calculation is incorrect. This makes it difficult to debug what the error could be.

Zero Visibility

When using the FileMaker script debugger, we are able to view the context of where the script step is running, variables that are set in the script, calculations that are performed, etc. We have total visibility on the executed workflow.

When executing the JavaScript function, we do not have this same visibility. We only know if the JavaScript function had been executed (ie. if there was no error thrown by the “Perform JavaScript in Web Viewer” script step) and if any additional FileMaker scripts were called using the “FileMaker.PerformScript” function.

We aren’t able to see the JavaScript call stack or the variable values that are assigned in the code. This makes it very troublesome when determining the source of where in the code an error occurred. Consider using a JavaScript debugger to understand the underlying problems with the JavaScript code.


It’s exciting to see what the “Perform JavaScript in Web Viewer” script step will allow us to do. Not only is the script step flexible in its ability to be used but requires very little setup. Once the JavaScript code is written and is tested to perform as intended, just drop it into a Web Viewer and run the script step. The possibilities of integration with other technologies are endless with this new feature. Give this new script step a try and let us know what you think about it below!

About Skeleton Key

Skeleton Key develops apps on the FileMaker platform making them easy-to-integrate, easy-to-use, and quick to build and deploy. Our team of experts takes a comprehensive consulting approach to focus on learning how your organization operates. With deeper insights into the way your team works, we’re able to create an ideal solution built around your operations while forming a partnership founded on trust and transparency. We hope you found this content useful and we would love to hear from you if we can be of any further assistance.

It may still work, but there's a powerful update available.

“Not Your Parent’s FileMaker”: How We React When We See Older Versions of the Platform

When organizations come to Skeleton Key to build an application in FileMaker, it’s not always the case that they need something built “from scratch.” In fact, a significant portion of our potential clients already have a FileMaker solution in place—they just need it to be updated and modernized.

That FileMaker is widely used is not surprising. The platform itself has been around for just over 30 years. By Claris’ own numbers, more than 24 million copies of FileMaker have been delivered, with over one million users under active subscription. So chances are good that almost anyone has (or will) run into a FileMaker application “in the wild.”

What does take us by surprise is when we find that their current solution was built a decade or two ago using a much older version of FileMaker—like FileMaker 6 or 7. (For reference, the current version as of this writing is FileMaker 19.)

On the one hand, there’s a sense of pride that swells up when we see this, as it’s a testament to the stability and robustness of the FileMaker platform. It speaks volumes when a business builds a custom app to support its unique workflow with FileMaker and is still using that app some 20 years later.

Indeed, one of the great things about FileMaker is that it affords customization and expansion. We’ve had clients with critical systems built in earlier versions of FileMaker who absolutely did not want to “reinvent the wheel” with a newer version. In many of those instances, we were able to take their core system and add functionality to it without a rebuild, piecing together modern functions that they needed on top of existing data structures. In a day and age when users are asked to upgrade or replace their core systems every couple of years, if not every couple of months, that kind of combined backwards compatibility and future-proofing is a rarity.

That said, the FileMaker of today is different, in many ways, from the FileMaker of 30, 20 or even 10 years ago. So, if your last encounter with FileMaker was one of those older versions, you might not be aware of some of the notable evolutions that have happened in the platform, and you might well be asking the wrong questions when it comes to custom development platforms in general.

Here are some of the myths and misunderstandings we hear often:

  1. FileMaker is Just Microsoft Access on Steroids
  2. FileMaker is Another Database Solution With a Fancy Front End
  3. FileMaker is for Mac (Apple) Environments Only
  4. FileMaker is Good for Small Offices, but It’s Not Robust Enough for Larger Organizations
  5. You Need a Full-Time Database Person to Administrate FileMaker Once It’s Up and Running

#1 “FileMaker is Just Microsoft Access on Steroids”

From the start, Access was meant to be a means for companies to create simple databases and forms for small teams of Windows users…and it never really grew beyond that. (Indeed, Microsoft itself states clearly that “We no longer recommend Access Services for new web apps and web databases.”)

FileMaker, on the other hand, was always intended to be a development platform. Today’s FileMaker supports modern security, integration and interface standards, native servers on Windows and macOS, and hundreds of simultaneous users on both native and web-based clients across multiple operating systems and device types. Thus, it has many more features and a much wider application than Access or other database software in its class.

#2 “FileMaker is Another Database Solution With a Fancy Front End”

It’s true that FileMaker has a very user-friendly interface, and can be used to create other user-friendly applications, even by people who don’t have a lot of experience with coding or creating databases (i.e., “low code”). But it would be false to say that FileMaker is simply a “fancy front end” to an otherwise “plain-vanilla” database.

For one thing, there are several FileMaker products that work together to do different things. The different parts of the platform offer more modern connectivity and data management options. For example, FileMaker offers a native REST API and can integrate with third-party systems using REST, JSON, JavaScript, cURL and various forms of ODBC.

There are also features that help integrate FileMaker applications with other useful tools. On iOS, the FileMaker platform offers camera, gesture, GPS, and sensor integration.

The server and workstation components of the platform also support an extensible plug-in architecture, with a rich ecosystem of plug-in developers.

Needless to say, the capabilities of the platform go well beyond that of a traditional database, even one with a user-friendly GUI.

#3 “FileMaker is for Mac (Apple) Environments Only”

Yes, Claris (the makers of FileMaker) is a wholly-owned subsidiary of Apple. But FileMaker goes beyond Apple products. It also offers native clients for Windows and a browser-based client for several brands of supported browsers. This means that applications built with FileMaker can run on virtually any workstation, tablet, or mobile device, independent of the operating system.

#4 “FileMaker is Good for Small Offices, but It’s Not Robust Enough for Larger Organizations”

Today’s FileMaker can easily scale to support hundreds of simultaneous users on a single instance of FileMaker Server, offering a secure and scalable cloud-based option for hosting solutions with high availability and an extra layer of security.

Indeed, some of Skeleton Key’s best clients are larger organizations, including Bass Pro Shops and the Public Works Department for the City of Florissant, Missouri.

#5 “You Need a Full-Time Database Person to Maintain and Administrate FileMaker Once It’s Up and Running”

Untrue. In fact, very little knowledge of coding or database management is needed to use, modify, or otherwise maintain a custom solution built and deployed in the FileMaker platform. All you need is a little familiarity with the platform, an understanding of your own workflow and a little training.

That said, many Skeleton Key clients do re-engage us periodically to upgrade or enhance their FileMaker solution for them. Most find that doing so can add capabilities and yet still be more cost-effective than commercially available SaaS solutions.

Can We Show You the Latest FileMaker?

Curious about what the most recent version of FileMaker can do? Of whether it might be a “fit” for the project you are working on? We would be happy to discuss your particular needs and workflow and give you an honest assessment of if and how FileMaker can help. To start, simply fill out this form.