How can we add a new button in communication panel and trigger a business process through it?

I have referred an existing article but did not got much clarity.

(Article Link: https://community.creatio.com/articles/how-can-i-add-button-communicati…)

Like 0

Like

2 comments

Hello,

We recommend using freedom UI components and the button element: https://academy.creatio.com/docs/8.x/no-code-customization/customization-tools/ui-and-business-logic-customization/element-setup-examples/components/set-up-button-components
You can add a custom button to the page via the OOTB tools without dev tools.

Antonii Viazovskyi,

Hi. The button needs to be added in the communication panel. Can you please provide any references to that?

Show all comments

Hello,

I would like to know if anyone has an idea how it could be overridden method answerCall on CTI Panel, so that when somebody clicks on Answer call button, edit Page of that specific Call is opened to fill in Notes and other necessary data?

Thank you.

Like 0

Like

2 comments

Hello Jelenko,
To implement your logic you can do the following:
1) Create replacing view model for CtiPanel object.
2)  Implement CtiPanel  
define("CtiPanel", [],
    function() {
        return {
            attributes: {},
            methods: {
                answerCallCustom: function() {

                    // your logic here

                    // get call id from your cti provider to pass to business process
                    var args = {
                        sysProcessName: "customProcess",
                        parameters: {
                            callId: callId
                        }
                    };
                    ProcessModuleUtilities.executeProcess(args);
                }
            },
            diff: [
                {
                    "operation": "merge",
                    "name": "AnswerButton",
                    "parentName": "ButtonsPanel",
                    "propertyName": "items",
                    "values": {
                        "click": {"bindTo": "answerCallCustom"}
                    }
                },
            ]
        };
    }
);

3) Create business process with callId parameter that opens the page you need1
Hope this helps

Yevhenii Grytsiuk,

Thank you Yevhenii,

 

after your suggestion to use business process and start it from client side, I changed my implementation approach and managed to do it with following trigger, which starts business process when call is picked up:

 

CTI BP

Maybe someone finds it useful for future reference.

Thanks.

Show all comments

Hi everyone,

 

is it possible to hide some of the elements on the top right side (communication panel, notification panel). Some of the users wont use any of these, and I would like to hide it, not to bother them why are these there.

 

Thanks, Timea

Like 1

Like

2 comments

I would also like to be able to do this - for example noteworthy events and approvals are sections of the notification panel our users will never have a need to interact with, so it would be better if they weren't shown to users.

 

Additionally, it would be nice to be able to prevent some of the Business Process tasks from appearing for users - we have loads of them generated as part of a Lead Management flow, but users are unlikely to be interacting with those through there. It would be better for them to be kept out so that other Business Process task notifications don't get lost in the noise.

Hello Timea

 

You can use this marketplace addon to hide the UI Elements: https://marketplace.creatio.com/app/experceo-ui-wizard-creatio

You can add your custom CSS selectors and Operation permissions to control the visibility of the UI Elements.



Thank you

Mohamed

Show all comments

Hello,

 

I would like to set the Do not use email value from Contact communication detail based on the field with the same name from Contact.

 

How could I do this? If I want to add a Business Rule from the Detail, the page does not open.

 

Thanks

Like 0

Like

2 comments

Hello,

Thank you for your question!

Please provide us with more detailed information about the functionality you need. Please tell us what your business task is and what is the ultimate goal of this functionality. We would also like to note that theoretically, this can be implemented through a business process, but we need more details for a better analysis. Unfortunately, this cannot be achieved with business rules. 

Viktoriia Hrynchuk,

Hi! At first, I wanted to set up the value of 'Do not use email' through a process based on another field. When I did this, I saw that I'm only modifying the value of the 'DO not use email' from Contact, but not the one from Communication options. The goal is to set up the value of that one through modify or script task. Because that didn't work, I thought that maybe filtering the one in Communication option based on the one from the Contact would help, but it actually works the other way around. 

Show all comments

HI Team, 

There is a way to remove the chat from the communication panel?

 

Like 0

Like

2 comments

Solved with this code.

Federico Buffa,

how did you change it ? in my case it is closed and i can't change it !

Show all comments

Hi,



I am following this old tutorial and seems like not working for me.

May I know if there's any new way to do this?



I am receiving the following error:

message: Error: Script error for "UsrMyMenuStructure"



Here's my code segments.



Communication Panel:

define("CommunicationPanel", ["terrasoft", "CommunicationPanelHelper"],
       function(Terrasoft, CommunicationPanelHelper) {
  return {
    messages: {
      "SelectCommunicationPanelItem": {
        "mode": Terrasoft.MessageMode.PTP,
        "direction": Terrasoft.MessageDirectionType.SUBSCRIBE
      }      
    },
    attributes: {
      "UsrMyMenuActive": {
        "dataValueType": Terrasoft.DataValueType.BOOLEAN,
        "type": Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
        "value": false
      },
      "UsrMyMenuCounter": {
        "dataValueType": Terrasoft.DataValueType.TEXT,
        "type": Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
        "value": ""
      },
      "UsrMyMenuVisible": {
        "dataValueType": Terrasoft.DataValueType.BOOLEAN,
        "type": Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
        "value": true
      }
    },
    methods: {
      getPanelItemConfig: function(moduleName) {
        var config = this.callParent(arguments);
        if (moduleName !== "UsrMyMenuModule") {
          return config;
        }
        return Ext.apply(config, {
          keepAlive: false
        });
      },
      selectItem: function(config) {
        this.set("SelectedMenuItem", config.selectedItem);
      },
      getUsrMyMenuImageConfig: function(itemTag) {
        return this.get("Resources.Images.VisaMenuIcon");
      }
    },
    diff: [
      {
        "operation": "insert",
        "index": 0,
        "parentName": "communicationPanelContent",
        "propertyName": "items",
        "name": "usrMyMenu",
        "values": {
          "tag": "UsrMyMenu",
          "visible": {"bindTo": "UsrMyMenuVisible"},
          "imageConfig": {"bindTo": "getUsrMyMenuImageConfig"},
          "generator": "CommunicationPanelHelper.generateMenuItem"
        }
      }
    ]
  };
});

UsrMyMenuModule

define("UsrMyMenuModule", [], function() {
  Ext.define("Terrasoft.configuration.UsrMyMenuModule", {
    extend: "Terrasoft.BaseSchemaModule",
    alternateClassName: "Terrasoft.UsrMyMenuModule",
    generateViewContainerId: false,
    initSchemaName: function() {
      this.schemaName = "UsrMyMenu";
    },
    initHistoryState: Terrasoft.emptyFn,
    init: function() {
      this.callParent(arguments);
      this.initMessages();
    },
    initMessages: function() {
      /*this.sandbox.subscribe("RerenderModule", function(config) {
        if (this.viewModel) {
          this.render(this.Ext.get(config.renderTo));
          return true;
        }
      }, this, [this.sandbox.id]);*/
    },
    createViewModel: function() {
      var viewModel = this.callParent(arguments);
      return viewModel;
    }
  });
  return Terrasoft.UsrMyMenuModule;
});

 

UsrMyMenu

define("UsrMyMenu", [], function() {
  return {
    methods: {
      init: function(callback, scope) {
        this.callParent([function() {
          callback.call(scope);
        }, this]);
      },
      onTestClick: function() {
        alert(1);
      }
    },
    diff: [
      //MyMenu
      {
        "operation": "insert",
        "name": "MyMenu",
        "propertyName": "items",
        "values": {
          "generateId": false,
          "itemType": Terrasoft.ViewItemType.CONTAINER,
          "items": []
        }
      },
      //ShowNewMessagesButton
      {
        "operation": "insert",
        "name": "ShowNewMessagesButton",
        "parentName": "MyMenu",
        "propertyName": "items",
        "values": {
          "generateId": false,
          "itemType": Terrasoft.ViewItemType.BUTTON,
          "caption": "Test!",
          "click": {bindTo: "onTestClick"}
        }
      }
    ]
  };
});



Reference:

https://community.creatio.com/articles/how-can-i-add-button-communicati…



Best Regards,

Solem.

Like 0

Like

4 comments

Hello,

 

Can you describe some details what seems to be the issue with your implementation?

 

Thanks.

 

Regards,

Dean

 

 

dean parrett,

 



I have no display in my panel.

I'm not sure how to add display in the panel tab.

Hi,



I edited my question to.



Thank you.

Hi,



I have the panel right now.

But I'm not sure how to display any data on it.

Show all comments

Hi Team,

 

The notification icon in the communication panel doesn't reflect any new changes made to the activities (CREATIO Version -7.17.1.1363).

 

In the previous versions of Creatio(7.16.2.1600), any new activity created/modified would reflect on the communication panel through the notification icon popping out as badges in numbers. The icon also showed the number of new Activities/Reminder/Approval/Noteworthy Events created. However, this doesn't happen anymore after the latest update. I need to refresh the page for the communication panel to show the new notifications.

 

Has anybody experienced the same problem? Is there a workaround?

 

I have provided the detailed description with screenshot attached below, Please take a look at it.



STEP 1: Add new activity clcicking the activity icon as depicted in the picture below (OLD version 7.16)

 

STEP 2: I get the information in notification icon and in reminder when a activity is added immediately without any refresh or reload(OLD version 7.16)

 

STEP 3: In Latest version 7.17, I didnt get any information when the activity is added

 

STEP 4: I can get the information only after the refresh

 

NOTE : I have also checked the Remind owner field while creating an Activity

 

 

 

 

Regards,

Bhoobalan P

2 comments

Hello Bhoobalan,

I am guessing that this functionality broke by an incorrect change made for the Omni channel chat panel in 7.17.0 (and still exists in 7.17.1). In this thread the issue is outlined and I included a fix you can add that will restore receiving server messages again (see my comment on Dec 2, 2020 for a fix): https://community.creatio.com/questions/new-bug

Ryan

Ryan Farley,



Thanks very much,



I have replaced the Communication pannel as suggested in the above thread. But, still i could not see the numbers and the reminder, i can see it only after the manual refresh.







Regards,

Bhoobalan P.

Show all comments

I try to override in CommunicationPanel the index property but it doesn’t work :

define("CommunicationPanel", ["terrasoft", "CommunicationPanelHelper"],
	function(Terrasoft, CommunicationPanelHelper) {
		return {
			messages: {},
			attributes: {},
			methods: {	},
			diff: [
				{
					"operation": "merge",
					"name": "centerNotification",
					"index":  1,				
				}

How can I change the position of the icon?

Like 1

Like

1 comments

Hello Grigoriy,

 

You can only move elements defined in the "diff" of the CommunicationPanel schema, for instance to move esnFeed use:

{

    "operation": "move",

    "parentName": "communicationPanelContent",

    "propertyName": "items",

    "name": "esnFeed",

    "index": 6

}

 

Best regards, 

Olga. 

Show all comments