What is the best filter to use to measure FCR for cases?

Like 1

Like

1 comments

Hello,

 

The First Resolution time cannot be changed using the OOTB tools.

However, perhaps I have misunderstood your question.

Could you please specify what do you mean by using the filter to measure FCR for cases?

 

 Thank you! 

Show all comments

Hello community 

What do you suggest to start a new Creatio project, use the setup file for .NET Framework or start with NET 8?

Like 0

Like

4 comments

Dear Stefano, 

The decision to start the new Creatio project with the .NET Framework or with .NET 8 is entirely up to you. We support both options, so feel free to choose the one that best suits your needs. For additional guidance, you can use the system requirements calculator here: Creatio System Requirements Calculator.

Hanna Shevchenko writes:

Dear Stefano, 

The decision to start the new Creatio project with the .NET Framework or with .NET 8 is entirely up to you. We support both options, so feel free to choose the one that best suits your needs. For additional guidance, you can use the system requirements calculator here: Creatio System Requirements Calculator.

Do all marketplace addons work with both frameworks?

Vladimir Sokolov,

Hi!

 

Unfortunately, not all marketplace add-ons are compatible with both platform types. Some are designed specifically for .NET Framework, while others are compatible only with .NET. However, some add-ons do support both platform types.

To check compatibility, you can refer to the "Installation" tab on the marketplace page, where the available platform types are listed.

You might want to set up in .net 8 . Creatio 8.2.1 release notes : ".NET 6 deprecation. Since Microsoft ended official support for .NET 6 in November 2024, starting from version 8.2.1 Creatio no longer supports .NET 6 and switches to .NET 8."  https://academy.creatio.com/docs/8.x/resources/release-notes/8-2-1-energy-release-notes#title-2782-14 

Show all comments
Question

Hi,

I'd like to know is it possible to have the log history of all export record by users and time in Creatio. I only know there is a setting of export permission in the object permission.

Jeffrey. 

Like 0

Like

1 comments

Hello Jeffrey, 

Unfortunately, there is no possibility to track down the information about exports from the CRM system.
We have already registered the idea for our R&D team to implement this functionality in further releases. 

Thank you for your valuable help in improving our product!

Show all comments

We have created a Quotation tab on the Lead page in Creatio. This tab displays the plan options. Here's the scenario:

When a user selects a Plan from the detail object and clicks Next,


The system should display values related to the selected plan within the same tab.

These related plan values should be displayed as a detail object so that the user can select the desired Sub-Plan.

 

 

Is it possible to implement this functionality using Business Processes or any other method within Creatio? If yes, could you guide me on the best approach?

 

Like 0

Like

1 comments

Hello,
 

A business process cannot cover such a business task, as business processes cannot change the view of the page you are on. You can configure the business process to start on a button for the page, in which you will pass the selected record as a parameter, but the business process in turn will already open a new page (that are available in terms of business processes) where you can already filter the records based on the selected option.

We believe that to achieve this behavior, you will need to consider developing at the client module level. From the screenshots provided, it looks like this is a FreedomUI page, so we recommend that you have a look at the materials on Creatio Academy for development:
1) https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platform/category/freedom-ui
2) https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platform/freedom-ui-customization

Thank you.
 

Show all comments

I need a way to prevent user from leaving the page, but only when he clicks on sections menu. 

 

i need to show a popup message with a question, and only after then allow or deny from navigation from the page. is that possible? 

 

Like 0

Like

1 comments

Hello!

 

At the moment, unfortunately, there is no out-of-the-box (OOTB) functionality available in Creatio to achieve this. The only option for implementing this feature is through custom development.

 

We have already submitted a request to our R&D team to consider adding this functionality in future versions of Creatio.

 

We truly appreciate your feedback, and thank you for helping us improve our product!

Show all comments

Hello, community

 

The question regarding campaings running context: when a particular user starts a campaign, will it be executed in his|her role (rights) context, or it will be executed in the context of a some kind of system account (with full set of rights)?

 

I'm interesting in could the following situation appear: user had set up filter for the campaign audience, but after starting of the campaign more contacts were added in it (even those who are unavailable for the user)  due to extended rights of an account in which context the  campaign was started. 

Like 0

Like

1 comments

Hello,

 

In Creatio, campaigns are executed with the same permissions and access rights as the user who started them. This means that only the contacts the user has access to will be included in the campaign. The situation you described, where more contacts are added to the campaign audience, should not occur. 

Show all comments

Hi Community,

I encountered an error while trying to change the Default Page in an object.

 

 

Does anyone know what might be causing this issue or how to resolve it? Any insights would be greatly appreciated.

Thank you in advance!

Like 0

Like

1 comments

Hello,

The issue can occur if you have two add-ons with different names referring to the same object. This typically happens when the object was renamed, and a new add-on was generated as a result. Or if duplicate add-ons were created for the same object in one package.

I'm also adding an example of how the addon will look in the system:

 

In order to solve this problem, it is necessary:
1. Identify and Remove the Conflicting Add-On
2. After removing the conflicting add-on, regenerate and compile the system to ensure all settings are correctly applied.

This should resolve the issue and ensure consistent behavior for your Default Page settings.

Show all comments

I have the following script task in a bpm.
This is responsible for taking the results of this api and inserting the records into a Creatio object.

Script task:

 var baseUrl = "https://angelbaraldo.creatio.com";
    var authUrl = baseUrl + "/ServiceModel/AuthService.svc/Login";
    var apiUrl = baseUrl + "/0/rest/CustomStockService/GetNoConciliadosData";
    var username = "MyUser";
    var password = "MyPassword";
 
    // Cuerpo de autenticación
    var authBody = new
    {
        UserName = username,
        UserPassword = password
    };
 
    var authBodyJson = Newtonsoft.Json.JsonConvert.SerializeObject(authBody);
 
    // Solicitud de autenticación
    var authRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(authUrl);
    authRequest.Method = "POST";
    authRequest.ContentType = "application/json; charset=utf-8";
 
    using (var streamWriter = new System.IO.StreamWriter(authRequest.GetRequestStream()))
    {
        streamWriter.Write(authBodyJson);
    }
 
    string authCookies = null;
    string bpmcsrf = null;
 
    // Obtener la respuesta de autenticación
    using (var authResponse = (System.Net.HttpWebResponse)authRequest.GetResponse())
    {
        authCookies = authResponse.Headers["Set-Cookie"];
 
        // Buscar el token BPMCSRF en las cookies
        var cookies = authResponse.Headers.GetValues("Set-Cookie");
        if (cookies != null)
        {
            foreach (var cookie in cookies)
            {
                if (cookie.Contains("BPMCSRF"))
                {
                    bpmcsrf = cookie.Split('=')[1].Split(';')[0];
                }
            }
        }
 
        if (string.IsNullOrEmpty(authCookies) || string.IsNullOrEmpty(bpmcsrf))
        {
            throw new Exception("Autenticación fallida: no se obtuvieron cookies o token BPMCSRF.");
        }
    }
 
    // Solicitud autenticada a la API
    var apiRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(apiUrl);
    apiRequest.Method = "GET";
    apiRequest.ContentType = "application/json";
    apiRequest.Headers["ForceUseSession"] = "true";
    apiRequest.Headers["Cookie"] = authCookies;
    apiRequest.Headers["BPMCSRF"] = bpmcsrf;
 
    // Obtener respuesta de la API
    string apiResponseContent;
    using (var apiResponse = (System.Net.HttpWebResponse)apiRequest.GetResponse())
    {
        using (var streamReader = new System.IO.StreamReader(apiResponse.GetResponseStream()))
        {
            apiResponseContent = streamReader.ReadToEnd();
        }
    }
 
    // Parsear los datos de la API
    var jsonRecords = Newtonsoft.Json.JsonConvert.DeserializeObject<System.Collections.Generic.List<System.Collections.Generic.Dictionary<string, object>>>(apiResponseContent);
    // Procesar los registros (como en tu código original)
    var cantidadInsertados = 0;
 
    foreach (var record in jsonRecords)
    {
        var tipo = record.ContainsKey("Tipo") ? record["Tipo"]?.ToString() : null;
        var letter = record.ContainsKey("Letter") ? record["Letter"]?.ToString() : null;
        var cardCode = record.ContainsKey("CardCode") ? record["CardCode"]?.ToString() : null;
        var nroComprobante = record.ContainsKey("Nro Comprobante") ? record["Nro Comprobante"]?.ToString() : null;
        var nroOv = record.ContainsKey("Nro OV") ? record["Nro OV"]?.ToString() : null;
        var pymentGroup = record.ContainsKey("PymntGroup") ? record["PymntGroup"]?.ToString() : null;
        var docDate = record.ContainsKey("DocDate") ? record["DocDate"]?.ToString() : null;
        var vencimiento = record.ContainsKey("Vencimiento") ? record["Vencimiento"]?.ToString() : null;
        var docCur = record.ContainsKey("DocCur") ? record["DocCur"]?.ToString() : null;
        var docRate = record.ContainsKey("DocRate") ? record["DocRate"] : null;
        var debe = record.ContainsKey("Debe") ? record["Debe"] : null;
        var haber = record.ContainsKey("Haber") ? record["Haber"] : null;
        var debeUsd = record.ContainsKey("Debe USD") ? record["Debe USD"] : null;
        var haberUsd = record.ContainsKey("Haber USD") ? record["Haber USD"] : null;
 
        // Verificar si el registro ya existe
        var esq = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "AgbCuentaCteSocioNegocios");
        var idColumn = esq.AddColumn("Id");
        esq.Filters.Add(esq.CreateFilterWithParameters(FilterComparisonType.Equal, "AgbCuemtaCteNumeroComprobante", nroComprobante));
        var entityCollection = esq.GetEntityCollection(UserConnection);
 
        // Consultar la cuenta relacionada
        var esq2 = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "Account");
        var accountIdColumn = esq2.AddColumn("Id");
        esq2.Filters.Add(esq2.CreateFilterWithParameters(FilterComparisonType.Equal, "AgbCodigoSocioDeNegocios", cardCode));
        var accountCollection = esq2.GetEntityCollection(UserConnection);
 
        Guid? accountId = accountCollection.Count == 1 ? accountCollection[0].GetTypedColumnValue<Guid>(accountIdColumn.Name) : (Guid?)null;
 
        // Insertar el registro si no existe
        if (entityCollection.Count == 0 && !string.IsNullOrEmpty(nroComprobante))
        {
            var newEntity = UserConnection.EntitySchemaManager.GetInstanceByName("AgbCuentaCteSocioNegocios").CreateEntity(UserConnection);
 
            newEntity.SetDefColumnValues();
 
            newEntity.SetColumnValue("AgbCuemtaCteNumeroComprobante", nroComprobante);
            newEntity.SetColumnValue("AgbCuentaCteCodigoSn", cardCode);
            newEntity.SetColumnValue("AgbCuentaCteCondicionPago", pymentGroup);
            newEntity.SetColumnValue("AgbCuentaCteCuentas", accountId);
            newEntity.SetColumnValue("AgbCuentaCteDebe", debe);
            newEntity.SetColumnValue("AgbCuentaCteDebeUsd", debeUsd);
            newEntity.SetColumnValue("AgbCuentaCteFechaDocumento", docDate);
            newEntity.SetColumnValue("AgbCuentaCteFechaVencimiento", vencimiento);
            newEntity.SetColumnValue("AgbCuentaCteHaber", haber);
            newEntity.SetColumnValue("AgbCuentaCteHaberUsd", haberUsd);
            newEntity.SetColumnValue("AgbCuentaCteLetra", letter);
            newEntity.SetColumnValue("AgbCuentaCteMoneda", docCur);
            newEntity.SetColumnValue("AgbCuentaCteNumeroOv", nroOv);
            newEntity.SetColumnValue("AgbCuentaCteTipoCambio", docRate);
            newEntity.SetColumnValue("AgbCuentaCteTipoDocumento", tipo);
 
            newEntity.Save();
 
            // Incrementar el contador de registros insertados
            cantidadInsertados++;
        }
    }
 
    // Establecer el valor de registros insertados en la variable del proceso
    Set<int>("CantidadInsertados", cantidadInsertados);
 
    return true;

 

But when I run the bpm I get this error

Error:

System.Net.WebException: The remote server returned an error: (401) Unauthorized.
   at System.Net.HttpWebRequest.GetResponse()
   at Terrasoft.Core.Process.AgbProcess_93e521fAngelBaraldo1MethodsWrapper.ScriptTask1Execute(ProcessExecutingContext context)
   at Terrasoft.Core.Process.ProcessScriptTask.InternalExecute(ProcessExecutingContext context)
   at Terrasoft.Core.Process.ProcessFlowElement.CallInternalExecute(ProcessExecutingContext context)
   at Terrasoft.Core.Process.ProcessFlowElement.ExecuteItem(ProcessExecutingContext context)
   at Terrasoft.Core.Process.ProcessFlowElement.Execute(ProcessExecutingContext context)

 

Like 1

Like

2 comments

Are you trying to send requests from Creatio to the same Creatio environment? 

If that's so, it's really strange implementation. I think it's much better to call the service logic directly rather then  send an HTTP request to the endpoint and parse the response json. 

the mock code would look like this 

var service = new CustomStockServiceHelper(userConnection); 
var response = service.GetNoConciliadosData();

I assumed that you use a CustomStockServiceHelper in CustomStockService to retrieve the data. 

 

DM me if you need more help. 

Best regards, 
Yurii

 

Yuri Sokil,

Yuri thanks for you response.

Show all comments

Hi Team,

 

We have a requirement for filtering the mobile application records in the freedom UI but we doesn't have the filter icon to filter the records. 
Please help us to solve the issues.

 

Note: We are using the updated mobile application version



Like 0

Like

2 comments

Hi Team,

Please help us solve the requirement.
 

Thanks,

Prem

 

Hello,
 

Unfortunately, fast filtering options on mobile devices are currently only available in Classic UI. We realize the importance of this feature and are actively working on implementing it in Freedom UI in future application releases.


Best regards,
Malika

Show all comments

Hi

I am trying to follow the example of building a custom components using remote module from this page: 

https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platform/front-end-development/freedom-ui/remote-module/implement-a-remote-module/overview

But when I reach the part of building the project on VS code using "npm run build" I always get the following error:

 

Generating browser application bundles (phase: setup)...C:\Users\Lenovo\Downloads\example4\node_modules\webpack\lib\container\ModuleFederationPlugin.js:58
                       throw new TypeError(
                             ^
TypeError: The 'compilation' argument must be an instance of Compilation
   at ModuleFederationPlugin.getCompilationHooks (C:\Users\Lenovo\Downloads\example4\node_modules\webpack\lib\container\ModuleFederationPlugin.js:58:10)
   at C:\Users\Lenovo\Downloads\example4\node_modules\webpack\lib\container\HoistContainerReferencesPlugin.js:36:33
   at Hook.eval [as call] (eval at create (C:\Users\Lenovo\Downloads\example4\node_modules\tapable\lib\HookCodeFactory.js:19:10), <anonymous>:88:1)
   at Hook.CALL_DELEGATE [as _call] (C:\Users\Lenovo\Downloads\example4\node_modules\tapable\lib\Hook.js:14:14)
   at Compiler.newCompilation (C:\Users\Lenovo\Downloads\example4\node_modules\@angular-devkit\build-angular\node_modules\webpack\lib\Compiler.js:1121:30)
   at C:\Users\Lenovo\Downloads\example4\node_modules\@angular-devkit\build-angular\node_modules\webpack\lib\Compiler.js:1166:29
   at eval (eval at create (C:\Users\Lenovo\Downloads\example4\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:31:1)

   

Any help for this?

Like 0

Like

1 comments

Hello,
I do not believe this issue has something to do with the article you provided or the Creatio system. Try to look for this error in other sources for example here.

Show all comments