In the cloud version, is it possible to remove "SQL query console" menu item from System Designer without losing the ability to use SQL Executor? I mean setting Access to “SQL query console” section permission to No won't solve the question, because it will deny access to SQL Executor, while I want just to remove the link from UI, keeping the ability to use the tool in requests.

Like 1

Like

1 comments
Best reply

If you want to remove it completely:

1) Make sure your package has Samarasoft.SqlConsole as a dependency (or add this in Custom package)

2) Create a replacing view model and select parent "SystemDesigner"

3) Add this code:

define("SystemDesigner", [], function() {
	return {
		diff: [
			{
				"operation": "remove",
				"name": "SqlConsoleLink"
			}
		]
	};
});

If you want to only show it for the Supervisor user, do steps 1 & 2 above, but use this code instead:

define("SystemDesigner", [], function() {
	return {
		attributes: {
			"IsSqlConsoleVisible": {
				dataValueType: Terrasoft.DataValueType.BOOLEAN
			}
		},
		methods: {
			init: function() {
				this.callParent(arguments);
				this.set("IsSqlConsoleVisible", 
					Terrasoft.SysValue.CURRENT_USER_CONTACT.displayValue === "Supervisor"
				);
			}
		},
		diff: [
			{
				"operation": "merge",
				"name": "SqlConsoleLink",
				"values": {
					"visible": { "bindTo": "IsSqlConsoleVisible" }
				}
			}
		]
	};
});

Ryan

If you want to remove it completely:

1) Make sure your package has Samarasoft.SqlConsole as a dependency (or add this in Custom package)

2) Create a replacing view model and select parent "SystemDesigner"

3) Add this code:

define("SystemDesigner", [], function() {
	return {
		diff: [
			{
				"operation": "remove",
				"name": "SqlConsoleLink"
			}
		]
	};
});

If you want to only show it for the Supervisor user, do steps 1 & 2 above, but use this code instead:

define("SystemDesigner", [], function() {
	return {
		attributes: {
			"IsSqlConsoleVisible": {
				dataValueType: Terrasoft.DataValueType.BOOLEAN
			}
		},
		methods: {
			init: function() {
				this.callParent(arguments);
				this.set("IsSqlConsoleVisible", 
					Terrasoft.SysValue.CURRENT_USER_CONTACT.displayValue === "Supervisor"
				);
			}
		},
		diff: [
			{
				"operation": "merge",
				"name": "SqlConsoleLink",
				"values": {
					"visible": { "bindTo": "IsSqlConsoleVisible" }
				}
			}
		]
	};
});

Ryan

Show all comments

Hello community,

 

Let’s say I have sent an email to a contact about a webinar. After some days I want to follow up  to this email. Is there a way to replyall or reply to that email instead of sending a different mail? The requirement is to have a single email thread instead of sending multiple emails about same thing. How can I achieve this through business process?

 

Thanks in advance!

Like 0

Like

1 comments

Hello Shivani,

 

Basically we don't have such functionality in our system. Alternatively, you can read the body of the letter that arrived (if it is available in the process) and, through the parameters, throw it into a new letter. It's essentially just working with parameters. 

 

Please also note that our core R&D department has a suggestion registered on their side to make possible send an email in single thread via business process in further releases. 

 

Thanks for the great idea!

 

Regards, 

 

Bogdan L.

Show all comments

Other CRM's I've used have a bcc system email address that can be included in marketing emails sent from outside the CRM such that when those emails are sync'd to the CRM, the emails get connected to the right contact.

 

Does Creatio have a system email that can be included in these marketing emails so that they can be sync'd to contacts in the Creatio database? If so, where do I find that?

 

If not, does anyone have another suggestion? 

Like 0

Like

2 comments

Hello Mary, 



Unfortunately, there is no such functionality in our system due to the basic logic of the marketing emails. Please find more information here



Thank you!



Best regards,

Bogdan

OK, then is there a white paper or something that recommends how to attach emails sent from a 3rd party marketing mail platform to my creatio contacts?

Show all comments

Hello community,

 

We have a use case where a lead owner needs to perform certain approval tasks. The task can be approved or rejected. Is it possible to send an email to that contact with approved, rejected buttons and store the result of whichever button the email recipient clicked in creatio?



 

Like 0

Like

2 comments

Hello Shivani,



Unfortunately, it is impossible to implement your business task, as for now.



But we have already registered the idea for our R&D team to implement this functionality in further releases. I will assign your case to this project in order to increase its priority.  



Best regards,

Bogdan

Bogdan,

Thank you Bogan. I was wondering if this could be replicated using OOTB Case feedback process which sends the satisfaction smilies. If we tried tot replicate this, would we require a SysPortal user license??

Show all comments

Hi Team,

 

We are trying to add new detail in a lead and post the lead is converted to opportunity, have written process to copy the values added in the lead detail to the created opportunity detail. The process is completed and there is no error and the value gets inserted into the DB but in the UI [filed] the value is empty/doesn't show up

 

Steps :

Created a new detail in the lead and have values of data type : date, float, integer.

 

Similar detail is created in opportunity also

 

In the lead, have filled the values for all the three data types and after converting the lead to opportunity.

Have written a process to map the detail value from lead to opportunity detail

Verified the DB, post the data insertion part. All the datatype value is correctly inserted.

 

But in the opportunity section, when we open the detail.  Values for data type float, integer is available but the value for date is missing?

 

Create instance being used is 7.15.1

Question : What could be the reason that a date value is present in the DB but doesn’t show up in the UI/front end.

Note : In both details, the data type is “Date” only

File attachments
Like 0

Like

1 comments

Hi Amritha, 



Such scenario works properly on newer OOB version of the application. 

Please check if there are any errors in the developers console when opening the page. 

I'd recommend you to update the application to the newest version. 

If the issue persists or the update is not an option for you please contact us at  support@creatio.com and provide us with access/ copy of the DB. 



Best regards,

Yurii

Show all comments

Dear,

I would like to export accounts from creatio with their last order number and the date of the order.

How can i do that ?

Thank you !

Nicolas

Like 0

Like

1 comments

Dear Nicolas,

 

Unfortunately, we do not have the base tools to achieve the described business task.



Best Regards,

Ivanna.

Show all comments

Hi, 



I updated the values of existing records of an OOB lookup and I want to bind them to my package. When trying to do that is showing me this error: 



 

How can we update already binded data with our new values? I'm having the same problem when trying to bind the columns of sectionlist of an OOB section. 

 

 

Creatio Version: SalesEnterprise_Marketing_ServiceEnterprise 7.18.2.1236

 

 

Like 0

Like

3 comments

Hello Javier,

 

Hope you're doing well.

It seems at the moment the only way to solve your business task is to create a separate SQL script that will transfer the required data:

Additionally, in general, there is a general recommendation not to consider the meaning of base values, but to add new ones to the reference and bind them to a custom package. This approach simplifies the transfer of data between environments and helps avoid the hassle after an upgrade or, for example, after re-installing the data bindings in the environment.

 

Best regards,

Roman

 

Hi Roman, 

 

The problem is that I can't bind the default columns of an OOB section, and that is something that I can't create a new record to fix it. 

 

There should be a easy way to bind configuration of the section grid, R&D should take a look at that. 

 

Best regards, 

 

Javier

Hello Javier,

 

Thank you for your reply. I will create a suggestion for our R&D team so they could implement the logic of binding system settings values and OOTB lookup values that are already bound to base packages in the next application releases.

Thank you for finding such a system behavior and helping us in making the application better!

 

Best regards,

Roman

Show all comments

I'm calling REST api of Contact ,Account and Case management for CRUD operation. I'm calling Creatio CRM REST from WSO2 EI. It is identical the Request which is send from the Postman or Rest Client.

But it gives 302 Status for WSO2 EI calling the  Creatio REST while it gives 403 for Postman or Restclient If BPMCSRF header doesn't contain cookie value.

 

If the BPMCSRF header value contains correct cookie value from the Login request, Postman or Restclient gives 201/200 for success operation and WSO2 EI gets same 302 response.  Login API call working fine from the WSO2 EI. 

 

Sample Request from WSO2 EI

"POST /0/odata/Account HTTP/1.1[\r][\n]"

"Accept: application/json;odata=verbose[\r][\n]"

"X-Requested-With: XMLHttpRequest[\r][\n]"

"ForceUseSession: true[\r][\n]"

"Content-Type: application/json[\r][\n]"

"Content-Length: 228[\r][\n]"

"Host: 103594-crm-bundle.creatio.com[\r][\n]"

"Connection: Keep-Alive[\r][\n]"

"User-Agent: Synapse-PT-HttpComponents-NIO[\r][\n]"

"[\r][\n]"

"{"Name":"API Test","AccountId":"e6574af1-3e92-4099-958e-e798f52ee016","JobTitle":"Marketing manager","BirthDate":"0001-01-01T00:00:00Z","Phone":"","MobilePhone":"+1 213 566 34 22","Email":"test@gmail","Completeness":30,"Age":19}"

 

Sample Response from Creatio 

 

"HTTP/1.1 302 Found[\r][\n]"

"Server: nginx/1.14.1[\r][\n]"

"Date: Thu, 16 Sep 2021 06:21:05 GMT[\r][\n]"

"Content-Type: text/html; charset=utf-8[\r][\n]"

"Content-Length: 170[\r][\n]"

"Connection: keep-alive[\r][\n]"

"Cache-Control: private[\r][\n]"

"Location: /Login/NuiLogin.aspx?ReturnUrl=%2f0%2fodata%2fAccount[\r][\n]"

"X-AspNet-Version: 4.0.30319[\r][\n]"

"X-Powered-By: ASP.NET[\r][\n]"

"X-Frame-Options: SAMEORIGIN[\r][\n]"

"X-Content-Type-Options: nosniff[\r][\n]"

"[\r][\n]"

"Object moved[\r][\n]"

"

Object moved to here.

[\r][\n]"

"

.

Like 0

Like

7 comments

It means that you are not authenticated properly in the application (see location part  "/Login/NuiLogin.aspx?ReturnUrl=%2f0%2fodata%2fAccount", you were redirected to the login page). You need to check all the cookies that are passed to the OData request that you send and compare it with cookies you get in Postman + perform more tests to see which cookie set will result in a successful call.

Oscar Dylan,

If the authentication error, it should be 401 or 403 status. But here it is always redirect to login page with 302. verified the headers from Postman and client app both, those are identical. 

Anusha,

 

That is correct - the resource was found, but you need to authenticate first (once again, pay attention to the location path /Login/NuiLogin.aspx?ReturnUrl=%2f0%2fodata%2fAccount). The system automatically redirected you to the login location.

 In Postman you receive 200 OK to the request, but before it you receive 302 response (can check in the Postman console):

Hi Oscar,

 

Thank you very much for the information, but still I'm confused authentication approach. This is what I'm doing.

 

When I get 302 for Contact endpoint, then I perform the authentication to  auth endpoint  POST call <Creation-app-host>/ServiceModel/AuthService.svc/Login with the body [1]. Then I see cookies details in the response with BPMCSRF cookie with 200 response.  Then I send again the Contact endpoint with those auth cookies, [2]  are the headers which I send to Contact endpoint again. But still same 302 redirection is there even after successful authentication. 

 

Could you please help me on this.

--- does the above approach wrong

--- does the auth headers wrong mentioned in [2]

 

If above approach wrong, please help me to find request format from the client application to complete the successful Contact create through the  client.

 

[1] body

{

   "UserName":"xxxxxxxxx",
   "UserPassword":"xxxxxxx"
}

 

[2] . Headers

 

Accept: application/json;odata=verbose[\r][\n]"

"BPMCSRF: cvHrL0GEHYdswl1QZh8Ie.[\r][\n]"

"ForceUseSession: true[\r][\n]"

"Set-Cookie: .ASPXAUTH=F82E.... "

"Set-Cookie: BPMCSRF=cvHrL0GEHYdswl1QZh8Ie."

"Set-Cookie: BPMLOADER=zchmt5tlzildsx22zlle1wnk"

"Set-Cookie: UserName=93|117|112|101|114|118|105|115|101|114"

"Content-Type: application/json; charset=utf-8[\r][\n]"

"Content-Length: 228[\r][\n]"

"Host: 103594-crm-bundle.creatio.com[\r][\n]"

"Connection: Keep-Alive[\r][\n]"

"User-Agent: Synapse-PT-HttpComponents-NIO"

 

Hi Anusha,

 

Unfortunately you have to run test and find a way to pass the cookies to the request properly in terms of your integration. For example I have this cookie header in Postman:

 

BPMSESSIONID=xjjysy25na5ig5sqbgdyxd14; visid_incap_2180455=49BJJNmNT1uK2vo4spt1YM3yQWEAAAAAQUIPAAAAAAB7xEOk/CkixDKkf1pVpwRW; .ASPXAUTH=0129CAB95F4B3C753B6B00E3BBC7F15E9F0CF094A9209DCC541E033D963163699488F8A6AF3F3F845BABCA582CE603AD00E4AC3EE005216347F4B399235033BF60A3338158451099DEC44FE8B1920F57398E4439EE170B436C75FF3BA3BFC2C28BF8BCCB6D37261D9942F97133800DFEED491B8C8671824183CF9CD2CC20549B5BF672599D3F9CAD151E6F4C92A95C7FC888E4214039842D8B53E540D03495542D8C60B238BA9759FFAE27920E7688D35C92795D59741A8D0E5B34234C6DCC769F79A176BF63CCA190D0BEC19A8ACF3793A6522866BF14A14092474BBA68D100282CE8CB6DAB3C8041DB7544EABD759617446687311CE784129E88BE2558CE2917C790372F214D6E8D05B630B789F0D37E4EBB60E06A6B0C20FE075ED78960211A017F115D32F53B2D76E9B2AF302EC3887E47FE421CA76D246B0FCD8260B25380BED735F19C87C0545187841709C5A75B5547CDF43D52304C9D4760C8E625F7DA674A74; BPMCSRF=ulHtF40aiiRNzRWk5BMTWO; BPMLOADER=mnbxfikelfxqnnl2iz0aiobd; BPMSESSIONID=xjjysy25na5ig5sqbgdyxd14; UserName=83|117|112|101|114|118|105|115|111|114

 

And I guess all of them should be also passed to your request. This is not something that can be solved on the community, you need to test your integration authentication to find a correct way.

 

Also check if your authentication in terms of your integration is configured in the similar way to the one explained here.

Hi Oscar,

 

Thanks for the information. I will check further.

 

Thanks & Best Regards

Anusha

Show all comments

From the /ServiceModel/AuthService.svc/Login authorization API respond with 4 Set-Cookie headers in the response. But according to the spec [https://datatracker.ietf.org/doc/html/rfc6265#section-4.1] , "Servers SHOULD NOT include more than one Set-Cookie header field in the same response with the same cookie-name."  From the client application, it can't get the all 4 header values, only first one retrievable. Could you please give a fix or suitable workaround for this.

Like 0

Like

2 comments
Best reply

Hi Anusha, 

 

it's now allowed in HTTP/2 (https://datatracker.ietf.org/doc/html/rfc7540#section-8.1.2.5), which specifies: 

 

8.1.2.5.  Compressing the Cookie Header Field
 
   The Cookie header field [COOKIE] uses a semi-colon (";") to delimit
   cookie-pairs (or "crumbs").  This header field doesn't follow the
   list construction rules in HTTP (see [RFC7230], Section 3.2.2), which
   prevents cookie-pairs from being separated into different name-value
   pairs.  This can significantly reduce compression efficiency as
   individual cookie-pairs are updated.
 
   To allow for better compression efficiency, the Cookie header field
   MAY be split into separate header fields, each with one or more
   cookie-pairs.  If there are multiple Cookie header fields after
   decompression, these MUST be concatenated into a single octet string
   using the two-octet delimiter of 0x3B, 0x20 (the ASCII string "; ")
   before being passed into a non-HTTP/2 context, such as an HTTP/1.1
   connection, or a generic HTTP server application.
 
   Therefore, the following two lists of Cookie header fields are
   semantically equivalent.
 
     cookie: a=b; c=d; e=f
 
     cookie: a=b
     cookie: c=d
     cookie: e=f

Please also check out this article:

 

https://datatracker.ietf.org/doc/html/rfc6265#page-7

 

Best Regards, 

 

Bogdan L.

 

Hi Anusha, 

 

it's now allowed in HTTP/2 (https://datatracker.ietf.org/doc/html/rfc7540#section-8.1.2.5), which specifies: 

 

8.1.2.5.  Compressing the Cookie Header Field
 
   The Cookie header field [COOKIE] uses a semi-colon (";") to delimit
   cookie-pairs (or "crumbs").  This header field doesn't follow the
   list construction rules in HTTP (see [RFC7230], Section 3.2.2), which
   prevents cookie-pairs from being separated into different name-value
   pairs.  This can significantly reduce compression efficiency as
   individual cookie-pairs are updated.
 
   To allow for better compression efficiency, the Cookie header field
   MAY be split into separate header fields, each with one or more
   cookie-pairs.  If there are multiple Cookie header fields after
   decompression, these MUST be concatenated into a single octet string
   using the two-octet delimiter of 0x3B, 0x20 (the ASCII string "; ")
   before being passed into a non-HTTP/2 context, such as an HTTP/1.1
   connection, or a generic HTTP server application.
 
   Therefore, the following two lists of Cookie header fields are
   semantically equivalent.
 
     cookie: a=b; c=d; e=f
 
     cookie: a=b
     cookie: c=d
     cookie: e=f

Please also check out this article:

 

https://datatracker.ietf.org/doc/html/rfc6265#page-7

 

Best Regards, 

 

Bogdan L.

 

Bogdan Lesyk,

Thanks Bogdan. It was really helpfull, will check alternative way to process from the client API side.

Show all comments

Hi, community.

I have custom activity types besides the factory ones (Call, Email, etc):

 

 

But in the case manager of sections, when trying to set up activities tied to the stages, I can only see these:

 

 

Why can't I see my other activity types?

 

And also, how can I add the activity category field to this view? Or any other field, for that matter? Which schema must I modify and how?

 

Thank you!

Like 0

Like

1 comments

Hi Juan, 

 

"Tipos de actividades" I believe that's "Activity types", but the values you may choose in "Task category" ("Categoria de tarea") are fields from "Activity Category" lookup. 

 

So please add required values to this Lookup and you will be able to select them.

 

Best Regards, 

 

Bogdan L. 

Show all comments