Hello community

I don't know how the status field works in the Freedom section of the Knowledge Base.

Could you help me?

Like 0

Like

1 comments

Hello, 

 

To design the stages panel in Freedom UI please refer to following link: 

https://academy.creatio.com/docs/8.x/no-code-customization/category/case-designer-workflows

 

Thank you for reaching out!

Show all comments

Hi Community,

I'm trying to identify the ObjectName (schema name) and the RecordId of a form page that is currently open in Creatio (Freedom UI), using the context data available (as shown in the attachment). Is there a recommended way to retrieve this information through code or the browser console?

What’s the best way to access this data from within the button click handler?

Reference Screenshot

Thanks in advance!

Ajay K

Like 1

Like

1 comments

This is possible, but only from the context of the page itself. I am not sure if it's possible from a sidebar to know anything about the current page loaded elsewhere, maybe with a request handler in a remote module where you can specify the scopes?

As for getting this info within the context of the page, to get the primary data source, you can use: 

const pds = await request.$context.getPrimaryModelName();

With the data source name, you can get the schema for the datasource which will give you the entity/object name, the Id column attribute, and also the primary display value attribute using the following (note, this gets the attribute names, not the values): 

const pds = await request.$context.getPrimaryModelName();
const schema = await request.$context.dataSchemas[pds];
 
const entityName = await schema.name;
const idColumn = await schema.primaryAttributeName;
const nameColumn = await schema.primaryDisplayAttributeName;

Now that you have the attribute names, you can get the values: 

const idValue = await request.$context[idColumn];
const nameValue = await request.$context[nameColumn];
// etc

This sort of thing works great if you have a custom base page type that could be used for many different pages/objects. 

Also, as a FYI, not sure how this is going to change after 8.2.3 since 8.2.3 has a beta feature (not enabled out of the box) that allows a page to have multiple connected data sources. That might break some of this.

Ryan

Show all comments

Hi, guys!

 

I'm currently facing the following problem:

 

Whenever I try to access case messages, sent by the client and through the responsbile user, all messages sent via email never show up. Not even automatic emails. All of them can be seen by the Supervisor user.

Meanwhile, all messages sent via self-service portal appear to be fine and available.

 

I have tried the following solutions:

- Changing the object permissions

  • - Changing the operation permissions to allow the responsibles to read the object
  • - Manually setting the permission of the record as a mean to provide access to the responsible

 

The last one was the only one that provided me with the expected result (case emails showing up), so that makes me inclined to think that it is a permission-related behaviour.

The objects of which I have changed permissions to try and solve the problem were the Case and Activity (as it is storing the emails) ones.

I've tried to investigate the business process that detect the emails sent to see if they had any relation to the permission attribution, but nothing related was explicit there.

Below, follows the expected result and the current state of an example case:

This is the expected result, as seen when accessing the case through the Supervisor user.

 

This is the current state, as seen when accesing the case through the Responsible user (notice that the email of which I have changed the permissions manually through the Activity object is the only one that appears, on the top).

 

Have you guys ever faced and/or solved this issue? If so, could you please help me mitigate it?

 

I'll be eager to add more details to this post, if needed.

Thank you in advance!

Like 0

Like

1 comments

Hi!

 

This behavior may indicate that the access permissions for reading emails from the mailbox are not fully configured.

We recommend reviewing this article and adjusting the permissions to ensure that all users working with cases can read the emails.

Please note that after making changes to the mailbox settings, the new rules will apply only to emails received afterward.

 

Best regards,

Kate

Show all comments

Hello Community,

I want to remove "New Contact" from the contact name (e.g., New Contact (email address)).

I tried using a business process that runs when a new record is added to an activity. It retrieves the name from the "From" field (name ). However, since the contact field in the activity is empty, I cannot access other contact details.

To work around this, I used a timer signal with a 5-second delay, which worked. However, the issue now is that the case registration email is sent before the business process updates the contact name. I also tried delaying the case registration email, but when I do, it is not sent at all.

Is there another way to update the contact name?

Additionally, why is the email delay not working?

 

Like 0

Like

5 comments

Hello,

 

Please provide a screenshot of your business process, along with settings of the element that updates the name.

Dymytriy Vykhodets,

 

This is business process - 

It runs every time an email message is added. After waiting for five seconds, it reads the "From" and "Contact" fields from the activity section. Then, using a script task, it extracts the name from the "From" field and sets it as the full name of the contact.

Darshan Dev Prajapat,

 

Please also provide the screenshot of the settings of the element that updates the name.

Mira Dmitruk,


You mean this 


After getting resultname from here i am setting full name of contact in set full name.

Any update on this?

 

Show all comments

I am trying to create two different section incoming email and outgoing email, but message type(which hold incoming and outgoing) is empty.
 

So wondering why message type is empty but it filled(outgoing) when creatio send auto email to contact like when case stage changes, etc.

 

Currently i am using To(in incoming section) and From(in outgoing section) to filter emails.

Like 0

Like

2 comments
Best reply

Hello,

The problem is that the "Message type" column is no longer used in the new synchronization mechanism. We don't have a column property on the Activity that indicates whether it is an incoming or outgoing email.

This column is not populated by default. The logic that would fill this field does not currently exist in the system.

However, there is a way to determine this through additional filtering. When an email is synchronized, a record is created in the EmailMessageData table, which specifies the mailbox that synchronized the email. Based on this mailbox, the role of the email can be determined.

For example, if you synchronize the mailbox example@mail.com, then if this mailbox is in the "From" field, the role of the email will also be "From". If it is in the "To/CC/BCC" fields, the role of the email will correspondingly be "To/CC/BCC". Thus, you need to build a filter based on the relationships in EmailMessageData, where Role = From. In this case, you will filter for emails that were sent.


Additionally, you can configure a business process that will read the Role column of the EmailMessageData table for incoming/outgoing emails and, based on the Role field, set the Message type for the Activity record.

Best regards,
Pavlo!

Hello,

The problem is that the "Message type" column is no longer used in the new synchronization mechanism. We don't have a column property on the Activity that indicates whether it is an incoming or outgoing email.

This column is not populated by default. The logic that would fill this field does not currently exist in the system.

However, there is a way to determine this through additional filtering. When an email is synchronized, a record is created in the EmailMessageData table, which specifies the mailbox that synchronized the email. Based on this mailbox, the role of the email can be determined.

For example, if you synchronize the mailbox example@mail.com, then if this mailbox is in the "From" field, the role of the email will also be "From". If it is in the "To/CC/BCC" fields, the role of the email will correspondingly be "To/CC/BCC". Thus, you need to build a filter based on the relationships in EmailMessageData, where Role = From. In this case, you will filter for emails that were sent.


Additionally, you can configure a business process that will read the Role column of the EmailMessageData table for incoming/outgoing emails and, based on the Role field, set the Message type for the Activity record.

Best regards,
Pavlo!

Hello, 


Its working. I tried business process approach and its working fine.

Thanks

Show all comments

Is there a way to add custom functionality to message composer send button(in case of email) in case section(freedom UI).

 

Like 0

Like

1 comments

Hello,
 

At the moment, the Message Composer element is not customizable in the system. We recognize that this limitation may affect your workflow and the flexibility you need to tailor the system to your specific business requirements.
 

That being said, we want to assure you that we are actively working toward enhancing this functionality. Based on the feedback we've received from you and other users, we've increased the priority of this task.

Your experience and satisfaction with the product are very important to us. We constantly strive to make Creatio more adaptable and user-friendly, and your feedback plays a key role in guiding these improvements

Thank you for your patience and understanding.
 

Show all comments

After fresh installation of 8.2.1.5446_ServiceEnterprise_Softkey_PostgreSQL_ENU product as dev environment right after i enable file design mode (fileDesignMode enabled="true" & add key="UseStaticFileContent" value="false") i am getting an error Uncaught Error: Script error for "SectionModuleV2".

 

I tried the following:
Genetate code for all schemas + full compilation, no result.

Checked may be i missed IIS rights, but no all in check.

Download all packeges to file system + compilation, no luck.

 

It seems that is a problem with a static content, as soon as i disabling file design mode, it works correctly. I always deployed my dev envs using Creatio guide. On a previous version of 8.2.0 it was fine, but with  8.2.1 i have this problem.

How can i make it work with file design mode on?

Like 0

Like

2 comments

Hello,

Please try to do the following:

1) Unlock the package CrtNUI for hotfix.
2) Open SectionModuleV2 schema metadata
3) Delete the block with WebitelCtiProvider schema dependency (see screen below).
4) Lock the package CrtNUI back.
5) Compile system

image.png

Malika,

Hey , i'm unable to view the image that you have uploaded

 

Show all comments

Hello,

 

Is it possible to change the working hours of the calendar component in the Freedom UI? If so, is it customizable per user so each one can have different hours based on their needs (e.g. changing the time zone in the user profile).

 

On the other hand, in the default calendar page there is a custom action to show/hide the weekends

 

Is it possible to include that custom action in a new page manually?

 

Regards

Like 2

Like

2 comments

Hi!

 

Unfortunately, there is no possibility of changing the working hours in the calendar using the basic tools.

I want to assure you that I have created a request for our development team to implement this functionality in future versions of our application.

Regarding the show/hide weekends button, this logic was implemented via code in the Calendar_ListPage schema in the CrtProductivityApp package. So you can find the logic here and implement it in the same way on your page.

 

Best regards,

Kate

 

Hi Alejandro, 

Great idea ! 

Damien

 

Show all comments

Hello,

 

I am trying to upload files as you would do manually in the browser, but using an API. When dragging and dropping a file into the attachments tabs of any section, I see in the browser that Creatio performs a POST request to its FileApiService with a format like the following example:

 

The endpoint is https://my-creatio-site.creatio.com/0/rest/FileApiService/UploadFile and the file content is passed in the request body.

 

In order to simulate this behavior, I am sending 2 requests:

 

  1. A POST request to create the file id allocating space in the File table:

  2. A POST request to https://my-creatio-site.creatio.com/0/rest/FileApiService/UploadFile using the file information to upload the actual file.

 

However as you can see, the 2nd request fails in my app with the following error:

{
  "errorInfo": {
    "errorCode": "InvalidFileSizeException",
    "message": "No se puede analizar el tamaño del archivo.",
    "stackTrace": "   at Terrasoft.Configuration.FileUpload.FileUploadInfo.get_TotalFileLength()\r\n   at Terrasoft.Configuration.FileUpload.FileUploader.UploadFile(IFileUploadConfig fileUploadInfoConfig)\r\n   at Terrasoft.Configuration.FileUpload.FileUploader.UploadFile(IFileUploadInfo fileUploadInfo, Boolean isSetCustomColumns)\r\n   at Terrasoft.Configuration.FileApiService.UploadFile(Stream fileContent)"
  },
  "success": false,
  "nextPrcElReady": false,
  "queryId": null,
  "responseStatus": {
    "ErrorCode": "InvalidFileSizeException",
    "Message": "No se puede analizar el tamaño del archivo.",
    "StackTrace": "   at Terrasoft.Configuration.FileUpload.FileUploadInfo.get_TotalFileLength()\r\n   at Terrasoft.Configuration.FileUpload.FileUploader.UploadFile(IFileUploadConfig fileUploadInfoConfig)\r\n   at Terrasoft.Configuration.FileUpload.FileUploader.UploadFile(IFileUploadInfo fileUploadInfo, Boolean isSetCustomColumns)\r\n   at Terrasoft.Configuration.FileApiService.UploadFile(Stream fileContent)",
    "Errors": null,
    "Meta": null
  },
  "rowsAffected": -1
}

 

I already ensured that the file size passed in both requests is exactly the same always (in this example is 584833 bytes) but I don't know what causes the error.

 

I already checked the following community posts but couldn't find any help:

 

 

Note: I tested these requests in many Creatio websites, all of them with version 8.2.0 

 

Regards.

Like 0

Like

2 comments

Hello again,

 

I just found a different community post:

https://community.creatio.com/questions/get-error-403-denied-when-uploading-file-filepiservice

 

After following the steps explained by @Ryan Farley I was able to upload files properly. My problem was that I was missing the following request headers:

 

  • Content-Range = bytes 0-{size in bytes - 1}/{size in bytes}
  • Content-Type = "application/octet-stream"

 

Thank you very much!

Glad you found the older post and have it working now!

Show all comments

Hi everyone,

I'm working with Creatio CRM and need to trigger an approval process via API. I have a custom object called EpbSolicitudes, and each request has a unique ID (e.g., 1e80cd00-2cf4-4ecc-a61c-511d7afa3568).
 

My goal is to invoke the approval action programmatically using an API call. Specifically, I want to:

  1. Approve a request via API (either updating the status or calling a process).
  2. Ensure that the approval follows the same workflow as if it were done manually.
  3. Optionally, trigger a BPMN process if needed.
     

I've explored the OData 4 API and DataService API, but I'm unsure of the best approach to handle approvals.

  • Should I update the "NextStep" field in EpbSolicitudes using OData?
  • Is there a built-in API method to invoke the approval process?
  • Can I start an approval process via ProcessEngineService API?

If anyone has experience with automating approvals in Creatio via API, I would appreciate any guidance or examples.
 

Thanks in advance! 🚀

Like 0

Like

1 comments

Hello,

 

If your approval is created using a business process, you can trigger the business process using the ProcessEngineService.svc service https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platfor…

Show all comments