would like to change the functionality for displaying notifications about important events described in the "Noteworthy event notifications" section of the academy documentation.

I would like to add a condition to the described functionality so that each notification is always displayed to a specific group of users, e.g., the system administrator, regardless of whether they are the record owner or not. They should receive every notification.

Is there a system setting or other parameter that regulates this?

If not, which process or function sends these notifications? Which function should be modified to add such a condition?

Like 0

Like

1 comments

Hello!

According to the system’s default logic, you receive notifications related to the following contacts and accounts:

  • Contacts or accounts for which you are marked as the owner
  • Contacts with the type “Employee” or those linked to the “Our Company” account
  • Primary contacts of accounts where you are the responsible person
  • Contacts and accounts mentioned in orders for which you are responsible (only for orders that are not in a final status)
  • Contacts and accounts included in sales where you are responsible — either in the Client field or in the Contacts detail. This includes ongoing sales and those that were successfully closed within the last six months
  • Contacts and accounts linked to activities for which you are responsible (based on the Account field and the Participants detail). Only non-finalized activities are considered

The notifications about upcoming anniversaries are generated by the business process called "GenerateAnniversaryRemindings." This process is not visible in the Process Library but can be found directly in the configuration. The logic behind how these notifications are created is defined in the BaseAnniversaryReminding schema code.
 

We have already registered an idea for the R&D team to allow more flexibility with this functionality. Thanks to your report, we’ve increased its priority and requested a review of how reminders are generated.

Thank you for helping us improve Creatio!

Show all comments
business
business rule
Administrator
classicUI
Sales_Creatio
8.0

Hello Community,

Is there any way to skip business rules (ex required fields) when you are a SysAdmin in classic UI pages? Any code snippet that could work?

Sasor

Like 0

Like

1 comments

Hello Sasori,

There’s no out-of-the-box way to skip or disable business rules (like required fields) at runtime in classic UI pages. Business rules are applied when the page loads, and you can’t really turn them off or change them dynamically once they’re active.

If you need this kind of flexibility, the better approach is to avoid using business rules for those fields and instead handle the validation in code. For example, you can check if the current user is a SysAdmin at runtime:

define("UsrTest1Page", ["RightUtilities"], function(RightUtilities) {

...

    methods: {
    onEntityInitialized: function() {
        this.callParent(arguments);
        var vm = this;

        RightUtilities.checkCanExecuteOperation({
            operation: "CanManageUsers"
        }, function(result) {
            if (result === true) {
                vm.addColumnValidator("UsrString1", function() {
                    return { invalidMessage: "" };
                });
                
            } else {
                vm.addColumnValidator("UsrString1", function(value) {
                    if (!value) {
                        return {
                            invalidMessage: "This field is required."
                        };
                    }
                    return {
                        invalidMessage: ""
                    };
                });
            }
        });
    }
},
With this approach, you can decide in code when a field should be required (or not) and apply your own custom validators. This gives you full control over the behavior without relying on business rules that can’t be changed on the fly.

Show all comments
Sales_Creatio
8.0

Hello Community,

I would like to configure my Workplace so that a custom section is visible only to specific user roles. For example, I want to hide the Owner Mapping section from regular users, as shown in the screenshot below.

Could anyone please guide me on how to set up role-based access or visibility for sections within a Workplace? Any best practices, steps, or documentation links would be greatly appreciated!

Thank you in advance for your help.

Like 0

Like

4 comments

Hello!
You can find detailed instructions on how to do this at the following link:
Creatio Academy – Set up workplaces

To proceed, you need to manage workplace access based on the user.

Daria Spirina,

Thanks for the response.

The documentation mentions that workplaces can be managed based on user roles.

If I want to hide the only 'Owner Mapping' section from regular users, is it possible to do so within the same workplace?

Hi! You can grant access only to Supervisor or Administrator so that regular users won't see your section.

Daria Spirina,

Yes, you're right, but I want the regular users to be able to see the Sales Analytics section.

Show all comments
Access Rights
roles
functional roles
organizational roles
Sales_Creatio
8.0

Hello Community,

We have some roles that have been established for a long time. As the company hierarchy structure is changing, we need to group some of these roles together.

Example:

Group the existing 1st-Line Support, 2nd-Line Support, and 3rd-Line Support under a single group called SUPPORT. We want to do the same with some functional roles as well.

How can this be achieved?

Sasor

 

Like 0

Like

5 comments

+++

Hey Sasori, 

It is possible to create a hierarchy for organization and functional roles. While you have one highlighted/selected with your cursor, press "new" then select new division. 

Unfortunately, there is no way that I know of to re-arrange hierarchy so you would have to re-create 1st-line support, 2nd-line support, etc. 

I know these are tied to support functionality out of the box, so be careful if you delete them. May want to create the new ones first, then work on updating business processes, then delete the old ones. 

Example: In this image, to create 1st-line support within "support" select "Support" > New+ > Division.

Hi Joshua,

Thank you. I only mentioned the support groups as a reference. We have custom roles that we need to re-organize. I think the correct way to do it, is via scripts in SysAdminUnit table, but i need some confirmation prior to proceeding.

Sasor

+++

Hello,

There is no out-of-the-box functionality in the system to group user roles as described.

However, this can be achieved by updating the ParentId field of the user role records. You can implement this change either through a business process or directly via an SQL query.

Best regards,
Ivan

Show all comments

I Have a mini page with page parameter  named "Owner" of type "Contact" lookup.
It's "Lookup view" = "Selection window".

Once Clicked, i need to filter the selection window to show only contacts of "Type"="Employee"

* NOTE!  When i set the "lookup view as "Dropdown list" i can use the code: (and it works)

            {
                request: "crt.LoadDataRequest",
                handler: async (request, next) => {;
                    console.log(request.dataSourceName);                                                   
                    if(request.dataSourceName == "PageParameters_WtrLookupParameter1_xkzokyf_List_DS") {
                        const filter = new sdk.FilterGroup();
                        const emploeeType = "60733efc-f36b-1410-a883-16d83cab0980";
                        await filter.addSchemaColumnFilterWithParameter(sdk.ComparisonType.Equal, "Type", emploeeType);
                        const newFilter = Object.assign({}, filter);
                        newFilter.items = filter.items;
             
                        request.parameters.push({
                            type: "filter",
                            value: newFilter
                        });
                    }
                    return await next?.handle(request);
                }
            } 

BUT when the "Lookup view" = "Selection window" , this code does not work because 
crt.LoadDataRequest is not triggered.

Can anyone help pleas ?

Like 1

Like

2 comments
Best reply

A lookup that uses the dialog can trigger both the "crt.LoadDataRequest" for when a user types into the field and a "crt.OpenSelectionWindowRequest" (whcih used to be "crt.OpenLookupPageRequest" for versions before 8.1.3) for when it's used in dialog mode.

See the comments from Harvey on this thread for details: https://community.creatio.com/questions/crtloaddatarequest-does-not-seem-trigger

Ryan

A lookup that uses the dialog can trigger both the "crt.LoadDataRequest" for when a user types into the field and a "crt.OpenSelectionWindowRequest" (whcih used to be "crt.OpenLookupPageRequest" for versions before 8.1.3) for when it's used in dialog mode.

See the comments from Harvey on this thread for details: https://community.creatio.com/questions/crtloaddatarequest-does-not-seem-trigger

Ryan

THANKS!!!!  Works greate.. 

Show all comments
Sales_Creatio
8.0

Hi,

I wanted to rework Contact page in designer. I deleted default tabs and created new one. When I saved changes and checked the results, I saw 3 lists on the page. They were on default tabs, but now they are directly on the page. 

The problem is that lists are not visible in designer now. Is there a way to delete them from Contact page?random lists

designer

 

Like 0

Like

1 comments

Hello!

The issue described appears to be that certain parent elements were removed from the page’s source code while child elements were added. As a result, these changes affect how pages are displayed at runtime.
You can check the list of elements that do not have a parent in the schema (or try to remove the block in the schema from the custom package).
If the parent element was deleted through the Freedom UI Designer, you can find the diff elements with the remove tag in the replacing page. If you comment them out, the elements will appear again.

If you encounter any problems with this, please contact Customer Support and provide secure access to the system.

Show all comments
Sales_Creatio
sales_enterprise
Studio_Creatio
8.0

I have a scenario where I need to call a POST API that returns an HTML response. I want to display this HTML content inside an IFrame on a Freedom UI page.

Since the standard IFrame component accepts a URL (which works with GET), I’m not sure about the best approach to:

  • Make a POST request,
  • Get the HTML, and
  • Load it into the IFrame component.

Is there a recommended way to do this in Creatio?
Has anyone implemented this similar solution using a client module or custom JS?

Any examples or best practices would be greatly appreciated!

Thank you in advance for your help.

Like 0

Like

1 comments

Hi Ajay,

While the standard IFrame functionality in Freedom UI is designed for displaying external content via a static URL (typically supporting GET requests), rendering the result of a POST request requires a different approach. 
The recommended solution is to implement a custom Freedom UI component using a remote module. This allows you to perform the POST request, handle the HTML response, and display the result directly within the page.

Within this custom component, the implementation typically involves the following steps:
1. Perform the POST request using Angular to retrieve the HTML content from the API.
2. Render the result by either inserting the HTML into the page using innerHTML, or by converting it into a Blob or data URI and setting it as the src of an iframe.

You can refer to the official documentation for implementing remote modules here:
https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platform/front-end-development/freedom-ui/remote-module/implement-a-remote-module/overview
https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platform/front-end-development/freedom-ui/remote-module/implement-a-remote-module/examples/implement-a-remote-module

Additionally, the following article demonstrates how to embed an iframe within a Freedom UI component:
https://customerfx.com/article/embedding-an-iframe-on-a-creatio-freedom-ui-page/

Show all comments
Sales_Creatio
8.0

I can't find the ‘Export list records’ operation in the Operation permissions section in System Designer

can you help me please?

Like 0

Like

1 comments

Hello Marie!

The operation permission's code is CanExportGrid:



I hope this helps. Have a great day!

Show all comments
excel
Sales_Creatio
8.0

Hi. 

Is it possible to write a row (to the bottom) of an Excel spreadsheet from Creatio?

We need to copy select data from a Creatio screen to a row on a spreadsheet.  In our case, the spreadsheet lives on a Sharepoint drive.   The goal is for the user to push a button on a Creatio screen, and have it insert data to the last row of an existing spreadsheet.

Any direction or suggestions you have are appreciated.
Thanks!
Rob

Like 0

Like

4 comments

I have something like that working (except I am using a hosted Google Spreadsheet) that is using make.com. I just execute a Make.com webhook from a process in Creatio, make.com receives that and then writes the line to the existing spreadsheet. All no code, so just thought I would mention. 

Ryan

Hi,

Yes, it is possible to write a row to the bottom of an existing spreadsheet from Creatio.

There's an official Google Sheets connector for Creatio available on the Creatio Marketplace: https://marketplace.creatio.com/app/google-sheets-connector-creatio

It enables two-way sync with Google Sheets and lets you:

-Automatically send data from Creatio to Google Sheets;

-Map sheet columns to Creatio fields;

-Use Google Sheets as a staging point between systems.

This connector is fully no-code and works with current versions of Google Sheets - all you need is a Google Cloud account.

Have a nice day!

Thanks.  However, we are not using Google Sheets, our corporate standard is Excel / MS Office.  Creatio would need to integrate with an existing spreadsheet used by our Operations department -- Is there a connector for that too?

I have something that allow using a excel template to push data with some custom framework primitive for openxml. But it's not trivial to use, and it just download a file localy.

Show all comments

Hi team

We have a detail with list of quotes in Opportunity. We allow end users to export and import data to this detail.

We want to block the option to process import once Opportunity is in Completed stage.

Can you advise on how to achieve this? 

Like 0

Like

1 comments

Hello,

You can add a business rule to hide the import button based on the Opportunity stage.

- Condition: If the Opportunity stage equals "Completed", in my example "Proposal".
- Action: Hide the import button.

Example: image.png
Result:



Best regards,
Malika

Show all comments