Hi Community,

I’m running multiple processes using subprocesses. In the business process, there’s an element where I can retrieve the values for the total processes, completed processes, and terminated processes. However, these values are always showing as 0, even though there are completed processes.

Is there something wrong with my configuration below?

 

element parameter


 

subprocessnotificationprocess logpush notif

Like 0

Like

1 comments

That works for me, but it does require not running the subprocesses in the background (which I can see from your screenshot that you're not)

Show all comments

Hi Community,

In freedom UI, Is it possible to change the input length for the phone number field when the Display input mask option is enabled?

In Indonesia, mobile phone numbers typically have a length of 10 to 12 digits (without the mask), but when the option is checked, users can only enter up to 9 digits.

input phone number

Thanks!

Like 0

Like

1 comments

Hello,

Our R&D team has already started a task to add new phone masks functionality which will be implemented in 8.3.0 version release.

For now, as a workaround, we suggest disabling the mask check in the phone number (in the designer).
image (3).png

We apologize for any inconvenience this may cause. 
Thank you for choosing Creatio!

Show all comments

Hi everyone,

I’ve been facing some challenges when working with business rules in Freedom UI and wanted to share a specific case to see if anyone has found a solution.

In the Products In Orders page, I need to block certain fields (e.g., Field A, B, C) based on the status of the related Order. For example, if the Order.Status = “Approved”, those fields should become non-editable.

However, in Freedom UI business rules, it seems that we cannot reference fields from related objects (like Order.Status) directly in the IF condition. This was previously possible in Classic UI, where we could create conditions based on fields from related objects.

Has anyone found a workaround for this in Freedom UI that doesn't require custom code?

Thanks in advance for your help!

Like 0

Like

1 comments

Hello,

Unfortunately, it is not currently possible to use data from related objects to set up business rules. However, the responsible R&D team is already working on implementing this functionality in future releases, although we can't provide any exact ETA yet.

Thank you for your question!

Show all comments

Hey Community 
I'm trying to implement a use case where the visibility of a particular stage in the DCM flow bar can be manipulated. I did observe that the Qualify status object ( which has a link to lead) has a column called IsDisplayed . How does this work ? (Is it only for setting the values in the flow bar or can the visibility be dynamically controlled as well ?).
I'm looking to implement this in a custom section.

Like 0

Like

3 comments
Best reply

sprity,

You should be able to achieve your business idea by simply creating several Cases (https://academy.creatio.com/docs/8.x/no-code-customization/bpm-tools/dy…) depending on a value of some field.

Unfortunately, it is not possible to dynamically show/hide some stages within one Case. 

Hello,

Please describe in more detail how exactly you expect this logic to work.

Mira Dmitruk,
 

Hey ,
Let’s say you have a stage lookup, a custom section (e.g. Product), a related configuration section (e.g. Product Config), and a detail (Stage Config) inside the Product section that maps which stages apply to each product.

For example:

  • Product A is configured with Stages 1, 2, and 3
  • Product B has Stages 1, 2, 3, and 4

So when a user is working with Product A, the DCM (progress flow bar) should not display Stage 4

sprity,

You should be able to achieve your business idea by simply creating several Cases (https://academy.creatio.com/docs/8.x/no-code-customization/bpm-tools/dy…) depending on a value of some field.

Unfortunately, it is not possible to dynamically show/hide some stages within one Case. 

Show all comments

Hello,

on freedom-ui, i would like to add a custom sidebar component, to handle phone calls notes.
When a call is over, the sidebar would open to let the user enter some notes about it.

So far i made an angular app to test, according to this guide :
https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platfor…


Now that my angular app is ready to upload, it seems i can't do it because our creatio development instance is not deployed on-site : the system cannot be used with file system development.
(https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platfor…)


Is there any workaround for this ?

Should i try to make it in a different way ?


Best regards.
Patrice

Like 0

Like

7 comments

Great ! Many thanks Ryan, i will try it.

mmm, i cannot create clio workspace : "Error running command ClioSQL.createw: Command failed: clio createw . This is likely caused by the extension that contributes ClioSQL.createw."

I tried to reinstall .NET 8 / clio 8.0.1.32 /  clio-explorer, but no luck :/

Have you installed the correct clio tool? There are other tools available for installation with the .NET tool. Did you use 

dotnet tool install clio

and what is your output for this command:

clio ver

I installed clio with "dotnet tool install clio -g"
the output of clio ver is :
[INF] - clio:   8.0.1.32
[INF] - gate:   2.0.0.34
[INF] - dotnet:   8.0.14
[INF] - settings file path: C:\Users\myuser\AppData\Local\creatio\clio\appsettings.json

Hello,

try running clio createw manually (via terminal in your project directory). If you get an error, the output will provide more details (e.g., missing parameters, authentication issues, or misconfiguration).

Thanks for the tip, i finally could create workspaces : 
it was an appsettings.json issue, the environment id was incorrect in that place. 

Show all comments

Hi Creatio Community,

We're encountering a puzzling issue on a Freedom UI List Page (specifically, our Invoices_ListPage) when trying to run a business process (IWVoid_API_POST) using a custom JavaScript handler. The goal is to test the business process by explicitly passing a hardcoded InvoiceId, as requested for a specific testing scenario where the button is not on the individual record's form page.

Our Setup:

  1. The Button (Menu Item on List Page's ActionButton):

    We've added a crt.MenuItem to the ActionButton on our Invoices_ListPage. This menu item is intended for testing and is configured to trigger a custom handler:

    JSON

     

    // In viewConfigDiff of Invoices_ListPage.js
    {
        "operation": "insert",
        "name": "TargetVoidButton", //
        "values": {
            "type": "crt.MenuItem",
            "caption": "Test Void BP (Hardcoded ID)", 
            "icon": "debug-icon",
            "visible": true,
            "clicked": {
                "request": "crt.HandleButtonClickRequest",
                "params": {
                    "buttonName": "RunTargetVoidProcessHandler" 
                }
            }
        },
        "parentName": "ActionButton",
        "propertyName": "menuItems",
        "index": 3 
    }
  2. The Handler (in handlers array of Invoices_ListPage.js):

    This handler is designed to run the IWVoid_API_POST process with a specific, hardcoded InvoiceId.

    JavaScript

     

    // In handlers array of Invoices_ListPage.js
    {
        request: "crt.HandleButtonClickRequest",
        handler: async (request, next) => {
            if (request.buttonName === "RunTargetVoidProcessHandler") { 
                console.log("RunTargetVoidProcessHandler triggered.");
                Terrasoft.showInformation("Test: Running process with hardcoded ID. Check console.");
     
                const processName = "IWVoid_API_POST";
                const hardcodedInvoiceIdForTest = "3c2b6d9f-4c1e-4364-99f2-53956562b606"; 
                const parameterNameInProcess = "InvoiceId"; 
     
                console.log(`Test: Attempting to run BP '<span class="math-inline">\{processName\}' with EXPLICIT HARDCODED ID '</span>{hardcodedInvoiceIdForTest}' for parameter '${parameterNameInProcess}'.`);
     
                try {
                    const response = await request.$context.executeRequest({
                        type: "crt.RunBusinessProcessRequest",
                        params: {
                            processName: processName,
                            processParameters: {
                                [parameterNameInProcess]: hardcodedInvoiceIdForTest
                            },
                            saveAtProcessStart: false, 
                            showNotification: true 
                        }
                    });
     
                    console.log("Test: BP execution request completed. Response:", response);
     
                    if (response && response.success === true && response.processId && response.processId !== '00000000-0000-0000-0000-000000000000') {
                        const successMsg = `Test: BP '${processName}' (ID: ${response.processId}) initiated. Check Process Log.`;
                        console.log(successMsg);
                        request.$context.showInformationDialog?.(successMsg);
                    } else {
                        let errorMsg = `Test: Failed to start BP '${processName}'.`;
                        let serverDetails = (response && response.errorInfo && response.errorInfo.message) ? response.errorInfo.message : "Details unavailable or process not found (zero ID / success:false).";
                        errorMsg += ` ${serverDetails}`;
                        console.error(errorMsg, "Full response:", response);
                        request.$context.showErrorDialog?.(errorMsg);
                    }
                } catch (error) {
                    console.error(`Test: Exception for BP '${processName}':`, error);
                    let exceptionMsg = (error instanceof Error && error.message) ? error.message : "Client-side exception.";
                    if (error.errorInfo && error.errorInfo.message) {
                        exceptionMsg = error.errorInfo.message;
                    }
                    request.$context.showErrorDialog?.(`Test: Error triggering BP: ${exceptionMsg}`);
                }
                return; 
            }
            return next?.handle(request);
        }
    }

The Problem:

When we click the "Test Void BP (Hardcoded ID)" menu item, the handler triggers, and the client-side logs show the crt.RunBusinessProcessRequest is being prepared correctly with processName: "IWVoid_API_POST" and the hardcoded InvoiceId.

However, the server responds with:

{
  processId: '00000000-0000-0000-0000-000000000000', 
  processStatus: 0, 
  resultParameterValues: null, 
  executionData: null, 
  success: false, 
  errorInfo: {
    errorCode: "ItemNotFoundException",
    message: "Item process schema \"\" not found.", // Note the empty quotes for schema name
    stackTrace: null
  }
}

The key error is <strong>Item process schema "" not found.</strong>

What We've Tried:

  • Confirmed the schematic name (Code) of our business process is indeed IWVoid_API_POST.
  • Confirmed the input parameter in the BP designed to take the ID is named InvoiceId.
  • Repeatedly saved, compiled, and published the IWVoid_API_POST business process and ensured it's marked as "Active."
  • Checked the package containing the process for any errors and recompiled the package.
  • Performed thorough browser cache clearing and hard refreshes (Ctrl+F5).
  • We also have another menu item on the same list page ("VoidInvoice") that uses a declarative crt.RunBusinessProcessRequest with processRunType: "ForTheSelectedRecords" and parameterMappings: { "InvoiceId": "Id" }. When a record is selected and this menu item is clicked, it successfully starts the <strong>IWVoid_API_POST</strong> process (verified in Creatio Process Log with a non-zero instance ID). This makes the current error even more puzzling.

Our Questions for the Community:

  1. Why would the ProcessEngineService report Item process schema "" not found (with empty quotes for the schema name) when the processName: "IWVoid_API_POST" is explicitly and correctly provided in the params of crt.RunBusinessProcessRequest from our custom handler?
  2. Is there any known difference in how process names are resolved or how schemas are looked up by the server when crt.RunBusinessProcessRequest is invoked programmatically from a handler with processParameters explicitly set (using a hardcoded ID), versus when it's invoked declaratively with processRunType: "ForTheSelectedRecords" or processRunType: "ForTheSelectedPage"?
  3. Are there any deeper caching mechanisms (server-side, metadata) or specific registration steps for business process schemas that we might be missing, which could lead to this behavior only for the explicit parameter call?
  4. Has anyone encountered a similar situation where a process is findable/runnable via one SDK invocation method (declarative, context-based) but not another (programmatic handler, explicit parameters) from the same Freedom UI page type?

We are unable to access detailed server-side application logs for this specific environment at the moment, which is hampering deeper diagnosis from our end.

Any insights, suggestions, or similar experiences would be greatly appreciated!

Thank you!

Like 0

Like

1 comments

Hi Andrew,

The behavior you described where the system responds with Item process schema "" not found despite providing the correct process name can occur when certain required parameters are missing during the execution of a business process from a handler. Specifically, when using crt.RunBusinessProcessRequest from a crt.HandleButtonClickRequest handler, the backend expects additional context that is typically provided automatically during declarative invocations.

To ensure that the process schema is correctly identified and executed, it is important to explicitly include the processRunType, the recordIdProcessParameterName. These parameters provide the necessary linkage between the UI context and the process runtime.

Below is an example of a working implementation where a business process is successfully launched from a button on a Freedom UI page. The button configuration and handler explicitly define all required fields:

Button configuration:
{
 "operation": "insert",
 "name": "Button_7y0uys4",
 "values": {
   "layoutConfig": {
     "column": 1,
     "row": 2,
     "colSpan": 1,
     "rowSpan": 1
   },
   "type": "crt.Button",
   "caption": "#ResourceString(Button_7y0uys4_caption)#",
   "color": "outline",
   "disabled": false,
   "size": "large",
   "iconPosition": "only-text",
   "visible": true,
   "clicked": {
     "request": "crt.HandleButtonClickRequest",
     "params": {
       "buttonName": "RunTestProcess",
       "processName": "UsrTestProcessInvoiceAdded",
       "processRunType": "ForTheSelectedPage",
       "recordIdProcessParameterName": "InvoiceId"
     }
   }
 },
 "parentName": "SideAreaProfileContainer",
 "propertyName": "items",
 "index": 1
}

Handler logic:
{
 request: "crt.HandleButtonClickRequest",
 handler: async (request, next) => {
   if (request.buttonName === "RunTestProcess") {
     const handlerChain = sdk.HandlerChainService.instance;
     const result = await handlerChain.process({
       type: "crt.RunBusinessProcessRequest",
       processName: "UsrTestProcessInvoiceAdded",
       processRunType: "ForTheSelectedPage",
       recordIdProcessParameterName: "InvoiceId",
       $context: request.$context
     });

     if (result.success) {
       console.log("The process was successfully executed!");
     } else {
       console.log("Exception: " + (result.errorInfo?.message || "Unknown issue"));
     }

     return;
   }
   return next?.handle(request);
 }
}

Answers to your questions:

1. Why would the ProcessEngineService report Item process schema "" not found (with empty quotes for the schema name) when the processName: "IWVoid_API_POST" is explicitly and correctly provided in the params of crt.RunBusinessProcessRequest from our custom handler? 

- This usually happens if processRunType, recordIdProcessParameterName are not passed when triggering the process from a handler. These parameters are essential for correctly resolving the process schema in the runtime context.

2. Is there any known difference in how process names are resolved or how schemas are looked up by the server when crt.RunBusinessProcessRequest is invoked programmatically from a handler with processParameters explicitly set (using a hardcoded ID), versus when it's invoked declaratively with processRunType: "ForTheSelectedRecords" or processRunType: "ForTheSelectedPage"? 

- Yes. In declarative calls, Creatio automatically adds all required metadata. In programmatic calls (handlers), this metadata must be passed manually, especially processRunType and recordIdProcessParameterName.

3. Are there any deeper caching mechanisms (server-side, metadata) or specific registration steps for business process schemas that we might be missing, which could lead to this behavior only for the explicit parameter call? 

- In general, no special registration is required if the process is active and compiled. However, if the process was recently created or modified, reload the page and make sure that the changes in the process were saved.

4. Has anyone encountered a similar situation where a process is findable/runnable via one SDK invocation method (declarative, context-based) but not another (programmatic handler, explicit parameters) from the same Freedom UI page type?

- Yes, this can happen if the required context parameters are not included in the handler call. Declarative calls handle this automatically, whereas in handlers you must explicitly set them.

Show all comments

Hello,

I tried to change the width of one of my Freedom UI mini pages, by adding the code below to the page. When I opened from the designer, it has the width that I want for a few seconds before changing back to the default width. What I'm missing?

Thanks,

Jose

 

          {
                "operation": "merge",
                "name": "Main",
                "values": {
                    "fitContent": true,
                    "layoutConfig": {
                        "width": 840
                    }
                }
            },

 

Like 0

Like

2 comments
Best reply

There's a feature you can add/enable called "EnabledAppearanceSettings" that turns on the ability to choose different sizes for the modal/mini pages. See more here: https://customerfx.com/article/changing-the-size-of-freedom-ui-modal-mi…

  1. Go to https://[creatiourl/0/flags
  2. Search to see if you have the feature named "EnabledAppearanceSettings" (you won't have it, but just to make sure. If not, click Add to add it, enter:
    1. Code = EnabledAppearanceSettings
    2. Enabled = checked
    3. Save, then click Clear Cache
  3. Now when you open the designer for a modal/mini page, you'll see some size options

Ryan

There's a feature you can add/enable called "EnabledAppearanceSettings" that turns on the ability to choose different sizes for the modal/mini pages. See more here: https://customerfx.com/article/changing-the-size-of-freedom-ui-modal-mi…

  1. Go to https://[creatiourl/0/flags
  2. Search to see if you have the feature named "EnabledAppearanceSettings" (you won't have it, but just to make sure. If not, click Add to add it, enter:
    1. Code = EnabledAppearanceSettings
    2. Enabled = checked
    3. Save, then click Clear Cache
  3. Now when you open the designer for a modal/mini page, you'll see some size options

Ryan

Ryan Farley,

Thanks. That's exactly what I was looking for.

Show all comments

Hello

I'm trying to mark a boolean as required, but that option doesn't appear in the settings.

Does anyone know how I can mark the checkbox as required?

Fig. 1 Set up a Checkbox field

 

Thank you. 

 

Like 0

Like

2 comments

Making a checkbox required would only mean it can be checked (since there's no difference between unchecked and not filled in). Alternative approach is to use a lookup with Yes/No values (since then there is also a not filled in)

Hello Ryan Farley,

What happens is that I have a set of questions with three answer options each, and for each question, only one option needs to be filled out. I have a business rule that marks the boxes as required, but when one of them is selected, it disables the other two and makes them optional. The problem is that once you select a box and uncheck it, the required  disappears, allowing you to save with the three options blank. That's why I want to make the checkboxes required from the configuration.

 

And the reason for the checkboxes is that I require the checkmarks to appear in the Word report.

 

 

 

Show all comments

Dear,

On the Classic UI we could have a thumbnail of the images in the browser:

Classic UI

But in Freedom the picto is not display:

Freedom UI


Is it possible to display the image thumbnail directly in the browser with Freedom UI?

Thank you !
Nicolas

Like 0

Like

4 comments

Hello,

Unfortunately, currently this is not possible with the out-of-the-box solution. 
If you want to display a certain image for the record, for example company logo for the account record, you can use an Image component.


You can also consider using the following marketplace solution: https://marketplace.creatio.com/app/banza-files-extended-creatio?check_…

I hope this helps! If you have any further questions or need assistance, feel free to reach out.

I have a marketplace addon coming that does this, it is still awaiting the approval for the marketplace to publish the addon - it takes a very long time for them to approve things 👎🏻 - hopefully it will be published soon. 

Hello Nicolas,

The add-on that displays image previews in the attachment list is now available in the marketplace: https://marketplace.creatio.com/app/image-previews-creatio

Ryan

Thank you Ryan
This is exactly what we needed !

Show all comments

Hi Community,

I’m customizing a detail/list view in Creatio where each row includes fields like A1, A2, A3. One of the fields is a single text field, and I want to style individual words within this field — for example, giving each word a different background color.

This is similar to how the multi-select lookup component shows selected values with separate styling (like colored tags). I’m trying to recreate that effect for a regular text field in the list view.

To clarify:

  • I already know how to inject custom CSS using modules and global CSS variables
  • What I’m looking for is a way to apply styling dynamically at runtime, depending on the text content

Thanks in advance for your help!

Like 0

Like

2 comments

CSS alone doesn't work that way. You can't style single word within the same text using CSS. You'd need to manipulate the text so that each word would be wrapped in it's own span/div to be able to style them that way.

Show all comments