Welcome to Expert Tips — a growing collection of practical, real-world tips to help you get the most out of Extension Kit Core.
This page focuses on the following modules: E-mail Notifications, Reporting, Environments, Orchestrator, Embedded Dashboards, Extension Methods, Auto State Transition, plus Logging.
Use the table of contents to jump to any tip and find practical guidance, examples, and visuals to support your implementation.
To get a new expert tip delivered to your inbox every week, subscribe to the Tip of the Week newsletter here.
Table Of Contents
- HTML formatting and attachments in email notifications
- Automatically send documents as email attachments
- Understanding rule execution in the Reporting module
- Reduce repetitive configuration with Environments
- How to embed web pages in M-Files
- How to orchestrate rules in Extension Kit Core
- Why and how to use the Orchestrator module
- Best practices for efficient Logging in Extension Kit Core
E-mail Notifications
HTML formatting and attachments in email notifications #
Want your M-Files email notifications to look clean, professional, and visually appealing (think branded headers, styled sections, or CTA buttons)?
With the Email Notifications module in Extension Kit Core, you can send emails that not only reflect your brand using custom HTML but also include attachments directly from M-Files.
Why use this module?
The Email Notifications module gives you the flexibility to design emails that match your communication style:
- Create rich, styled layouts using custom HTML
- Attach documents or files from M-Files objects
- Trigger notifications based on any event or condition
Example configuration
Let’s say you want to send a notification when an object enters a specific state. The email should:
- Match your brand style
- Include a document attachment
- Feature a call-to-action button
Here’s how you can configure it (Picture 1):

And here’s what the final email looks like — clean, styled, and effective (Picture 2):

You can still send plain-text notifications if you prefer. But if you’re aiming for a branded or more complex layout, HTML gives you full creative control.
E-mail Notifications
Automatically send documents as email attachments #
With Extension Kit Core, you can easily set up rules to automatically send selected documents from M-Files via email, exactly when you need and to the right recipients. A smart way to save time and make sure the right files reach the right people.
Use case
A simple example: when a project moves to the Approved state, the project manager (PM) automatically receives all related documentation via email.
Configuration
All project documentation is attached to the Project OT, containing both PDF and DOCX files (Picture 1).

Picture 1: Project documentation contains both PDF and DOCX files.
The rule is configured to select only PDF files and send them to the PM (Picture 2), using the
*.pdf filename wildcard.

Picture 2: Configuration in the E-mail Notifications module.
Result
The PM receives an email with only the project’s PDF files attached (Picture 3).

Picture 3: The email with only PDF files attached.
Reporting
Understanding rule execution in the Reporting module #
In the Reporting module, it’s important to note a key behavior when using certain trigger types combined with a specific export destination.
Prevented rule execution
In the Reporting module’s rule configuration, if the Trigger type is set to ObjectChanged or ObjectMetadataChanged and the Export destination is Vault, the rule will not be executed. This occurs because adding a report to the source object is detected as an object change, which would normally re-trigger the rule, potentially causing a loop. To prevent the looping, the system will not execute the rule. This event will be persisted in the log and noted in the validation messages within the configuration.


How to resolve the issue
If your rule is not executing as expected due to this configuration, there are two main solutions:
- Change the Trigger Type: Modify the trigger type to something other than ObjectChanged or ObjectMetadataChanged.
- Use Monitored Properties: Add a specific property to Monitored properties, ensuring that the rule executes only when the specified property changes on the source object.
Environments
Reduce repetitive configuration with Environments #
In Extension Kit Core, the Environments option is designed to help reduce repetitive configuration by allowing you to define common settings once and use them across multiple rules.
Example
Currently, Environments are available for Calendar settings. You can define non-working days in your Calendar environment (Picture 1) and then apply it to any Extended Auto Properties rule that uses calendar data (Picture 2).


Instead of manually defining non-working days for each rule, you can simply reference the environment, saving time and reducing errors.
Embedded Dashboards
How to embed web pages in M-Files #
Tired of switching between browser tabs to check a dashboard or an external tool while working in M-Files? With the Embedded Dashboards module in Extension Kit Core, you can bring external content — like reports, dashboards, or websites — directly into M-Files.
Display external content in M-Files
Depending on your use case, you can choose between two ways to display external content:
- Persistent dashboards These appear in a dedicated tab for all users, regardless of the object they’re viewing. Perfect for company-wide tools, such as reporting dashboards or help guides.
- Floating dashboards These appear conditionally, based on object properties. Ideal when you want to show content related to the currently selected object. Let’s say a manufacturing company maintains a product catalog on its website. You could store each product’s URL in a property and configure a floating dashboard that displays the matching product page when that object is selected in M-Files.
Example: Displaying dynamic dashboards
Here’s an example of configuring floating dashboards using national parks (Picture 1).
Each national park object in M-Files has a property with a link to its official webpage. A rule in the Embedded Dashboards module is configured to show a webpage in the Website tab based on the selected park.

The result
The user sees external content (like a public webpage) seamlessly displayed within M-Files (Pictures 2 and 3):


Technical notes
- Works only in the new M-Files Web and new M-Files Desktop clients.
- Some websites (e.g., Google Maps, YouTube) may restrict embedding due to browser security policies.
This feature helps you centralize external tools, reduce context switching, and keep key resources directly in the M-Files interface.
Orchestrator
How to orchestrate rules in Extension Kit Core #
The Orchestrator module enables you to coordinate and manage the execution of rules in Extension Kit Core. However, linking rules to the Orchestrator requires defining an alias. Follow these steps to set it up correctly:
- Enable Advanced configuration mode for the rule you want to orchestrate. Otherwise, the alias field won’t be available.
- Enter the alias and save your changes – After defining the alias, click Save. (Picture 1)

Picture 1: Define the Alias in the rule you want to orchestrate.
3. Refresh the configuration (Picture 2) – This step is essential for the alias to appear in the Orchestrator. Without refreshing, the newly created alias won’t be visible in the Orchestrator’s dropdown menu.

Picture 2: To refresh the configuration, right-click on Configurations in the vault and select Refresh.
Once you’ve saved the changes and refreshed the configuration, the alias will become available in the Orchestrator, allowing you to orchestrate the rule as needed. (Picture 3)

Picture 3: After saving and refreshing the configuration, you’ll find the alias in the Orchestrator rule.
Orchestrator
Why and how to use the Orchestrator module #
The Orchestrator module allows you to coordinate multiple rules in Extension Kit, giving you more control over how and when rules are executed. With Orchestrator, you can:
- Chain multiple rules and define the execution order. You can set rules to run sequentially or simultaneously, ensuring they happen in the correct order or at the same time.
- Define specific conditions for rule execution. For example, you can trigger rules based on rule success or failure, such as “execute this rule only if another rule succeeds” or “trigger this rule if a previous one fails.”
Rules can be orchestrated within the same module or across different modules. To orchestrate a rule:
- Set a Trigger type to Orchestrated within the rule configuration of a desired module.
- Create a rule within the Orchestrator module.
- Within Orchestrator, choose the module and the rule to be orchestrated and configure the additional conditions.
The example below shows the configuration of the rule Offer – Set discount and total amount based on offer type within the Orchestrator module. The rule is set with one orchestration condition, with separate configurations for rule execution depending on whether the condition is met or not.

Example of orchestrated rule configuration within Orchestrator
Logging
Best practices for efficient Logging in Extension Kit Core #
Effective logging is essential for maintaining a well-optimized and easily manageable system. Here are some best practices to ensure your logs are structured, accessible, and optimized for performance:
Separate Logs by Vault
Store logs for each vault in a dedicated folder to simplify locating relevant information when troubleshooting or analyzing activities.
Use the Appropriate Logging Level
For normal system operation, it’s best to use the Info logging level for a balance of detail and performance.
Customize File Log Format
Define a clear and consistent log format for easier readability and analysis. In the Advanced Settings of the File Targets configuration, you can customize log formatting. If you want to maintain the formatting of previous log structures (pre-v5.0.0), we recommend using the following custom Log Message Format:
ruby Copy code ${longdate} [${level:uppercase=true:padding=3}] ${logger} [Task: ${mdlc:TaskID}] [${mdlc:ModuleName}] ${mdlc:Vault} ${mdc:Rules} ${message}${onexception:${newline}${exception:format=ToString:innerformat=ToString:separator=\\r\\n}}
For more details, refer to this page: Version 5.0.0 of Extension Kit for M-Files released! – Announcements – Unitfly Community.
Set a Log Retention Period
Define the retention period for logs based on the specific needs of each vault. This helps manage storage while retaining essential data for audits or debugging.
Define Maximum File Size
It’s crucial to set a maximum file size to ensure logs remain accessible and can be easily opened and reviewed, especially if you use a one-file-per-day configuration.
By following these best practices, you can streamline log management, improve performance, and ensure your system runs smoothly.