Extension Kit for M-Files | Unitfly
  • Solutions
  • Products
    • Extension Kit Core
    • Extension Kit Document AI
    • Extension Kit Cloud Connector
    • Extension Kit REST Object Type
    • Extension Kit Process Intelligence
  • Pricing
  • Resources
    • Learning
      • Insights
      • Extension Kit Core Expert Tips
      • Extension Kit Academy
      • Newsletters
    • Technical
      • Documentation
      • Release notes
      • Download center
      • Community
    • Get started
      • Free trial
      • Demo Vault
    • Get in touch
      • Professional services
      • Become a reseller
      • Request a demo
      • Contact us
  • Solutions
    • DOCUMENT ACTIONS

      • Work with barcodes, watermarks, and images
        Automatically add and read barcodes, or add or remove watermarks and images.
      • Encrypt and decrypt files
        Automatically encrypt and decrypt files in M-Files.
      • Work with electronic and digital signatures
        Automatically add signatures and digital certificates to your documents.
      • Gain more control over your PDF files
        Merge, split, convert, undo conversion, and revert to the original document.
      • Sync data between Excel or Word with M-Files
        Populate Excel and Word files or read data from documents to update/create objects in M-Files.
      • Perform advanced file export/import
        Import files from SFTP or file share and read associated metadata. Export files and metadata. Zip/unzip documents.
      • AI and ML classification and metadata extraction
        Use the power of AI and Machine Learning to automatically classify and extract important documents.

      OBJECT ACTIONS

      • Automate object creation and duplication
        Create and duplicate objects from templates and sync between vaults.
      • Validate objects and metadata
        Control object permissions and validate related objects and metadata.
      • Control object numbering and versioning
        Define any custom object versioning and numbering formats.

      INTEGRATIONS

      • Advanced SQL integration
        Set property values from SQL, call stored procedures, execute SQL functions, and more.
      • HTTP integrations
        Keep systems in synchronization using HTTPS and REST API.
      • Microsoft 365 and Microsoft Azure integration
        Use Azure or Microsoft 365 services to exchange data with M-Files.

      REPORTING AND ANALYTICS

      • Create reports from M-Files data
        Define the dataset and create scheduled or user-triggered reports in multiple formats.
      • Export M-Files data for process analysis
        Export M-Files data in event-based format to analyze processes.

      PROPERTY OPERATIONS

      • Automatically set property values
        Use prebuilt expressions like Math, Date, Regex, and other operations.
      • Copy and set property values
        Set properties on objects or copy from other based on different rules and triggers.
      • Count and math operations on related objects
        Enumerate related objects and apply math operations on properties.

      NOTIFICATIONS

      • Send emails to external parties
        Send branded emails to external parties based on predefined rules.
      • Send emails with attachments
        Define which documents you want to automatically attach to your emails.

      UI

      • Embed web pages in M-Files
        Display external reports and web pages directly in M-Files tabs.
      • No-code app builder
        Create custom business applications without coding
  • Products
    • Extension Kit Core
    • Extension Kit Document AI
    • Extension Kit Cloud Connector
    • Extension Kit REST Object Type
    • Extension Kit Process Intelligence
    • Auclio ↗
  • Pricing
  • Resellers
  • Resources
    • Learning
      • Insights
      • Expert tips
      • Extension Kit Academy
      • Newsletters
    • Technical
      • Documentation
      • Release notes
      • Download center
      • Community
    • Get started
      • Free trial
      • Demo Vault
    • Get in touch
      • Professional services
      • Become a reseller
      • Request a demo
      • Contact us
Get started free
Extension Kit for M-Files | Unitfly
  • Solutions
  • Products
    • Extension Kit Core
    • Extension Kit Document AI
    • Extension Kit Cloud Connector
    • Extension Kit REST Object Type
    • Extension Kit Process Intelligence
  • Pricing
  • Resources
    • Learning
      • Insights
      • Extension Kit Core Expert Tips
      • Extension Kit Academy
      • Newsletters
    • Technical
      • Documentation
      • Release notes
      • Download center
      • Community
    • Get started
      • Free trial
      • Demo Vault
    • Get in touch
      • Professional services
      • Become a reseller
      • Request a demo
      • Contact us
  • Solutions
    • DOCUMENT ACTIONS

      • Work with barcodes, watermarks, and images
        Automatically add and read barcodes, or add or remove watermarks and images.
      • Encrypt and decrypt files
        Automatically encrypt and decrypt files in M-Files.
      • Work with electronic and digital signatures
        Automatically add signatures and digital certificates to your documents.
      • Gain more control over your PDF files
        Merge, split, convert, undo conversion, and revert to the original document.
      • Sync data between Excel or Word with M-Files
        Populate Excel and Word files or read data from documents to update/create objects in M-Files.
      • Perform advanced file export/import
        Import files from SFTP or file share and read associated metadata. Export files and metadata. Zip/unzip documents.
      • AI and ML classification and metadata extraction
        Use the power of AI and Machine Learning to automatically classify and extract important documents.

      OBJECT ACTIONS

      • Automate object creation and duplication
        Create and duplicate objects from templates and sync between vaults.
      • Validate objects and metadata
        Control object permissions and validate related objects and metadata.
      • Control object numbering and versioning
        Define any custom object versioning and numbering formats.

      INTEGRATIONS

      • Advanced SQL integration
        Set property values from SQL, call stored procedures, execute SQL functions, and more.
      • HTTP integrations
        Keep systems in synchronization using HTTPS and REST API.
      • Microsoft 365 and Microsoft Azure integration
        Use Azure or Microsoft 365 services to exchange data with M-Files.

      REPORTING AND ANALYTICS

      • Create reports from M-Files data
        Define the dataset and create scheduled or user-triggered reports in multiple formats.
      • Export M-Files data for process analysis
        Export M-Files data in event-based format to analyze processes.

      PROPERTY OPERATIONS

      • Automatically set property values
        Use prebuilt expressions like Math, Date, Regex, and other operations.
      • Copy and set property values
        Set properties on objects or copy from other based on different rules and triggers.
      • Count and math operations on related objects
        Enumerate related objects and apply math operations on properties.

      NOTIFICATIONS

      • Send emails to external parties
        Send branded emails to external parties based on predefined rules.
      • Send emails with attachments
        Define which documents you want to automatically attach to your emails.

      UI

      • Embed web pages in M-Files
        Display external reports and web pages directly in M-Files tabs.
      • No-code app builder
        Create custom business applications without coding
  • Products
    • Extension Kit Core
    • Extension Kit Document AI
    • Extension Kit Cloud Connector
    • Extension Kit REST Object Type
    • Extension Kit Process Intelligence
    • Auclio ↗
  • Pricing
  • Resellers
  • Resources
    • Learning
      • Insights
      • Expert tips
      • Extension Kit Academy
      • Newsletters
    • Technical
      • Documentation
      • Release notes
      • Download center
      • Community
    • Get started
      • Free trial
      • Demo Vault
    • Get in touch
      • Professional services
      • Become a reseller
      • Request a demo
      • Contact us
Get started free
General features
  • Do more with M-Files

Extension Kit for M-Files | Documentation

Getting Started

  • About Extension Kit Core
  • User Interface
  • Installation
  • Groups and Modules

Essentials

  • How to Create Rules
  • Rule Execution
  • Common Features

Configurations

  • Orchestrator
    • About the Module
    • Configuration
    • Use Cases
  • Embedded Dashboards
    • Module Introduction
    • Configuration
  • Environments
    • Calendar
    • Mail server
  • Object Templates
    • About the Module
    • Configuration
    • Use Cases
  • Property Calculations
    • Module Introduction
    • Use Cases
    • Simple Rule Configuration
      • Triggering options
      • Calculation options
    • Advanced Rule Configuration
      • Advanced rule configuration
  • Property Operations
    • Module Introduction
    • Use Cases
    • Simple Rule Configuration
      • Trigger-related Options
      • Target-related Options
      • Property error handling behaviour and Act as user
    • Advanced Rule Configuration
      • Advanced Rule Configuration
  • Document Processing
    • Module Introduction
    • Use Cases
    • Simple Rule Configuration
      • Triggering options and State actions
      • Action: Convert to PDF, Undo PDF conversion or Convert to searchable PDF
      • Action: Add or Remove watermark
      • Action: Add or Remove signature
      • Action: Add digital signature
      • Action: Merge or Undo merge documents
      • Action: Restore original / Sync file names with object title
      • Action: Add or Read barcode
      • Action: Add, Replace or Remove file / Add blank page
      • Action: Split document
      • Action: Encrypt or Decrypt file
    • Advanced Rule Configuration
      • Advanced Rule Configuration
  • E-mail Notifications
    • Module Introduction
    • Use Cases
    • Extension Kit – O365 OAuth Setup Manual
    • Simple Rule Configuration
      • Triggering options
      • Mail server and email configuration
      • Delivery notification and Properties
    • Advanced Rule Configuration
      • Advanced rule configuration
  • Auto State Transition
    • About the Module
    • Configuration
    • Use Cases
  • Extended Assignments
    • About the Module
    • Configuration
    • Use Cases
  • Extended Auto Properties
    • About the Module
    • Configuration
    • Use Cases
  • Extended Permissions
    • Module Introduction
    • Use Cases
    • Simple Rule Configuration
      • Trigger-related Options
      • Permission Options
    • Advanced Rule Configuration
      • Advanced Rule Configuration
  • Auto Numbering Properties
    • About the Module
    • Configuration
    • Use Cases
  • Object Operations
    • Module Introduction
    • Use Cases
    • Simple Rule Configuration
      • Trigger-related Options
      • Action: Create objects
      • Action: Duplicate objects
      • Action: Delete objects
    • Advanced Rule Configuration
      • Advanced Rule Configuration
  • Property Builder
    • About the Module
    • Configuration
    • Use Cases
  • Validation
    • Module Introduction
    • Use Cases
    • Simple Rule Configuration
      • Triggering options
      • Property validation rules
    • Advanced Rule Configuration
      • Advanced rule configuration
      • Advanced Property validation rule configuration
  • SQL Integration
    • Module Introduction
    • Use Cases
    • Simple Rule Configuration
      • Triggering options and Execution mode
      • SQL settings: Query and Rollback query
      • Property setting options
      • SQL settings: Value from and Connection string
    • Advanced rule configuration
      • Advanced rule configuration
  • HTTP Integration
    • About the Module
    • Configuration
    • Use Cases
  • Excel Reader
    • About the Module
    • Use Cases
    • Configuration
  • Excel Writer
    • About the Module
    • Configuration
  • Word Reader
    • About the Module
    • Configuration
  • Word Writer
    • About the Module
    • Configuration
  • Extension Methods
    • About the Module
    • Use Cases
    • Configuration
  • Versioning
    • About the Module
    • Configuration
    • Use Cases
  • Reporting
    • About the Module
    • Configuration
    • Use Cases
    • Extension Kit – O365 OAuth Setup Manual
  • Data Transfer
    • Configuration
    • Use Cases
  • Vault to Vault
    • About the Module
    • Configuration
    • Use Cases
  • Logging
    • Logging
    • Targets
    • Logging: Best practices
    • Sending logs to support
  • Archiving
    • Module Introduction
    • Simple Rule Configuration
      • Triggering options
      • Action type: Compress
      • Action type: Decompress
    • Advanced Rule Configuration
      • Advanced Rule Configuration

Resources

  • Roadmap
  • Release Notes
  • Extension Kit Academy
  • Community and Support
  • FAQs
  • Expert tips
    • General features
    • Integrations
    • Property operations
    • Object operations
    • Content operations
    • Other modules
View Categories
  • Home
  • Documentation
  • Extension Kit Core
  • Resources
  • Expert tips
  • General features

General features

Welcome to Expert Tips — a growing collection of practical tips and real-world examples to help you get the most out of Extension Kit Core.

This page focuses on the general features of Extension Kit Core, found throughout modules.

To get a new expert tip delivered to your inbox every week, subscribe to the Tip of the Week newsletter here.


Run rules with a Button Click

Run rules with a Button Click #

The Button Click trigger in Extension Kit Core lets you execute rules directly from the M-Files UI, without waiting for a workflow or property change. Send documents to ERP, run OCR, ZIP files, and more — exactly when you need it.

The trigger works across all trigger-based modules, as well as modules that normally run automatically, such as Extended Auto Properties.

Configuration options

Here’s a closer look at the button action configuration options (Picture 1).

Picture 1: Button trigger settings

First, you can define if the rule should apply to:

  • Selected Objects in Current View
  • All Objects in Current View
  • Objects Set in Rule

Next, choose where the button appears in the M-Files UI:

  • Three dots menu on the document’s action bar
  • Right-click menu on a document (or an empty space in a view)

Then, use the Button label field to set custom text displayed on the button.

To guide users, configure messages that appear during execution:

  • Confirmation message – displayed in a pop-up before running the rule (Picture 2)
Picture 2: Confirmation message example.
  • Success message – displayed when the rule executes successfully (Picture 3)
Picture 3: Success message example.
  • Error message – displayed if the rule fails.

Finally, use Order to define where the rule appears in the dropdown list.

Example

Let’s say you have a rule that applies encryption to selected documents with a button click (Picture 4).

Picture 4: Rule configuration example.

In M-Files, open the three dots menu of the document and select the rule (Picture 5). The document is encrypted instantly (Picture 6).

Picture 5: Select the rule in the three dots menu.
Picture 6: The rule is executed, and the document is encrypted.

Syncing related properties between object types

Syncing related properties between object types #

In this week’s tip, we’re tackling a common scenario – asked recently in our community – where related properties need to

The Challenge

You have an Employee object type with a multi-select property called Customers, containing a list of customers. Meanwhile, your Customer object type has a single-select property Employee, indicating the assigned employee. Since each customer can have only one project leader, but an employee can manage multiple customers, you want changes made in one object type to be automatically reflected in the other.

The Solution

Here’s how to set up synchronization using an orchestrated rule that automatically updates properties between two object types:

  1. Create an Orchestrated Rule within Property Operations where Customer is the trigger source.
  2. Rule 1: Search for Employee using an indirect reference and remove self (%.%).

3. Rule 2: Directly search for the same Employee and append self (%.%).

This setup ensures that whenever a customer is added or removed from an employee, the changes are automatically reflected in both the Employee and Customer object types.

Important: Make the Customers property on the Employee object Read-Only to ensure that the Customer object remains your single source of truth.

By automating the synchronization of these properties, you’ll save time, reduce errors, and keep your data consistent across your organization.


Using regular expressions in Extension Kit Core

Using regular expressions in Extension Kit Core #

Regular expressions (regex) are a powerful way to extract, transform, or validate text — and you can use them in multiple modules in Extension Kit Core to automate and streamline your M-Files processes. In this week’s tip, we’ll show you:

  • Examples of what you can do with regex in Extension Kit
  • Where regex is supported in Extension Kit
  • A practical use case with the Property Operations module
  • Best practices for writing and testing regex patterns

Using regex in Extension Kit

With the regex operator, you can manipulate, validate, and extract data across multiple modules in Extension Kit. Regex can be used to split or format property values, create validation rules that ensure specific conditions are met, and extract values based on defined patterns — enabling dynamic property calculations from text input. It also helps identify files that belong to the same object during imports, improving data organization and accuracy. In more complex workflows, regex can play a key role in orchestrating data flows and calculations, supporting automation, and maintaining data integrity throughout your M-Files configuration.

Regex is currently supported in the following modules:

  • Orchestrator
  • Property Operations
  • Email Notifications
  • Extended Auto Properties
  • Auto Numbering Properties
  • Object Operations
  • Validation
  • SQL Integration
  • HTTP Integration
  • Excel Reader
  • Word Reader
  • Versioning
  • Reporting
  • Data Transfer

Example: Extracting a country code from a phone number

On a Customer object, we have a property storing phone numbers in this format:

+385 91 123 4567

When the object changes, we want to extract just the country code (e.g., +385) and store it in a separate property on the source object. To capture the + and 1–3 digits at the beginning of the string followed by a space, we’ll use this regex pattern:

^\\+?\\d{1,4}

Here’s how to configure this rule in Property Operations (Picture 1):

Picture 1: Rule configuration for using regex to extract a country code from a phone number.

The result

When a phone number is entered, the rule extracts the country code and saves it to the target property (Picture 2).

Picture 2: The country code is extracted from the phone number and saved as a separate property on the source object.

Best practices when using Regex

  • Use a dedicated site to build, test, and debug your regex patterns. For example, we like to use regex101.com, as it highlights matches and shows capturing groups – which is both useful when setting up Extension Kit rules.
  • Start small and test your patterns on real data before deploying.
  • Document your regex patterns in the rule descriptions for clarity.

Regex can help you clean and structure data automatically, adding flexibility and precision to your M-Files configuration.


Make rule testing easier with Run Once

Make rule testing easier with Run Once #

When testing Extension Kit Core rules, it’s common to rely on changing object states, adding comments, or creating objects to trigger rule execution. But doing those steps repeatedly just to check if your rule works can be time-consuming, not to mention a bit frustrating.

That’s where the Run Once feature on the Dashboard comes in.

What is Run Once and how it works

Run Once lets you manually trigger a rule once, executing it on all matching objects in the vault. It’s especially useful during testing and configuration.

Here’s how to use it:

  1. Set up your rule as usual.
  2. Set the trigger to Run Once.
  3. Go to the Dashboard tab.
  4. Click the Execute RunOnce rules button within the desired module.

All rules with the Run Once trigger in that module will run immediately, without the need to simulate a workflow or perform repetitive actions.

Example use case

Let’s say you’re configuring an email notification and want to make sure everything looks right — clean formatting, no typos, and all the details in place. Instead of repeatedly adding comments or changing states on the same object, you can configure a rule like this (see Picture 1):

Picture 1: Example rule configuration in the E-mail Notifications module.

To test the rule, go to the Dashboard tab and click Execute RunOnce rules under the E-mail Notifications module (Picture 2). It’s a faster and cleaner way to test your configuration, without cluttering the vault or wasting time.

And if the rule takes a while to execute? You can stop it directly from the same screen using the Stop RunOnce rules button.

Picture 2: Test the rule with the Execute RunOnce rules functionality.

Run Once can be a great time-saver when you’re fine-tuning a rule and want to test the output multiple times. Next time you’re testing, use Run Once — it’s a simple feature that can make a big difference.


Advanced use of Vault Search

Advanced use of Vault Search #

In the Property Operations module, the Vault Search feature is typically used to find an object whose property value should be set based on a value from the Trigger Source, or vice versa — to retrieve metadata from a related object and apply it to the Trigger Source.

This tip starts with a quick introduction to Vault Search, then dives into advanced use cases showing how to use Vault Search to filter the Trigger Source based on data from multiple related objects in the vault.

Basic Vault Search functionality

Here’s a classic use case to illustrate how Vault Search works.

A rule in the Property Operations module (Picture 1) uses Vault Search to set the Invoice Owner property based on the Created by property of the Invoice object. Since Created by stores the Login Account of the user who created the object, and Invoice Owner expects an OT Employee, we can’t directly copy the value.

Instead, Vault Search helps by locating the Employee whose Login Account matches the Created by value. That Employee is then assigned to the Invoice Owner property.

Picture 1: Example rule configuration for Vault Search in the Property Operations module.

Advanced filtering options

In addition to this intuitive usage, Vault Search can also serve as an advanced filtering step that extends your ability to filter objects across the vault. While Trigger Source filtering only allows filtering its own properties, Vault Search lets you define conditions the Trigger Source must satisfy based on information from other related objects in the vault.

In an invoice processing scenario with Vendor and Invoice objects, you might want to evaluate a Vendor based on data from its related Invoices, such as:

  • Have they issued an unusually high-value invoice?
  • Do they have any unpaid invoices?
  • How long has it been since their last invoice?

Vault Search checks related Invoices and determines whether the Vendor meets the specified criteria, executing the rule only when those conditions are met. You can configure it to:

  • Execute the rule if at least one related object matches the criteria (Search Result Type = Any), or
  • Execute the rule only if no related objects match the criteria (Search Result Type = None).

Important: If the rule is orchestrated, make sure to set the Use vault search option to Yes to retain this behavior.

Example 1: No invoices in the last year (Search Result Type = None)

This rule sets the Activity Status of any Vendor to Inactive if they haven’t had any invoices in the past 12 months. If Vault Search returns no results, the condition is met, and the Activity Status property is updated (Pictures 2 and 3).

Picture 2: Vendor’s Activity Status will be set to Inactive if they haven’t had any invoices in the last year.
Picture 3: Vendor’s Activity Status will be set to Inactive if they haven’t had any invoices in the last year.

Example 2: Vendor has unsettled invoices (Search Result Type = Any)

In this case, the rule identifies each Vendor, finds all related Invoices using Vault Search, and checks if any invoice has the property Settled set to No. If even one such invoice exists, Vault Search returns a result, and the Unsettled Invoices property on the OT Vendor is set to Yes (Pictures 4 and 5).

Picture 4: Vault Search identifies invoices where Settled = No and updates the Vendor’s Unsettled Invoices property to Yes.
Picture 5: Vault Search identifies invoices where Settled = No and updates the Vendor’s Unsettled Invoices property to Yes.

Vault Search provides a powerful, flexible way to filter objects based on data spread across multiple objects in the vault. Along with the Orchestrator and Validation modules, Search filters, and Dynamic search conditions, Vault Search expands your ability to validate and automate processes on objects across the vault, increasing speed and efficiency in the configuration process.


Advanced scheduling with cron expressions

Advanced scheduling with cron expressions #

Need to run a rule every workday at a specific time, or just on the second Friday of each month?

The Scheduled trigger type in Extension Kit Core lets you define when rules should run. You can set basic frequencies like once, hourly, daily, etc. — but if you need more precision, you can create custom schedules using cron expressions.

What is a cron expression?

A cron expression is a five-part string that represents a schedule for executing tasks at specific times or intervals. Each part represents a unit of time:

  • Minute (0-59)
  • Hour (0-23)
  • Day of Month (1-31)
  • Month (1-12)
  • Day of Week (0-6, where 0 = Sunday)

For example, a cron expression like 0 12 * * 1 would schedule a task to run at 12:00 PM every Monday.

Using cron in Extension Kit Core

When scheduling with cron, Extension Kit uses this expression as a default value: */5 9-17 * * *

Which means: Every 5 minutes, from 9 AM to 5 PM, Monday through Friday (Picture 1).

Picture 1: The default cron expression in EK Core.

Example use cases

Here are a couple of practical cron expression examples:

  • Automated invoice syncing: Using the HTTP Integration module, fetch invoices from a service every 20 minutes during working hours: */20 9-17 * * *
  • Biweekly contract archiving: Using the Archiving module, archive contracts every second Friday at 5 PM: 0 17 */14 * 5

Not sure if your expression is correct? Use the cron helper to explore and test cron expressions easily.

If your process needs precise timing, cron expressions give you the flexibility to match your rules to real-world business schedules — down to the minute.


Use filename wildcards to target specific files

Use filename wildcards to target specific files #

When working with multi-file documents in M-Files, you often need to fetch or process only specific files within a multi-file document. That’s where filename wildcards in Extension Kit Core come in handy. They allow you to specify which documents to include or exclude.

What is a filename wildcard?

A filename wildcard is a special character (or set of characters) used to match filenames or patterns in file systems. It helps you filter and select the right document(s) when an object includes multiple files.

Example: Filtering specific files in a multi-file document

For example, let’s say you have a multi-file Contract document with the following files:

  • Annex_A.pdf
  • Annex_B.pdf
  • Contract.docx
  • NDA.docx

You want to archive only the NDA documents for all employees using the Archive module. In this case, you would use the filename wildcard NDA, which will pick up all files containing “NDA” in their name, while ignoring Annex and Contract files (Picture 1).

Picture 1: Example of a multi-file object.

Filename wildcards in EK Core

In Extension Kit Core, you mainly use two wildcard patterns:

  • * that matches any number of characters Example: file* matches file, file1, file_test.txt, etc.
  • File-type specific wildcards, like *.pdf, *.docx, *.jpg

Example use case: Cleaning up multi-file email documents

Imagine your company receives invoices via email attachments in common formats like PDF, XLS, and DOC. In M-Files, you’ve configured the Connections to External Sources to import these emails with attachments into M-Files.

The resulting M-Files object is a multi-file document that may include:

  • An image from the email signature (.jpg)
  • The email body (.html)
  • The actual invoice attachment in its original format

Since you only need the invoice, you can use the Document Processing module to create a rule that keeps only files matching *.pdf, *.xls, *.doc, and deletes the rest (like .html and .jpg) (Picture 2).

Picture 2: Configuration example of specifying documents using filename wildcards.

Using filename wildcards helps you easily target exactly the files you need from multi-file objects, keeping your objects clean and focused on the documents that matter.


Instantly update metadata within documents

Instantly update metadata within documents #

Keeping data in sync is even easier with Extension Kit Core. Did you know you can automatically update values within documents whenever metadata changes in M-Files, without the need for check-out?

Updating metadata in documents

When mapped properties are used in a document, they need to be updated each time a corresponding M-Files property changes. Typically, this would require checking out and checking in the document for the mapped properties to be updated.

However, with the Update metadata in file setting, all changes are immediately visible in the preview section, even without checking out the document. This feature, available in advanced configuration mode, enables instant updates to any mapped properties whenever a corresponding M-Files property is modified by a rule in which this option is enabled.

Example

A Contact Document object has a Document Title property calculated via an Extension Kit rule (Picture 1). Every time the Customer changes in M-Files, all properties should be updated instantly within the associated document.

Picture 1: Whenever the Customer changes, all properties need to be updated within the document.

How it works

Instead of updating the value manually via document check-out and check-in, all you need to do is enable the Update metadata in file setting in the rule configuration of Extension Kit Core (Picture 2):

Picture 2: Enable Update metadata in file to update values instantly, without check-out.

As a result, with any change of the property calculated by this rule, all mapped values within your document will update automatically. These modifications are instantly reflected in the preview card without the need for check-out (Pictures 3 and 4).

Picture 3: Mapped values within documents are automatically updated whenever the rule is executed.
Picture 4: Once the metadata changes, updated values are visible in the preview card without requiring check-out.

This feature ensures that your documents always reflect the latest metadata, reducing manual updates, unnecessary check-outs, and potential errors.


Optimizing rule execution with Monitored properties

Optimizing rule execution with Monitored properties #

When configuring rules in Extension Kit, it’s important to control how often they execute. By default, a rule is triggered by any change to the source object. However, not every change is relevant, and unnecessary executions can impact system performance.

To improve performance, use Monitored properties to specify which property changes should trigger the rule. This ensures that rules run only when needed, bringing several benefits:

  • Reducing unnecessary executions: If no monitored properties are set, the rule runs on every object change, even when the modification is irrelevant. This can lead to excessive rule executions, consuming system resources unnecessarily.
  • Optimizing system performance: Rules execute only when specified properties change, reducing the processing load on M-Files and Extension Kit, and improving overall system efficiency.
  • Preventing workflow bottlenecks: Avoiding slowdowns caused by excessive rule executions.
  • Enhancing precision and control: Ensuring rules respond only to meaningful metadata updates.

There is also a possibility of setting a condition under which a property would be monitored. If multiple Monitored property conditions are set, they are combined using the OR operator, meaning a change to any of them will trigger the rule.

Best practice: Always define Monitored properties when your rule only depends on specific metadata changes. This keeps your system efficient and responsive!


Keep your configuration safe with backups

Keep your configuration safe with backups #

Did you know you can backup configurations in Extension Kit Core?

When multiple people work on the same vault — adding rules or editing settings — unexpected errors can happen. In those moments, having access to an older configuration can save hours of troubleshooting.

Configuration backup settings

Under Advanced settings, the Configuration backup settings (Picture 1) let you automatically back up the configuration every time it’s updated.

You can store backup to:

  • Disk – specify a folder path.
  • Vault – specify the object, class, and M-Files user.
  • NVS – save directly to Named Value Storage.

For each destination, you can also set Backup files retention to determine how long to keep the backup files. If you set the value to 0, backups are never deleted based on age.

When to use backups

In test environments, frequent changes can generate many backup files, so you may want to disable Configuration backup there.

But in production, backups are a lifesaver. If an error appears, you can easily check whether a rule was added, something was deleted, or another change was made that could have caused the issue.


Choosing the right trigger: Object entered state vs Object left state

Choosing the right trigger: Object entered state vs Object left state #

Ever wondered whether to use Object entered state or Object left state in your rule? The difference may seem small, but choosing the right trigger is key to getting your workflow logic right.

In this tip, we’ll explore the same use case using both options to show how each one behaves.

Object entered state vs Object left state

  • Object entered state: Executes the rule when the source object enters a specific workflow state.
  • Object left state: Executes the rule when the source object leaves a specific workflow state.

Use case

Let’s say an office manager receives invoices in the state Invoice Received. They can either approve or reject an invoice, but in some cases, the invoice must be reviewed by the Department Manager or the Finance team, who will then decide whether to approve or reject it (see the workflow in Picture 1).

Picture 1

When an invoice is rejected, you want to send an email notification to the person listed in the Responsible Person property.

However, the right trigger depends on how detailed you want the information to be.

Example #1: When you only need to know that the invoice was rejected

If you simply want the Responsible Person to receive a notification that the invoice has been rejected, regardless of who rejected it, use the Object entered state = Rejected trigger (Picture 2).

Picture 2

This way, whenever the invoice enters the Rejected state, the rule executes and sends the email (Picture 3).

Picture 3

Example #2: When you need to know who rejected the invoice

If you want to notify the Responsible Person who rejected the invoice, you can use the Object left state trigger. Each state (Invoice Received, Department Manager Review, Finance Review) will have its own rule that sends an email upon leaving that state.

However, since an invoice also leaves a state when it’s approved, you need to ensure emails are sent only for rejections. To do this, add a condition:

  • In the Rejected state, the Rejection Reason property must not be empty.
  • In the Approved state, the Rejection Reason property must be empty.

Then, in your Object left state rule, add the condition Rejection Reason is not empty (Picture 4).

Picture 4

This ensures the email is sent only when the invoice moves to Rejected, and you can include in the message who rejected it (Picture 5).

Picture 5

Conclusion

When the previous state contains information essential for the next steps in the process, the rule should be triggered when the object leaves that state. If all the necessary information is available in the state the object is entering, then trigger the rule when the object enters the state.


Managing Extension Kit Core versions

Managing Extension Kit Core versions #

Upgrading or downgrading your Extension Kit Core version is simple, but here are some important steps and tips to keep in mind:

1. Upgrading Extension Kit Core

If you want to upgrade, select Extension Kit in your Applications, click Install, and the new version will be applied (Picture 1).

Picture 1

2. Downgrading Extension Kit Core

If you need to downgrade for any reason, you must Uninstall Extension Kit first, then Install the desired version (Picture 2). Before downgrading, note that it’s useful to export your entire configuration. This allows you to restore it easily if you later return to a higher version.

Picture 2

3. License installation

Whenever you change the Extension Kit Core version, always Install License again (Picture 3).

Picture 3

4. Refresh configuration

After changing versions, make sure to Refresh Configurations so that all changes are synced correctly (Picture 4).

Picture 4

Ways to create objects in Extension Kit Core

Ways to create objects in Extension Kit Core #

Extension Kit Core makes creating objects in M-Files convenient and efficient, no matter where your data comes from. Covering a wide range of business use cases, it gives you incredible flexibility to automate and streamline object creation.

Here are the eleven modules where objects can be created:

  • Object Operations – Create objects based on a trigger. For example, when an Employee object moves to the Active state, an NDA can be created automatically.
  • HTTP Integration – Create objects directly from an HTTP response.
  • SQL Integration – Create objects from an SQL query response.
  • Excel Reader – Create objects from data stored in Excel sheets.
  • Word Reader – Create objects using data extracted from Word documents.
  • Document Processing – Create new objects when splitting or merging documents.
  • Data Transfer – Create objects when importing documents from SFTP or file shares.
  • Vault to Vault – Create objects in the current vault or in another vault.
  • Reporting – Generate a report as a new object.
  • Archiving – Save compressed or decompressed files as new objects.
  • Extension Methods – Create new objects via custom extension methods.

Whether you’re working with imported files, documents, APIs, or metadata, Extension Kit Core lets you automate object creation in the way that best fits your process.


Relationship between Execution Mode and Copy Mode

Relationship between Execution Mode and Copy Mode #

As part of Extension Kit’s advanced configuration, the Execution mode feature allows you to define when a rule is executed.

Understanding Execution Mode options

The key difference between the execution mode options lies in when the changes are applied:

  • EventHandler: Executes changes during the object check-in process.
  • Background and BackgroundTransaction: Executes changes after the object has been checked in.

How Execution Mode relates to Copy Mode settings

The Copy mode settings within the Property Operations module directly influence the default Execution mode:

  • When Copy mode is set to FromSourceToTarget, the default Execution mode will be BackgroundTransaction.
  • When Copy mode is set to OnSourceObject, the default Execution mode will be EventHandler.

While you can customize these settings to suit your specific use case, it’s important to understand the relationship between these two functionalities to ensure optimal configuration. For a more detailed explanation of Execution mode, please refer to the documentation here.


Understanding Direct vs. Indirect Reference Direction

Understanding Direct vs. Indirect Reference Direction #

In Extension Kit, some modules allow you to search and find target objects via a specific property. When doing so, you have the option to specify the reference direction.

Let’s dive into what this feature means and how to distinguish between direct and indirect reference directions.

Direct vs. Indirect Reference

When establishing a relationship between a source object and a target object, the connection can be either direct or indirect:

  • Direct Reference (Default): Use this option when the source object directly references the target object through a specific property. This means the source has a direct link to the target, which can be used to identify and manipulate the target.
  • Indirect Reference: Select this option when the target object references the source object. In this scenario, the relationship is reversed—the target knows about the source, not the other way around.

Example

Consider a scenario where you want to automatically change the workflow state of an Opportunity to “Won” whenever an Offer reaches the “Accepted” state. This is achievable with the Property Operations module.

  • Trigger Source: Offer
  • Target: Opportunity

Here’s how the reference directions work in this example:

  • Direct Reference direction: If the Offer object has a property named Opportunity, which is a lookup to Opportunity objects, this is a direct reference. When the Offer’s state changes to “Accepted”, the system will find the associated Opportunity using the direct reference and set its workflow state to “Won”.
  • Indirect Reference direction: Suppose the Offer does not have a direct reference to the Opportunity. Instead, the Opportunity has a reference to the Offer. In this case, you would set the reference direction to indirect. By specifying that the reference property is the Offer, the system will locate the Opportunity that references the Offer and update its state to “Won” accordingly.

Understanding whether to use a direct or indirect reference is key to ensuring that your automation workflows behave as expected.


Take full advantage of the Dashboard

Take full advantage of the Dashboard #

Whether you’re testing rules, tracking background tasks, or just checking your license status, the Dashboard in Extension Kit Core is your go-to place for everything happening behind the scenes.

Let’s break it down.

Key application info

The top section of the Dashboard (Picture 1) gives you essential details:

  • Extension Kit Core version
  • License status (valid or expired)
  • List of licensed modules
  • Service data such as serial number, license expiry date, and SEQ API key (for log tracking in SEQ)

You’ll also find two useful buttons:

  • Refresh Dashboard: Updates rule execution and scheduling status. Especially useful during testing (e.g., Run Once/Scheduled rules) or when monitoring long-running rules.
  • Destroy Task Queues: Emergency only! Clears all queued rules. This is helpful during testing if a rule locks the vault, but avoid using it in production, as it may disrupt valid rule execution.
Picture 1: Key application info in the Dashboard.

Modules overview

The module table (Picture 2) displays:

  • Module’s status (enabled/disabled)
  • A short description of each module
Picture 2: The modules overview in the Dashboard.

If a module supports Run Once execution, you’ll see dedicated buttons to:

  • Execute RunOnce Rules
  • Stop RunOnce Rules

Once configured, any active RunOnce rules are listed right below the module description for easy tracking. After execution, completed rules are moved to the RunOnce rules table in the Dashboard.

Monitor background tasks

If a rule is configured with Execution Mode: Background, a dedicated Background Tasks table appears in the Dashboard. This helps you track the execution status and catch issues as they happen. Below is an example of a RunOnce rule in the Reporting module with the background tasks listed (Picture 3).

Picture 3: Background tasks

Recalculate properties with one click

For the Extended Auto Properties, Auto Numbering, and Property Builder modules, the Dashboard gives you control over property recalculation:

  • Recalculate Properties: Triggers recalculation on all relevant objects.
  • Stop Recalculation: Halts the process if needed (Picture 4).
Picture 4: Recalculate properties

View & download logs

If Logging is enabled and a Default target is set, users can:

  • View the latest logs
  • Download logs directly from the Dashboard

You’ll also see a list of all configured log targets (e.g., File, SEQ) along with their corresponding log levels. (Picture 5)

Picture 5: Logging

Track asynchronous rule execution in real time

The Asynchronous Operations section (Picture 6) shows the status of rules that aren’t triggered by event handlers. You can monitor:

  • Execution status (Completed/Failed)
  • Scheduling status
  • Errors or misconfigurations
Picture 6: Asynchronous operations

Tip: Use the Refresh Dashboard button to update the table and check current statuses. For example, if you run a rule using the Execute Run Once rules button, it will appear in the table immediately (Picture 7), but it won’t show as Completed or Failed until you refresh.

Picture 7: RunOnce rules

The Dashboard is packed with insights that help you troubleshoot faster, manage smarter, and test safer.


Keep your Extension Kit configuration organized

Keep your Extension Kit configuration organized #

As your Extension Kit Core configuration grows, keeping it organized becomes key. To help you maintain an orderly configuration, here are some best practices for managing Rule groups, Rules, Descriptions, and Aliases.

Rule groups and rule names

  • As each module is designed to have rule groups that can contain one or more rules, a good starting point is to structure rule groups based on M-Files Object Types, and then organize rules within the groups based on actions performed on the objects (Picture 1). To name rules, use descriptive titles that clearly explain what the rule does and which classes it affects.
Picture 1: Organizing rule groups based on M-Files Object Types.
  • For Object Types with many classes, like OT Document, it makes sense to organize and name rule groups by Object Type and Class, and rules by specific actions (Picture 2):
Picture 2: Organizing rule groups based on Object Type and Class.
  • Sometimes it’s best to create rule groups for a specific action, so changes can be made without searching through the entire module. For example, if mSign performs actions on both OT Document and OT mSign Signature objects, place them in the same rule group rather than splitting them by object type (Picture 3):
Picture 3: Organizing rule groups based on a specific action.

    Rule descriptions

    The Description field is crucial for future edits or when handing over your configuration to someone else (Picture 4).

    Think of descriptions like comments in coding – they make navigating and maintaining your configuration much easier, even if they feel like extra work at first.

    Picture 4

    Aliases

    Aliases are essential for making rules accessible across modules:

    • Without an alias, configurations set in the Environments module cannot be used in other modules (Picture 5).
    • In the Orchestrator module, only rules with aliases are visible in the configuration.

    Tip: After adding an alias, refresh your configuration and/or restart the vault to ensure it’s visible in other modules.

    Picture 5

    A well-organized configuration makes your Extension Kit Core setup easier to maintain, reduces errors, and saves time in the long run.

    Updated on December 1, 2025
    On This Page
    • Run rules with a Button Click
    • Syncing related properties between object types
    • Using regular expressions in Extension Kit Core
    • Make rule testing easier with Run Once
    • Advanced use of Vault Search
    • Advanced scheduling with cron expressions
    • Use filename wildcards to target specific files
    • Instantly update metadata within documents
    • Optimizing rule execution with Monitored properties
    • Keep your configuration safe with backups
    • Choosing the right trigger: Object entered state vs Object left state
    • Managing Extension Kit Core versions
    • Ways to create objects in Extension Kit Core
    • Relationship between Execution Mode and Copy Mode
    • Understanding Direct vs. Indirect Reference Direction
    • Take full advantage of the Dashboard
    • Keep your Extension Kit configuration organized
    Extension Kit for M-Files | Unitfly
    Extension Kit for M-Files | Unitfly
    • Solutions

    Products

    • Extension Kit Core
    • Extension Kit Document AI
    • Extension Kit REST Object Type
    • Extension Kit Cloud Connector
    • Extension Kit Process Intelligence

    Resources

    • Documentation
    • Insights
    • Extension Kit Academy
    • Release notes
    • Join the community
    • Contact support

    Get started

    • Pricing
    • Free trial
    • Contact us
    • Download center
    Get updates and tips on Unitfly products!
    Products Newsletter
    Extension Kit Tip of the Week
    Auclio Newsletter
    • Privacy & Cookie policy

    © 2025 Unitfly

    zicer logo negative
    hamag bicro logo