Hello Community,

I’m trying to bind a system setting to a package with its value set as an empty string.

I added the system setting with an empty Text value in the package, but during installation, I'm encountering a JavaScript error when attempting to read the value from the same system setting field.

Has anyone faced a similar issue, or is there a proper way to bind an empty string in system settings within a package?

Thanks in advance!

Like 1

Like

4 comments

Hello!

In Creatio, there are 2 tables for system settings: one for system setting itself and other for system setting value. If you don't have value for system setting, then you can bind only system setting itself to a package. I never faced error during installation of package with bind of system setting without system setting value.

In your case, did you bind empty system setting value to a package or only system setting?

Hello Khassan Khakak,

Thank you for your response.

In my case, I had bound both the system setting and the corresponding system setting value to the package, with the value set as an empty string (Text Value). After installing the package in a fresh org, The page that tries to read the system setting value using JavaScript in Freedom UI handlers throws an error.

As per your suggestion, I tried binding only the system setting without the SysSettingsValue entry, but it still resulted in the same error.

Appreciate your input!

Best regards,
Ajay

What is the error you get?

Ajay,

What is the error and what does the code look like that is reading it?

Show all comments

Hi, we modified our application logo in Logo Customization page.

Now we want to export the logo in the application package to import it in another environment. What are the steps to achieve this result?

Like 0

Like

2 comments

Can you clarify which logo you're referring to? If it's the Creatio logo image, those are stored in system settings. Search for logo in system settings and you'll see the settings those are stored in.

Ryan

Ryan Farley,

I refer to the logo you configure from here: logo customizationlogo

Are they also saved in system settings?

Show all comments

Dear All,

Would you know when the add-on Advanced list setup for Creatio is going to be redeveloped for Freedom UI? 

The use case is to customize section list view for a specific folder in FUI for an individual user. 

https://marketplace.creatio.com/app/advanced-list-setup-creatio

Best Regards,
Jacek 

Like 0

Like

2 comments
Best reply

There is already some of the functionality mentioned in that marketplace addon built into Freedom UI - the ability to set up the lists for specific folders is possible OOTB. All you need to do is go into a folder, click the 3 dot menu on the list selecting `Save list settings for "Folder Name"`, and then you can change the column setup to how you want it to be for that folder:

Just as a note, you have to do the "Save list settings for X" step before you start making changes to the column setup, as any changes made before clicking that button would be made for the "base" column setup until a specific list settings is saved for that folder.

There is already some of the functionality mentioned in that marketplace addon built into Freedom UI - the ability to set up the lists for specific folders is possible OOTB. All you need to do is go into a folder, click the 3 dot menu on the list selecting `Save list settings for "Folder Name"`, and then you can change the column setup to how you want it to be for that folder:

Just as a note, you have to do the "Save list settings for X" step before you start making changes to the column setup, as any changes made before clicking that button would be made for the "base" column setup until a specific list settings is saved for that folder.

Harvey Adcock,

Thank you Harvey. Appreciate your time and helping out with this topic! Have a great day!

Show all comments

Hi,

I have a requirement to use the files uploaded to an account record in an AI skill. I tried with multiple prompts but everytime it says no files are found for the account record. I even mentioned to get the files from AccountFile(that's where the files are being saved when uploading files using attachments section) but still no luck.

Has anyone tried this? I didn't find any documentation related to this.

Like 0

Like

5 comments

Here's the prompt I tried

Summarize the details of all documents attached to an account. The documents are retrieved using the account name from the AccountFile table. Include the document names, creation dates, last modified dates, and any available notes. Highlight any key differences or unique attributes of the documents.


## Process Flow
Process Flow Steps
1. Retrieve Documents:
Use the AccountFile table to search for documents associated with the account id.
Ensure all relevant document details, such as name, creation date, last modified date, and notes, are retrieved.
Analyze Document Data:

2. Extract key attributes of each document (e.g., name, timestamps, notes).
Identify any unique characteristics or differences between the documents.
Generate Summary:

3. Create a concise summary of the documents, including:
Document names.
Creation and last modified dates.
Notes or additional metadata.
Highlight any notable differences or unique attributes.
Present Results:

Provide the summarized details in a clear and structured format.
Ensure the output is user-friendly and easy to understand.

Below are the responses.

It seems there are no attachments currently available for the account "Our company". If you need assistance with uploading or managing attachments, feel free to ask!

I verified the account attachments by using the "Get Documents Content" function, which retrieves the available documents or attachments associated with the account. The result indicated that there are no attachments currently available for the account "Our company". If you need further assistance or want to upload attachments, let me know! 

Hi!

Thank you for your question. To make the AI Skill work with files attached to an Account record (via the AccountFile object), it’s not enough to simply refer to the file source in the prompt — this approach alone will not work.

Recommendation:
We suggest creating a dedicated action or business process that will pass the required files or their content to the AI Skill. Only this way can the AI effectively access and analyze the data.

We also recommend reviewing the following articles on the Creatio Academy:

Best practices for AI skill development

Creatio AI architecture

Thank you for contacting Creatio Support!

Valeriia Ripnevska,

Why is it that the out of the box AI Skill "Get Documents Content" is unable to see the documents? What specifically is that skill looking at?

Valeriia Ripnevska,

Thanks for the response. In that case I have to create a business process which will take the account id, get all the files, extract the content and refer that content in AI skill. 

It would be really helpful if you can suggest a way to extract the content from the file !

Ryan Farley

Its looking in the File table but its supposed to look in the AccountFile table in this case.. that link is missing.

Show all comments

Hi, 

I wrote a customer webservice and returning a simple string message (screenshot below). But customer don't like this page and want something like Thank you page or pop up. Can anyone suggest how to solve this?

Thanks in advance. 

Like 0

Like

1 comments

You can return an HTML page from a web service as shown here: https://customerfx.com/article/returning-an-html-page-from-a-creatio-configuration-service/

Ryan

Show all comments

Hi!

I’m working on a Freedom UI Activities page where I display a registry of certificates as an editable list. One of the columns in this list is an Activity lookup, and I need to restrict that lookup to show only the current Activity (i.e. the one tied to the page).

So far, I’ve tried:

Implementing handlers for crt.OpenSelectionWindowRequest and crt.LoadDataRequest to log requests, but these only fire for fields outside the editable list.

Inspecting the Network tab: when I open the lookup dropdown, I see a SelectQuery against rootSchemaName":"Activity" with a filter, but I can’t find where to inject my custom filter for the editable list.

Question:
Does anyone have an example or best practice for applying a filter to a lookup column inside an editable list on a Freedom UI page? Specifically, I need the Activity lookup to return only the activity record corresponding to the parent page when the user clicks the field.

Thank you in advance for your help!

Like 0

Like

0 comments
Show all comments

I am asking this because, I have an use case where a single data model requires to have triggers setup for multiple business processes. Is there any best practice regarding this like making a main process that will have all the triggers and run sub processes (multiple) based on what field is changed/added?
My current solution will be having all the process as having there own signals but I am afraid if this will slow down my creatio instance.

Thanks. 

Like 0

Like

2 comments
Best reply

Hello,

In Creatio, signals are event-driven triggers used to start business processes when a particular event occurs on an object, typically the addition, update, or deletion of a record. When a process contains a signal element, it essentially subscribes to a specific system event. When that event is raised, Creatio evaluates all matching subscriptions and initiates the corresponding processes.

In the case where several processes need to respond to changes on the same object but based on different business tasks (such as changes to specific fields), there are generally two architectural approaches. One is to define separate business processes, each with its own signal element. These processes start independently whenever the triggering event occurs and include internal logic to determine if they should proceed based on the field changes. The other is to design a single process with a more general signal and then route the execution flow internally, either through conditional logic or by invoking subprocesses depending on which fields were modified.

Both methods are valid and widely used in different Creatio implementations. The choice between them often depends on the nature of the business logic, the level of process reuse, and how centralized you want the control and evaluation logic to be. Having separate processes allows for more modular and decoupled logic, which can be beneficial for maintainability. A unified dispatcher-style process offers better coordination and visibility but may introduce more complexity up front.

From a performance perspective, it’s important to note that the number of signal-based triggers alone is not typically the main factor that impacts system performance. Rather, it is the overall process design, how much logic is executed, whether service calls are involved, and how efficiently process elements are structured. In environments using RabbitMQ, Creatio is more likely to offload process execution to the background automatically.

If you encounter any issues with a specific process or signal behavior, we recommend creating a support ticket via the Success Portal. Our support team will assist in analyzing and resolving the issue.

Hello,

In Creatio, signals are event-driven triggers used to start business processes when a particular event occurs on an object, typically the addition, update, or deletion of a record. When a process contains a signal element, it essentially subscribes to a specific system event. When that event is raised, Creatio evaluates all matching subscriptions and initiates the corresponding processes.

In the case where several processes need to respond to changes on the same object but based on different business tasks (such as changes to specific fields), there are generally two architectural approaches. One is to define separate business processes, each with its own signal element. These processes start independently whenever the triggering event occurs and include internal logic to determine if they should proceed based on the field changes. The other is to design a single process with a more general signal and then route the execution flow internally, either through conditional logic or by invoking subprocesses depending on which fields were modified.

Both methods are valid and widely used in different Creatio implementations. The choice between them often depends on the nature of the business logic, the level of process reuse, and how centralized you want the control and evaluation logic to be. Having separate processes allows for more modular and decoupled logic, which can be beneficial for maintainability. A unified dispatcher-style process offers better coordination and visibility but may introduce more complexity up front.

From a performance perspective, it’s important to note that the number of signal-based triggers alone is not typically the main factor that impacts system performance. Rather, it is the overall process design, how much logic is executed, whether service calls are involved, and how efficiently process elements are structured. In environments using RabbitMQ, Creatio is more likely to offload process execution to the background automatically.

If you encounter any issues with a specific process or signal behavior, we recommend creating a support ticket via the Success Portal. Our support team will assist in analyzing and resolving the issue.

Nick Ovchynnik,

Thank you for the reply. I will keep implantations simple for now, hopefully no performance impact (fingers crossed) 

Show all comments

Hi Creatio Community,

I’m working on a Freedom UI page in Creatio (v8.2.x) and trying to implement the following scenario:

  • I have a detail (DataGrid) with a list of certificates on the Activity page.
  • I’ve also added a custom button to the page.
  • When the user selects several records from the detail and clicks the button, I want to:
    • Get the selected records (certificate IDs),
    • Get the ID of the current activity (parent page),
    • Pass both as input parameters to a business process (to link the selected certificates to the activity).

Using no-code tools alone, I was only able to pass either the collection or the current page ID, but not both at the same time.

Has anyone implemented a similar case?
Would appreciate any working example or best practices for this scenario.

Thanks in advance!

Like 0

Like

3 comments

If you pass the collection from the list, you have the parent ID already since it would have to exist in the list data. You should be able to get the parent ID by just reading the child data. 
Ryan 

Ryan Farley,

Hi Ryan, thank you for your reply!

You're right that if the certificates already had a reference to the activity, I could extract the parent ID from the collection itself.

However, in my case, the selected certificates do not yet have any relationship with the activity. The grid simply displays certificates (filtered by Account), but there’s no link between each certificate and the current activity record.

What I’m trying to do is:

  • Let the user select multiple certificates from this grid,
  • Then click a button to run a business process that will create the relationship between these certificates and the current activity,
  • Which means I need to pass both:
    1. The selected certificate IDs,
    2. And the ID of the current activity page (which isn’t available in the certificate records).

So unfortunately, I can’t infer the parent ID from the child records — I need to explicitly pass both.

If you've come across a similar case in Freedom UI (v8.2+) and have any suggestions on how to pass both parameters to the process, I’d really appreciate it!

Thanks again

Віталій Поліщук,

I see. I would assume it's possible to do via code, but I've not looked at how to pass a collection. I'd start with seeing what the request looks like for adding multiple rows to the process from the page designer, then see if you can duplicate that via code, getting the selected rows using: 

const selectedIds = (await request.$context.DataTable_SelectionState).selected;

(Change "DataTable" to your list name)

Show all comments

Hello,

With 8.2.3, the Landing Page Designer allows me to create a Landing Page with a form, export in HTML, publish it on my domain name.

The page and forms works well and a NEW submitted form record & contact are created in the CRM.

After submitting the form, the message displayed on the screen is as followed:
 

 

Where and How can we customize the message  OR  redirect to a Thank YOU page ?

 

PS : the version field when creating this POST has only 8.0 as an option.

Like 0

Like

4 comments

For now that is hardcoded in the javascript that Creatio includes with the form from https://webtracking-v01.creatio.com/JS/crt-landing-page.js

If you're self-hosting the form, you could save that script as your own copy and change the script tag in the form to use yours instead of the Creatio one, then modify it there. 

Ryan

Ryan Farley,

Outch….I’ve been doing Landing Pages for over 20 years with various softwares. Hard to believe that we can’t control the On Submit button  other than hardcoded JavaScript.

Can I suggest that you add the feature of redirecting to another page (Thank You or any url) within the coming release?

It’s a pretty basic Landing Page feature.

Francois Breault,

I agree, seems a bit short-sided. Hopefully they add that, I assume they will at some point (I don't work for Creatio, but I'm sure they'll see your suggestion to add that as a feature in your comment here). 

Hello,

Thank you for your question.

Currently, it is not possible to change the text that appears after a form submission in the Landing Pages module on a per-page basis. This text is fixed in the system and cannot be customized individually for each landing page.

However, we have registered this idea in our R&D team backlog for consideration and potential implementation in future releases of the application. We appreciate your feedback and your help in improving our product.

If you have any other questions or need further assistance, please feel free to reach out.

Show all comments

Hi all,

I have a process where a user selects a contact folder from a list on a preconfigured page. A sub process then needs to run for each contact in the selected folder.

I've read the article for Programmatically Using Section Folder Filters in Processes or Server-Side Code in Creatio | Customer FX and I have borrowed a script task for creating the list of contacts.

var sectionName = "Contact";
var folderId = "2d3c0306-1e43-4ba7-943b-a3d261b66897"; //I will pass this in from the preconfigured page
 
// get folder SearchData
var folderSchema = UserConnection.EntitySchemaManager.GetInstanceByName(sectionName + "Folder");
var esq = new EntitySchemaQuery(folderSchema);
var dataCol = esq.AddColumn("SearchData").Name;
var folderData = esq.GetEntity(UserConnection, folderId).GetBytesValue(dataCol);
 
// convert filter data to esq filters
var serializedFilters = System.Text.Encoding.UTF8.GetString(folderData, 0, folderData.Length);
var dataSourceFilters = Terrasoft.Common.Json.Json.Deserialize<Terrasoft.Nui.ServiceModel.DataContract.Filters>(serializedFilters);
 
// MUST INCLUDE using Terrasoft.Nui.ServiceModel.Extensions;
var folderFilters = dataSourceFilters.BuildEsqFilter(UserConnection.EntitySchemaManager.GetInstanceByName(sectionName).UId, UserConnection);
 
// now can include folderFilters as filters in new esq
var contactEsq = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "Contact");
contactEsq.AddColumn("Id");
contactEsq.Filters.Add(folderFilters); // using the filters from the folder
var contacts = contactEsq.GetEntityCollection(UserConnection);

I would like to either pass the results into a collection or run a sub process for each contact directly from the script task.

Any help would be much appreciated,

Like 0

Like

1 comments

An easy way to accomplish what you're after is to: 

  1. Create a collection parameter in the process
  2. Populate the contacts from the ESQ into the collection parameter (see link below)
  3. Then use normal subprocess for each contact in the collection

See here for how to add the results of the ESQ from the folder to a collection param: https://customerfx.com/article/working-with-collection-parameters-in-a-process-in-creatio/

Ryan

Show all comments