Hi Community,

In freedom UI, Is it possible to change the input length for the phone number field when the Display input mask option is enabled?

In Indonesia, mobile phone numbers typically have a length of 10 to 12 digits (without the mask), but when the option is checked, users can only enter up to 9 digits.

input phone number

Thanks!

Like 0

Like

2 comments
Best reply

Hello,

Our R&D team has already started a task to add new phone masks functionality which will be implemented in 8.3.0 version release.

For now, as a workaround, we suggest disabling the mask check in the phone number (in the designer).
image (3).png

We apologize for any inconvenience this may cause. 
Thank you for choosing Creatio!

Hello,

Our R&D team has already started a task to add new phone masks functionality which will be implemented in 8.3.0 version release.

For now, as a workaround, we suggest disabling the mask check in the phone number (in the designer).
image (3).png

We apologize for any inconvenience this may cause. 
Thank you for choosing Creatio!

Thank you for the confirmation.

Show all comments

Hello,

I created a validation for telephone numbers as explained in this article: Implement the validation of a field value on a page | Creatio Academy
For testing purposes, I added it to the notes field on the contacts form, and it works fine.


However, I want to add the validation to the communications options on the left side of the form.
How do I bind the validation in the viewModelConfigDiff?
Also, only communication options of type "phone number" should be validated.

 

Thanks,

Robert

Like 1

Like

3 comments

Hello,

Currently there is no way to add the validator using the regular approach with the validators property on the schema. However you can try adding it using the formControl for the ContactCommunicationOptionsItems (but note that this will be applied for phones, email, skype and web (in other words for all communication options)).

 

How to add the validator using formControl:

 

  1. Implement the same validator on some separate field on the page
  2. Find this validator in the context of the crt.HandleViewModelAttributeChangeRequest request execution (like request.$context._validators["AccountAccountCategory_List.value"][0]), but replace AccountAccountCategory_List.value with your attribute name on the page to which the validator is added. Also make sure array with only one element is returned (since you can have several validators for the same field and the array of validators can contain more than 1 element thus ...["AccountAccountCategory_List.value"][0] can return another validator.
  3. In the context of the crt.HandleViewModelAttributeChangeRequest request (connected to the change of the ContactCommunicationOptionsItems attribute) add the following code:

request.$context.getControl("ContactCommunicationOptionsItems").formControl.addValidators(request.$context._validators["AccountAccountCategory_List.value"][0])
 

But replace equest.$context._validators["AccountAccountCategory_List.value"][0] with the needed validator.

 

This is the only way to add the validator for this CommunicationOptions component (but once again note that this will be added to all the other communication options). 

Oleg Drobina,

thank you for pointing me in the right direction!

However, I can't get it to run...I used the following code, but the validation won't be triggered:

			{
			    request: "crt.HandleViewModelAttributeChangeRequest",
			    handler: async (request, next) => {
					if (request.attributeName === 'ContactCommunicationOptionsItems') {
						const validators = request.$context._validators;
						const telValidator = validators["StringAttribute_cuzyv0b"]?.[0];
						if (telValidator) {
							request.$context.getControl("ContactCommunicationOptionsItems").formControl.addValidators(telValidator);	
						}
					}					
			        return true;
			    }
			}

What's also strange is that when the handler is executed again (after I changed the field value), all properties of the formControl related to validation (asyncValidator, validator, _rawValidators, _rawAsyncValidators) are empty again!

Any idea what could go wrong here?

Thanks,

Robert

 

Robert Pordes,

Unfortunately no, this was the way I used locally and that worked and maybe the difference may arrise in the application version that was used for tests (8.2.2 in my case) or in other handlers maybe. This should be debugged only, there is no other way to identify what's wrong.

Show all comments

We've been live on Creatio for about 4 months now and one struggle our team is having, is keeping up with returned communication within cases. 

For example: 

Consultant emails Customer from Case, and changes Case stage to waiting on customer. 

Customer responds to email and case is updated. But here is where we are lacking a notification to the consultant so they know the information they need and were waiting on has been returned. 

I"m sure there is some feature or workflow that's being missed. Can anyone advise and type of workflow or setting that can turn on email or message notification when the communication is returned from our customers? 

Like 0

Like

1 comments

Hello, 

 

To achieve this we recommend you to create custom Business Process. Below are the articles from Creatio Academy which you may find helpful: 

https://academy.creatio.com/docs/8.x/no-code-customization/bpm-tools/business-process-setup/process-designer-basics

https://academy.creatio.com/docs/8.x/creatio-apps/category/running-business-processes

 

Thank you for reaching out!

Show all comments

Hello all,

 

I have a client that is trying to add the communication options detail to the Portal user's Profile page in Freedom UI. However, it seems the User profile is no longer visibly connected to the User's contact record. How can we add the detail?

Like 0

Like

3 comments

Hello,

 

Could you please describe the end result that you would like to obtain and the exact steps that you are making?

 

Thank you!

Hanna Skalko,

I would like to add communication options to the user profile page as it could be in the Classic UI. (See below)Image of a Creatio Portal UI page that shows the user's name, address and communication options.

 

I would like to do the same in Freedom UI. However, when I open the Freedom UI user profile page, I haven't been able to find the connection the user's contact in order to add the same details to the page.

Has anybody been able to find an answer to this? Seems strange to me that the user profile can't connect directly to the Contact record in Freedom UI

Show all comments

Hello

 

I'm trying to hide the entire section of 'Do not use', but I can only hide the values of it.

 

This is the code used:

define("ContactCommunicationDetail", [],

    function() {

        return {

            entitySchemaName: "ContactCommunication",

            methods: {

                getRestrictions: function() {

                    return {

                        "DoNotUse": {

                            "Visible": false, 

                            "Enabled": false

                        },

                    };

                }

            },

            // Define the differences in the UI

            diff: /**SCHEMA_DIFF*/[

                {

                    "operation": "remove",

                    "name": "DoNotUse"

                }

            ]

        };

    });

 

Like 0

Like

1 comments
Best reply

Hello,

the items for menu are formed in method getToolsMenuItems with basic structure on the module BaseCommunicationDetailCrtNUI and addition of restrictions in the override of this method in ContactCommunicationDetailCrtNUI,

With the replacing of the module like yours you could implement override function like this or anything similar to remove the undesired menu item. Checked on dev enviroment and seems to do the trick

 

getToolsMenuItems: function() {
				var menuItems = this.callParent(arguments);
				var myMenuItems = this.Ext.create("Terrasoft.BaseViewModelCollection");
				Terrasoft.each(menuItems, function(menuItem, communicationValue) {
					if(menuItem.get("Caption")=='Do not use'){
						menuItems.remove(menuItem);
					}
 
				}, this);
				return menuItems;
			},

 

Hello,

the items for menu are formed in method getToolsMenuItems with basic structure on the module BaseCommunicationDetailCrtNUI and addition of restrictions in the override of this method in ContactCommunicationDetailCrtNUI,

With the replacing of the module like yours you could implement override function like this or anything similar to remove the undesired menu item. Checked on dev enviroment and seems to do the trick

 

getToolsMenuItems: function() {
				var menuItems = this.callParent(arguments);
				var myMenuItems = this.Ext.create("Terrasoft.BaseViewModelCollection");
				Terrasoft.each(menuItems, function(menuItem, communicationValue) {
					if(menuItem.get("Caption")=='Do not use'){
						menuItems.remove(menuItem);
					}
 
				}, this);
				return menuItems;
			},

 

Show all comments

Hi,

 

I'm trying to disable the 'Do not use' Options from the Contact Communication option detail.

Does anybody know how I can do this or where can I find it?

 

I know that if I want to disable the 'Home Phone' option I only need to change it from this lookup, but I cannot find the 'Do not' option in here.

 

Thank you!

Like 1

Like

1 comments

Hello,

 

This task is harder than disabling the option from the lookup. The method that generates the restrict option is getRestrictionsMenuItem in the ContactCommunicationDetail schema. If you need to remove one of the "Do not use" options from the menu, you need to override the logic of this method.

Show all comments

Hi Community, 

 

How can I change the LinkedIn field into Hyper instead of plain text? The web link changed to hyperlink but not social media links as they remain plain text.

 

 

As admin I can see any Linkedin link as hyperlink but for others its plain text. I am hopping its a quick fix just adding All-Employee Role to specific object level permission or something similar.

 

Any help is appreciated!

Like 0

Like

1 comments

Hi Irfan,

 

Thank you for your question!

 

Here are the steps you have to perform to switch on clickability of the LinkedIn URL:



1. Go to Lookups

Image.png

2. Search for Communication option types

Image.png


3. Look here for the LinkedIn item and open it



Image.png

4. Click on + and chose Web type from the list.

Image.png



Also, we recommend you delete the type Social network from here because for now LinkedIn can only be recognized as a web link.

 

Best regards,

Anastasiia

Show all comments

Hi,

 

I am trying to set up a print template for [Contact section]. 

One of the details I want to print out is the phone number which is listed in the field 'communication option' of [Contact section]

I am trying to find that info in 'set up report data' in the printables reports but can not see the data

 

Any one can help please

 

Thanks

Like 0

Like

1 comments
Best reply

Hello Minh,



Try do not to use the "contact communication option" object.

You can find the phone number directly in the contact object:





Best regards,

Bogdan

Hello Minh,



Try do not to use the "contact communication option" object.

You can find the phone number directly in the contact object:





Best regards,

Bogdan

Show all comments

My customer doesn't want to use the communication options, because he just wants to have only one phone number, one mail-address etc.

I created new text fields, respectively we use the standard phone fields on the account entity. I placed this fields in a new field group called "Communication options".

One the normal "web client" we have no problem. With a little bit of configuration in the AccountPageV2 we have some clickable fields on the page.

But I have no idea how to configure this for the mobile client. 

Has anyone implemented something like this before?

Like 1

Like

3 comments
Best reply

Hi Christian,

I assume what you're referring to is making the phone field a clickable field to dial the number in mobile, is this right? 

To do this, you need to first create a module for the account model pages extensions. See https://customerfx.com/article/creating-modules-for-the-creatio-mobile-…

Once that is created, you can add the following to the new module to make the phone field a clickable phone field (in the code below, this is for a field named "Phone" on the Account page. If your phone field is named something else like "UsrOtherPhone", you'd replace the "Phone" in the top line with that instead):

Terrasoft.sdk.RecordPage.configureColumn("Account", "primaryColumnSet", "Phone", {
	viewType: Terrasoft.ViewTypes.Phone
});

Also, this code above also assumes the phone field is in the primary column set. This is the name of the main column group of a page, however it’s possible to create other column groups. If you’ve created another column set that you've added the field to, locate the record page for the Account page that was created by the mobile wizard in the configuration. The record page will be named [Prefix + “Mobile” + EntityName + “RecordPageSettings” + WorkplaceName]. Then you can open that and see the actual name of your column set and replace "primaryColumnSet" in the code above with this name.

Ryan

Hi Christian,

I assume what you're referring to is making the phone field a clickable field to dial the number in mobile, is this right? 

To do this, you need to first create a module for the account model pages extensions. See https://customerfx.com/article/creating-modules-for-the-creatio-mobile-…

Once that is created, you can add the following to the new module to make the phone field a clickable phone field (in the code below, this is for a field named "Phone" on the Account page. If your phone field is named something else like "UsrOtherPhone", you'd replace the "Phone" in the top line with that instead):

Terrasoft.sdk.RecordPage.configureColumn("Account", "primaryColumnSet", "Phone", {
	viewType: Terrasoft.ViewTypes.Phone
});

Also, this code above also assumes the phone field is in the primary column set. This is the name of the main column group of a page, however it’s possible to create other column groups. If you’ve created another column set that you've added the field to, locate the record page for the Account page that was created by the mobile wizard in the configuration. The record page will be named [Prefix + “Mobile” + EntityName + “RecordPageSettings” + WorkplaceName]. Then you can open that and see the actual name of your column set and replace "primaryColumnSet" in the code above with this name.

Ryan

Hello. thanks for your detailed reply. At the moment I'm on vacation. I will try it as soon as possible. Best regards Chris

Ryan Farley,

I tried your solution and it works perfect.

Many thanks for your help

Show all comments

I need to add a fax field on contact object but have that synchronized with ContactCommunication detail (Communication Options). Just like, when a mobile number is added to communication options it automatically updates contact.mobile and vice versa. 

Ideas on how to do it? 

Like 0

Like

6 comments

Hello kumar,

First of all, you'll need to enable the fax communication type for contacts in the Communication option types lookup. See https://share.customerfx.com/GGuWjxy7

Then, once you've added the contact field for Fax on the contact, you can keep it in sync with a process or use an entity event sub-process in the Contact and ContactCommunication objects. The process route is pretty straight forward, however, in order to see it update in the other place right away, you'll want to send a message from the process to the page so you can reload the page and see the change. See https://customerfx.com/article/how-to-refresh-a-page-from-a-process-in-…

Hope this helps

Ryan

Ryan Farley,

Thank you for your reply. 

In the case of contact's phone or email field change on the contact page, the add/edit in contact communication details happen even before save button is clicked. Can such thing be implemented for Fax field as well? 

On account page, unlike contact object, fax field came with out of the box and behaves intuitively, change in account.fax changes right account communiction option right there even before save button is clicked. 

 

Do you think that is not possible with Fax field on Contact? 

Hello Kumar, 

 

The Account object has a base lookup "Fax" field, which can be added to the left panel of the record page and for which the "connection" with the "Communications options"  detail is implemented in a base code, so while changing the value in the column on the left panel the corresponding value will be reflected in the detail (same as for "Email" or "Phone"). However, you can use the "Fax" option for the Contacts record after it's added to the lookup "Communication option types" in the "Communications options"  detail but it won't create "Fax" field for the Contact object. Even after such field is added to the Contact object manually, it still requires the "connection" between field and detail to be implemented by code. As of now, there is no way to implement such functionality only with basic system tools and development is needed.

As a workaround suggestion,  you can proceed with a variant provided by Ryan. 

From our side, we have already registered the corresponding query for our R&D team and will be awaiting for the implementation of the mentioned functionality in the upcoming versions. 

 

Should you have any questions, please let us know!



Best regards,

Anastasiia 

kumar,

Hello kumar. I've not tested this yet, so not 100% sure this will work, but I believe you could do the following and it should work the same as the account page does.

  1. Create a replacing view module for "ContactCommunicationDetail"
  2. Add the following code:
define("ContactCommunicationDetail", ["ConfigurationConstants"], function(ConfigurationConstants) {
	return {
		methods: {
			initMasterDetailColumnMapping: function() {
				this.callParent(arguments);
 
				var mappings = this.get("MasterDetailColumnMapping");
				mappings.push({
					"CommunicationType": ConfigurationConstants.CommunicationTypes.Fax,
					"MasterEntityColumn": "UsrFax" // change this to whatever your Fax column is called on Contact
				});
				this.set("MasterDetailColumnMapping", mappings);
			}
		}
	};
});

That should handle the value getting updated from the communication options detail to the Contact.

Then, on the ContactPageV2 code,

  1. Wire up a change event for the Fax column - see https://customerfx.com/article/triggering-an-event-when-a-field-is-chan…
  2. In the methodName for the change event use the method name "syncEntityWithCommunicationDetail"

Ryan

Thank you Ryan, I actually did the change very close to what you suggested. It works for the UI part of the logic as expected but the Fax field isn't getting saved in the contact object when 'Save' is clicked. 

 

Can't figure out why. 

 

Fax on ContactCommunication is getting updated but fax on contact object is not. The fax field is not passed to the UpdateQuery for contact when Save is clicked. 

Show all comments