EasyMorph version 5.9.5 has been released with some major new features for EasyMorph Server. Let's dive in and explore what's new and improved in both EasyMorph Desktop and EasyMorph Server.
EasyMorph Server Task Triggers
One of the most requested and hotly anticipated new features for EasyMorph Server is "Triggers". Historically, an EasyMoprh Server Task could only be scheduled to run at a predefined time or interval. Instead, Triggers open up the possibility of running Tasks upon other events occurring, meaning EasyMorph can react in near realtime to something happening. Some examples would be "when a new record appears in the database" or "when my customer sends me an email with an attachment".
Version 5.9.5 brings the first two triggers and lays the foundations for many more planned. The "Server tasks" page of EasyMorph Server now looks quite different with the addition of the triggers configured for each task.

When creating a task, you no longer set the schedule directly in the task settings. Instead, once created, a Trigger can be added to the task by clicking on "Add Trigger" next to the task name and selecting the type of trigger you wish to add.

Hint: Tasks can have more than one type of trigger. To do this, click on the 3-dots icon next to the existing trigger of a task and selecting "Add another trigger" from the menu.
The Schedule Trigger
The "Schedule" Trigger allows you to schedule the task to run at your desired date and time in the same way as tasks could be scheduled in previous versions. Whether you want it to run just once at a specific date and time, or to repeat every third Tuesday of the month at 4:41pm, the Schedule Trigger has it covered as well as just about every other date and time based schedule you could possibly imagine.

Hint: When upgrading to version 5.9.5, existing task schedules will be automatically converted to a Schedule Trigger and will continue to run as they did before.
The Email Received Trigger
The "Email Received" Trigger is the first new trigger and allows you to start your workflow when an email is received in a connected mailbox.

It works with any Email connector created in the EasyMorph Server Space connectors repository and so supports Microsoft Exchange Server (inc. Exchange Online), Microsoft Outlook.com, Gmail, Amazon Simple Email Service (SES) and any other IMAP compatible email server. Simply select the required Email connector, choose which inbox folder you want to monitor and how often it should check (every 1 minute by default), and EasyMorph will dutifully keep a watchful eye for new emails arriving. You can even set additional conditions so that EasyMorph only triggers on emails from a specific sender, with a specific subject or even only those which contain an attachment.
For example, if I have an EasyMorph workflow which processes new orders received by email from a specific customer, historically I would need to schedule a task to run the workflow every few minutes, checking if a new email has been received and processing it as needed. Most of the times it runs, it would find no new emails and so would need to skip all other actions in the workflow. Now the Email trigger can run the workflow only when my customer sends me an email with an order attachment. Not only is this more efficient, but it becomes near realtime also. I could even add a "Send email" action to my workflow to let them know within a minute that I've received and am processing their order - helping to keep my customer happy too.
There are a lot more Triggers planned for the future including:
- The File Event Trigger - Starting a task when a new file appears or an existing file is updated/deleted.
- The Database Rows Added Trigger - Starting a task when a new row is added to a database table.
- The Dropbox Trigger - Just like the File Event trigger, but for files stored in Dropbox rather than locally on the server.
- and many more...
Hint: If you have ideas for other triggers you'd like to see in EasyMorph Server, we'd love to hear about them! Head over to the EasyMorph.com Community and let us know.
Built-in SFTP Server
EasyMorph Server now has an in-built Secure File Transfer Protocol (SFTP) Server, eliminating the need to install a separate SFTP solution when wishing to securely receive and transmit files - especially outside of your organization. For example, I may need to collect information from my suppliers about their current inventory so that I am able to use it to calculate lead times. With the built-in SFTP Server, each week my suppliers can now upload a CSV file containing their current stock levels directly into EasyMorph.
Setting up the SFTP Server is simple, just navigate to "Settings" on the left-hand menu, then to the "SFTP" tab and ensure the box market "Enabled" is checked. By default, the SFTP server operates on port 22 but this can be changed if needed.

Hint: As the SFTP server runs on a different port, you can open up access to this port without compromising the security of the rest of the EasyMorph server.
Once configured, the SFTP server can be enabled or disabled for each Space individually under the the Space Features page. Navigate to "Spaces" on the left navigation bar, and ensure the "Enabled" box is checked under the "SFTP Server" feature on the "Features" tab.

Clicking on the "Configure" button allows you to define where on the EasyMorph server the files uploaded via SFTP will be stored. Each Space will appear as a top level folder under the root of the SFTP server host and users will only be able to access those folders for the Spaces they have access to.
Hint: The File Event Trigger coming in the next release will be able to monitor any folder on the server, including the folder where the SFTP Server files are stored. You will therefore be able to trigger a task based on a file being uploaded or update via the inbuilt SFTP Server.
Explorer Boards
In my opinion, Boards in Explorer on EasyMorph Server are an underused feature. For those that aren't familiar with them, Boards are not dashboards in the sense of a business intelligence or reporting tool (although they can include charts and metrics). Instead, Boards can be thought of as highly customizable homepages for just about any data related purpose you can imagine. From a simple ticketing system, to a fully fledged tool for monitoring and managing a complex ETL process, Boards can help to manage any system, department, business precess or team.
In version 5.9.5 we've added two significant improvements to Boards which open up even more possibilities and use cases.
Realtime Metrics
Metrics sections have been available in Boards for some time but they had one major limitation. If the underlying metric value changed, it would only be reflected in the Board when the user refreshed the webpage in their browser. In this release, metrics now refresh in Boards in near realtime. Coupled with the new "Increment metric" command in the "Catalog command" action (see below), Metrics and Boards open up even more possibilities. My sales team can now have a homepage to monitor orders being received in realtime, and act on any issues as soon as they occur.

Tasks Section
New to Boards is the "Tasks" section which allows you to add a subset of Tasks configured in the Space onto the board. These Tasks can then be managed and run directly from the Board.

This ability to add a subset of Tasks to a board can help a specific group of users find and run the tasks they need, especially when the Space has a lot of Tasks configured. The Tasks section can either display all Tasks from a specific group, or all tasks without any group assigned.

Hint: Tasks can be assigned to Groups within the Task properties by selecting an existing group or typing a new group name.
Combined, these two updates make Boards even more useful for managing ELT processes in EasyMorph. Taking the above example, my sales team can not only monitor live metrics about sales being received, but when an issue does occur, they are able to act immediately to resolve the problem and rerun any failed tasks themselves. As well as freeing up my time as the data engineer or BI developer, it also empowers the users to solve data problems through self-service.
The Text Length Facet
In the last release we introduced Facets in Analysis View of EasyMorph Desktop and promised there would be many more to come. In this release, we've added the Text Length Facet allowing you to profile and filter text values by the number of characters they contain.

The Text Length Facet shows the lengths of text values and how many of each exist in the data. This can be really helpful when profiling data and identifying where data quality problems may exist. For example, if my product codes should always be 6 characters long, the Text Length Facet lets me easily identify any records where this is not the case. And as with all Facets, clicking on one or more text lengths and selecting "Apply" will filter the table accordingly.
Hint: Like all facets, you can access the Text Length facet by using the menu at the top left of any field filter within the Analysis View.
New and Improved Actions and Functions
Although version 5.9.5 is mostly about EasyMorph Server, it also brings some notable improvements to existing actions and functions in EasyMorph Desktop.
Pivot Action Improvements
The Pivot Action has been part of EasyMorph since the very early days, but that doesn't stop us improving it. To make it even simpler to use, we've added two new options.
The first is a new check box which allows you to switch aggregation on and off. When in "no-aggregation mode", values are pivoted without performing the usual aggregation such as sum, count, min, max, etc. This makes it easier to simply transpose data rows into columns.

Hint: As can be seen in the above image, in no-aggregation mode, all values are expected to be unique. If this is not the case, the data cannot be transposed and an error will occur.
The Pivot action now also has an option for "Column order".

In Automatic mode, the columns created by the action will be sorted in the order which they occurred as values in the data. When set to "Sorted", the columns created will be sorted according to the data type (i.e. alphabetically, numerically or by date). The latter being the default and how the Pivot action used sort columns.

The Catalog Command Action
The Catalog command action now has a new command "Increment metric" which, as you might expect, allows you to increment a Metric item in the Catalog by a given amount. This was possible to achieve previously, but it would require multiple steps - reading the metric, incrementing it and writing it back. Doing it this way could however cause issues with the metric not being incremented correctly under certain scenarios. The Increment metric command therefore makes it not only simpler but more reliable also.

This new command becomes especially useful when coupled with the fact that Metrics now update in realtime in EasyMorph Server Boards (see above).
Hint: You can decrement a Catalog Metric using the "Increment metric" command by setting the "Increment by" value to a negative number.
The Ask AI Action
The Ask AI action was recently renamed from "Ask ChatGPT" with added support for any OpenAI compatible Large Language Models (LLMs). In this release we've added support for sending attachment files as part of the request sent to the LLM.

Note: Whilst EasyMorph does not imposed a limit on what file types may be attached, you should consider what file types are supported by your chosen LLM to avoid any unwanted or unexpected results.
This opens up lots of new ways AI can be used in EasyMorph workflows, such as asking the AI to parse text from a PDF. Or even to receive back a description of the contents of a picture. We'd love to hear about how you've enhanced your workflows with AI over on the EasyMorph Community.
The workdays() Function
The workdays() function has received an overhaul adding some highly requested new functionality. For those who haven't used it before, the workdays() function is passed two dates and calculates the number of working days (Monday to Friday) between them.
workdays(from_date, to_date, [exclusions, inclusions])
Version 5.9.5 adds two new optional parameters as can be seen above. These parameters allow you to specify additional dates which should be excluded or included as working days. Dates specified in the "exclusions" parameter and which fall on a weekday (Monday to Friday) will be considered a non-working day. Dates falling on a Saturday or Sunday which are specified in the "inclusions" parameter will be considered a working day.
This means the workdays() function can now take into account more complex work day scenarios, such as:
- Public holidays (also known as "Bank Holidays" or "State Holidays") being considered as non-working days.
- Companies who work a compressed 4-day week not working Fridays.
- Company wide closures such as closing between Christmas and New Year.
- Countries (such as many in the Middle East) which work a Sunday to Thursday week instead.
As an example, workdays(#2025-01-01, today(), "2025-04-04,2025-04-07")
will consider Friday the 4th and Monday the 7th as additional
non-working days.
Hint: As long as they contain a comma separated string of dates in the format "YYYY-MM-DD", you can use "Text or Number" parameters to store lists of dates to exclude or include, allowing you to manage them more easily and keep them consistent throughout your workflow.
Longer Module Names
The names of modules in EasyMorph Desktop used to be limited to 20 characters long. For some reason, this limit was never quite enough and meant you were left trying to abbreviate them in strange and annoying ways. We've upped the limit in version 5.9.5 to 30 characters long instead, hopefully helping to avoid this annoyance. It's far from a huge new feature I know, but it's the little things that can make a big difference.
What's coming next?
DISCLAIMER: The below is for informational purposes only. It does not guarantee that any mentioned features will be implemented in the software or included in a specific version. Plans and priorities may change at any time.
Version 5.9.6 is expected to be released towards the end of May and has some great new features and improvements planned for both EasyMorph Desktop and EasyMorph Server:
- Instant Help - View the extended description and help for an action directly in EasyMorph Desktop.
- More Triggers - The "File Event" and "Database Rows Added" Triggers.
- Creation of Catalog assets from Server UI - Add local or remote folders and workflows to the EasyMorph Server Catalog directly in the web browser.
- And much more....