CTI
call
Contact
integration
Studio_Creatio
8.0

Hi Community, 

[FreedomUI]

Today I come with a problem regarding CTI integration with third party provider. I want to ask if anyone knows how to override call action link which you can find in the contact page, so instead of launching it to external handler or by built in CTI Creatio solution in cloud in communication panel, I want it to different action with my CTI Iframe that I have implemented with custon Angular component also in communication panel. The main problem here is how I override it (the onclick action in contact page and list for phone number input, but also in other places), to invoke my custom implementation ex. invoking call action on Iframe (I will do it with browser bus API) and then saving the call to the database (by calling to the webservice).

Second question: Is it a must to integrate the solution with the CTI Model or use Terrasoft.integration? I don't use CTI panel and creatio CTI interface for calling implementation, I use custom Angular component with IFrame, so I guess I don't need to. Not sure how to tackle it. I guess I could integrate with it somehow to use built in solutions. I have also seen some solutions overriding the BaseCtiProvider. How do I use it, so I could maybe also implement other things such as holdings etc.? 

Thanks for help in advance, Tuan.

Like 24

Like

6 comments

Hi Tuan,
 

Thank you for reaching out.
 

1. Unfortunately, you cannot currently override the call action in Freedom UI. The only possible way is to create your own Telephony integration.
 

2. You can find the main concepts and architecture of Creatio’s CTI model in the following documentation:
https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platform/platform-customization/classic-ui/telephony-integration/overview
​​​​​​​

There are unfortunately no detailed step-by-step guides for implementing custom telephony providers. This is due to the high variability of external APIs and the level of customization required for each provider. We typically recommend reviewing existing provider implementations and using the Academy materials as a foundation.

Eduard Dovydovskyi,

Hi. Thanks for answering. 

Overriding by writing my own provider is something that I have recently found out. It could work for me.

I did make some implementations with it, but I encountered a new problem when changing the default message provider to my own. The issue is that clicking the phone number on contact page or list instead of invoking the makeCall method in the i guess CTI model and then provider it handles it as a tel:phoneNumber with default implementation and force me to use external appliation. Somehow the CTI Model does not invoke makeCall to then invoke makeCall on provider side. The init method does not even run with my provider.

I want to also mention that the code for my provider was copied 1:1 from VirtualCTIProvider. Just changed the define string to my own.

For on prem environemnt instead of getting the dialog, I get nothing. The link does not even work.

Do you have any idea how can i solve that? I'm almost done with the solution and that's should be my last obstacle.

Same issue is with third party providers. I'm not sure if it has something to do with licensing, but init runs normally, i get the log in the console, but the click on phone number still opens the external app modal/dialog. 

Hi Tuan,

You need to check if Telephony is enabled. To do so you need to:

1. Go to System settings in the System setup block, open the "Default messages exchange library" ("SysMsgLib" code) system setting and check if the default value is set.
 

2. Open the user profile page, e. g., by clicking Your profile on the Creatio homepage.

image
 

3. Open Additional settings

 

4. Open Call Center parameters setup


5. Check if "Disable Call Center integration" is unchecked and press the Save button. In the User profile press the Save button again.

image

 

This should enable Telephony. Hope it helps

Eduard Dovydovskyi,

Thanks for advice, but still it's not working. I had that option already set to enable. However I made some changes to my solution and it works better now. I still cannot click on phone number and invoke makeCall method, still I get the external dialog. Now it might have something to do with license operation which I don't really know how to set and where.

Everything will work fine if I use Webitel license, but I don't think that should be solution to the license issue.

Tuan,

Please register this issue for our support team directly via support@creatio.com so we could investigate it properly.

Show all comments
Studio_Creatio
7.17

Hi;
recently i update windows on my computer to 11.
Previously i can check logs of my local development environment on C:\Windows\Temp
No there is no logs there and i cant find by name any other place.

have you any idea where i can find logs

Regards
Tomek

 

Like 2

Like

2 comments

Hello,

Please specify if you mean that the folder itself is in place, but the logs aren't, or that the Temp folder is missing completely?

Mira Dmitruk,

Thanks Mira;
The folder c:/windows/temp exists but there is no [WebSidefolder] in it.
Thanks I found them in systemtemp
Regard Tomek

Show all comments
AISkill
attachments
Studio_Creatio
8.0

Hi,

Can I use AI Skill to extract the readable content from files(pdf, .doc, .txt, .xlsx etc..). 
My expectation is, AI skill will take a file id/attachment id or binary data of the file then it'll give me the readable content from the file.

Thanks.

Like 0

Like

1 comments

Good day, Sagar,

 

At the moment, the official instruction regarding this AI skill is still under development on our Academy.

However, Creatio AI does support working with small text-based files.
All information regarding this topic is provided below:

Covered scenarios are :

  • Chat user files – uploaded by the user during a Creatio.ai chat session
  • Skill & agent embedded files – attached within dedicated skill or agent
  • Files handling inside BP for API skills – passed dynamically through business process logic

File handling is globally controlled by the feature GenAIFeatures.UseFileHandling
Description: “Enable the use of skill/agent files in the Creatio.Ai session.”

File limitations:

  • Only files with allowed extensions are processed. Setting listing permitted file extensions is CreatioAIAllowedIntentFileExtensions.
  • Files must not exceed a size specified in system setting CreatioAIMaxIntentFileSize
  • The sum of all embedded files' content for a single skill or agent must stay within the global limit defined in setting CreatioAIIntentFileContentSizeLimit
  • Total file content (from all sources) passed to the LLM in a single session must not exceed the limit set in setting CreatioAISessionFileContentSizeLimit

Please be informed that these instructions are subject to change, as this instruction is still under development.

Show all comments
OAuth2.0
oData
odata4
Studio_Creatio
8.0

I have installed the Identity server locally and set up oAuth on Creatio -screenshot attached-

I generate a token from the identity server like this 


Then use the token to authenticate OData like this 

 

and as you can see it is returning 401, I made sure the user has roles that make it able to read the data but still



Like 0

Like

3 comments

Greetings!

Can you please paste the URL you want to see the contact for into your browser and check what it returns?

Orkhan,

Greetings, it is returning the Json data correctly

Greetings,

I tried to reproduce the issue on my side and everything works as expected:

- The integration was set up correctly.
- The technical user was created with all the required permissions (in case permissions were missing, the system would usually return 403 Forbidden rather than 401).
- The access token was generated correctly, which confirms that the client credentials are valid.

To narrow down the cause, please double-check the following:

- Make sure the token you paste into Postman does not contain any extra characters (such as spaces, quotes, etc.).
- Ensure that the token is still valid and not expired at the moment of the request.

Additionally, since you confirmed that the OData endpoint opens successfully in the browser and returns JSON, this means the service itself is available. In this case, a 401 Unauthorized in Postman usually indicates that the token provided there is not accepted by Creatio.

Could you please re-check the token details in Postman and try again? If the issue persists, kindly share the decoded token payload (without the signature) so we can verify the claims (use https://www.jwt.io/)

Show all comments
Studio_Creatio
8.0

Hello, 

As shown in the attached screenshot, I’m currently unable to save a new OAuth integration, even though the diagnostics in the top-right corner indicate success.

Additionally, existing OAuth integrations are no longer functioning as expected. When attempting to retrieve a token, I receive a 400 Bad Request response with the message "invalid scope", as also showed in the screenshot.

Please note that this issue is occurring in an on-premises environment.

Could you kindly assist in resolving this?

Thank you in advance for your prompt support.

 

 

Like 0

Like

1 comments
attachment
#customization
Studio_Creatio
8.0

Hi,

Is there a way to catch the events when an attachment is added or deleted in the form page through attachments section !! 

I want to catch those events in the front end.

Like 0

Like

1 comments

Hi Sagar Rodda,


I suggest you either create a business process with the signal start event to run the process automatically when a record added/deleted, or add the following handlers to the section form page:

  handlers: /**SCHEMA_HANDLERS*/[
   {
    request: "crt.UploadFileRequest",
    handler: async function(request, next) {
     /* Your customization will be here  */
     return next?.handle(request);
    }
   },
   {
    request: "crt.DeleteFileRequest",
    handler: async function(request, next) {
     /* Your customization will be here  */
     return next?.handle(request);
    }
   }
  ]/**SCHEMA_HANDLERS*/
Show all comments

I have a angular component that is built and loaded into my creatio workspace that has a freedom ui component specific to it. I want this component whenever it is attached to a certain form page or list page to emit the package name/record id. how can I do that?

Like 0

Like

1 comments

Hi,

At the moment, Freedom UI doesn’t provide a built-in “hook” that passes those page context values directly into your Angular component without any wiring. In order to achieve your goal you need to bind the required values to your component's @Input property from the Freeddom UI page. Then in your Angular component use for example ngOnChanges to detect when the value is received and emit it with your own @Output which you can then further process.

Show all comments
Filters
MultiSelectLookup
multi
Studio_Creatio
FreedomUI
creatio8.1.2
8.0

Hi Community,

I’m working on a requirement where I need to filter Region lookup data in a multi‑select dropdown field based on a column value (State/Region).

Basically, when a user opens the lookup field, it should only display the records that match the given State condition.


Here is my viewConfigDiff code:

viewConfigDiff: /**SCHEMA_VIEW_CONFIG_DIFF*/[
...
{
				"operation": "insert",
				"name": "MultiSelect_ugo4wdi",
				"values": {
					"layoutConfig": {
						"column": 1,
						"row": 3,
						"colSpan": 2,
						"rowSpan": 1
					},
					"type": "crt.MultiSelect",
					"label": "#ResourceString(MultiSelect_ugo4wdi_label)#",
					"recordId": "$Id",
					"recordRelationColumnName": "ImpAccount",
					"selectSchemaName": "ImpStateInterestMultiselect",
					"selectColumnName": "ImpStateInterestField",
					                          "selectFilter": {
      "items": {
        "filterByRegion": {
          "comparisonType": 3,
          "isEnabled": true,
          "filterType": 1,
          "leftExpression": {
            "expressionType": 0,
            "columnPath": "ImpStateRegion"
          },
          "rightExpression": {
            "expressionType": 2,
            "parameter": {
              "dataValueType": 1,
              "value": "State"
            }
          }
        }
      }
    },
					"visible": true,
					"labelPosition": "above",
					"placeholder": "",
					"tooltip": ""
				},
				"parentName": "GridContainer_qy480gv",
				"propertyName": "items",
				"index": 3
			},
			...
			]/**SCHEMA_VIEW_CONFIG_DIFF*/,

I’ve tried adding filtering logic in the source code, but I’m not getting the expected result. Here is my handler code:

handlers: /**SCHEMA_HANDLERS*/[
			{
  request: "crt.LoadDataRequest",
  handler: async (request, next) => {
    // Ensure this runs only for your MultiSelect list data source
	    console.log("Current DataSourceName:", request.dataSourceName);
	   console.log("EntitySchema:", request.entitySchemaName);
 
    // Ensure it's the right source + schema
 
    if (request.dataSourceName !== "MultiSelect_ugo4wdi_List_DS") {
		console.log("Hello I am in a log box 1234");
      return await next?.handle(request);
    }
 
    const filter = new sdk.FilterGroup();
 
    // Filter where ImpStateRegion == 'State'
    await filter.addSchemaColumnFilterWithParameter(
      sdk.ComparisonType.Equal,
      "ImpStateRegion", // <-- Column in ImpStateInterestMultiselect to filter on
      "State"           // <-- The fixed value to filter by
    );
 
    // Workaround for Creatio DevKit filter bug
    const newFilter = Object.assign({}, filter);
	  console.log("Hello I am in a log box");
    newFilter.items = filter.items;
 
    // Add filter to request parameters
    request.parameters.push({
      type: "filter",
      value: newFilter
    });
 
    // Proceed with next handler
    return await next?.handle(request);
  }
}
 
		]/**SCHEMA_HANDLERS*/,

I’ve also attached a screenshot of the current setup.

Multiselect filter

Multiselect element code

Can someone guide me on how to correctly apply filters for a multi‑select lookup field?
Do I need to configure this through the business rules, or is filtering only possible via overriding the source code handler?

Any help or examples would be greatly appreciated!

Thanks in advance.

Like 0

Like

2 comments

Hello,

To set up filtering for lookup fields in the dropdown, you’ll need to add a new business rule.

Please follow these steps:

  1. Open the Business Rules section on the current form page.
  2. Click "+ Add rule" under the Account business rules.
  3. In the "Then" block, select the action "Apply filter". Leave the "If" block empty.
  4. Configure the filter as follows:

Filter Region by State Where Region.State = Account.State

Save your changes.

@tushar, was you able to make it work?

I dont think the BR approach works because is a Multiselect so there shouldnt be a Region field in the Account in this case, but a separate object that contains the relashionship between Account and Region

Show all comments
manytomany
relationship
list
grid
Records
object
Studio_Creatio
8.0

Hi Creatio Community,

 


In my Freedom UI application, I have this setup:

  • Object: Document
  • Lookup: Functional Area
  • Many-to-many table: DocumentFunctionalArea

I’ve configured a multiselect lookup field that stores the selected Functional Areas using the intermediate table. It works on the page and values are saved correctly.

But the problem is:
In the record list (grid), I want to display the related Functional Areas for each document. Not as a field above the grid - I want them to be shown as a column, like "Functional Areas: Sales, Marketing, Finance", etc.

However, in Freedom UI, I can't add this as a column because the multiselect field is based on an intermediate object.

Is there a built-in way to show many-to-many values inside the record list view, or is it currently not supported?

I attached screenshots to illustrate what I'm trying to achieve.
It’s totally okay if values are comma-separated or listed vertically - the main goal is to show multiple related values in a single column of the Document list.

Thanks a lot!

Like 0

Like

1 comments

Hello ,

Thank you for your detailed explanation and the screenshots, they really help clarify what you're aiming to achieve.
Currently, Freedom UI does not support displaying values from a many-to-many relationship (like your "Functional Areas") directly as a column in the list view.
That said, I completely understand how useful this functionality would be, it’s a very reasonable and practical request. I’ll go ahead and register this as an idea on our internal roadmap for potential future improvements to the Freedom UI framework.

Show all comments
Studio_Creatio

While using an email template for the 'Create an Email' action in a button, the template is not displaying. Do you know how we can link it so that it appears in the application? Has anybody run into this problem?

Image preview

Like 0

Like

3 comments

Hello,

The issue you're experiencing occurs because templates with a macro source tied to a specific context are only accessible within that particular section. When switching to another section, the context does not transfer automatically, which is why the templates may not be visible. For example, if you are working within the Case section, you will not be able to select message templates that have Account set as the macro source. Only templates with a macro source of Case or those without a defined source will be available.

At this time, there is no built-in functionality to make these templates universally available across different sections without modifying the macro source. As a workaround, you can create separate templates tailored to each section.

Although, we’ve submitted a task to our R&D team to explore the feasibility of implementing this feature in future updates.

Best regards,
Tomasz

 

Hello Tomas,

 

In this case I am working with the HO Report Section and have selected the same source in the Macro, but I still don't see the template in the section. What can I do in this case?

 

 

Thanks!

Hello,

The thing is that the 'Create an Email' action in a button element creates a separate email that is not associated with the your HO Report object. That is, it is the same as if you were creating an email from the communication panel and therefore, you cannot use templates with HO Report macros in such an email. We currently have a task to improve this element. 

As an alternative, you can add the timeline component from ‘Message composer’ element in the page designer and when you send an email from it, you will have templates with HO Report macros available:

image.png

I hope these recommendations will help you! 

Show all comments