Hi, 

 

Is it possible to add a datetime quick filter to a grid, where you set a time to the filer?

 

Thank you. 

Like 0

Like

3 comments
Best reply

Javier Collazo,

 

We have double checked it with the responsible team and unfortunately, it is not possible to setup Time specifically in this filter. The issue here is that name Date/Time is confusing for the users and therefore we have registered this problem for our R&D team to either change the filter name or add the ability to also apply a filter by time.

Hello,

 

You can find the instructions on how to set up a date/time quick filter in this academy article.

Thank you Mira for your answer, but I already tried what is in the guide and it does not include the time in the filter. 

 


I need to be able to filter by time too. 

Javier Collazo,

 

We have double checked it with the responsible team and unfortunately, it is not possible to setup Time specifically in this filter. The issue here is that name Date/Time is confusing for the users and therefore we have registered this problem for our R&D team to either change the filter name or add the ability to also apply a filter by time.

Show all comments

Hello Community,

 

            I have created a business process using a script element that relies on "Newtonsoft.Json.Linq". 

 

 

Scenario 1 : When I add the business process to a custom package, it works perfectly. As shown in below Image

 

#Issue

Scenario 2 : When I add the business process to my app package "UsrG***", it throws an error during publishing due to the Linq dependency.

 

Let me know if you need any more adjustments!

 

Regards,

Ajay K

 

 

Like 0

Like

2 comments
Best reply

Hello,
 

This situation can occur if your custom "UsrG***" package has the "Compile into a separate assembly" attribute.

Compile

When converting a package to assembly package (AP), transferring a schema with code to a AP, or creating a version of a compiled process, the compilation error "The type or namespace cannot be found" occurs if the code uses types from external libraries located in other packages.
To solve your problem, deselect the "Compile into a separate assembly" checkbox for your package and recompile. This should solve the problem.

remove parameter
 

Thank you.

Hello,
 

This situation can occur if your custom "UsrG***" package has the "Compile into a separate assembly" attribute.

Compile

When converting a package to assembly package (AP), transferring a schema with code to a AP, or creating a version of a compiled process, the compilation error "The type or namespace cannot be found" occurs if the code uses types from external libraries located in other packages.
To solve your problem, deselect the "Compile into a separate assembly" checkbox for your package and recompile. This should solve the problem.

remove parameter
 

Thank you.

Serhii Parfentiev,

Thank you.

Show all comments

When making changes to the section list and/or section pages for the mobile app, should I create a new packages or is it ok to leave the current package as "custom" and make the changes via the mobile application wizard?

Like 0

Like

1 comments

Hi!

It is normal to leave the current package as "custom". You can change the package only if you want to keep some functionality in a separate package. 

Best regards, 
Anton

Show all comments

I am connecting a third-party API to Creatio, it delivers different types of data including this:
"user_id": [
60,
"Luismary Mendez"
]
In the parameters of the Creatio response I have set it as an Array Text and as an Object

 

But when I try to connect this variable to the process it does not display it in the list of possible result values.

The field is Vendedor:

Like 0

Like

5 comments

This is because the user_id is an array in the payload received from the web service, not just a single value. If you know the array will only contain a single set of values and the first value in the user_id array will always be the integer Id and the second value will always be the text name, you could flatten them out by mapping them as text and integer values:

  • Map ID as: user_id[0]
  • Map Name as: user_id[1]

Ryan

Ryan Farley,

What you're telling me is that I have to set the user_id as an object?

You could, but that doesn't pass to a subprocess (with an array inside an array). If you are able to flatten it out and if you know the array will only contain a single set of values and the first value in the user_id array will always be the integer Id and the second value will always be the text name, that will pass easily to a subprocess. Like this for the "user_id" first element in array, which is an int from what you've shared:

The second value in the user_id array, which is a string from what you've shared, would look like this:

This is assuming your JSON looks like this:

{
	"result": [
		{
			"id": "someid",
			"name": "somename",
			"user_id": [
				60,
				"Some name"
			]
		}
	]
}

You're basically changing it from an array with an int in index 0 and string in index 1 to flattened out properties pointing to the value in index 0 and index 1. This is, of course, assuming that the user_id array will only contain an int at index 0 and a string at index 1.

Ryan

Ryan Farley,

Thanks Ryan, I understood your explanation, I will apply it and let you know how it goes.

Carlos Soto,

Thanks Ryan. It's works

Show all comments

Good afternoon!

I am trying to deploy deduplication-web-api using docker container registry.creatio.com/dup-web-api:3.0.12

 

I see this problem in the logs.

 

fail: Microsoft.AspNetCore.Server.Kestrel[13]
     Connection id "0HN5FOGURGKI1", Request id "0HN5FOGURGKI1:000000E2": An unhandled exception was thrown by the application.
     System.InvalidOperationException: Synchronous operations are disallowed. Call WriteAsync or set AllowSynchronousIO to true instead.
        at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseStream.Flush()
        at System.IO.StreamWriter.Flush(Boolean flushStream, Boolean flushEncoder)
        at System.IO.StreamWriter.Dispose(Boolean disposing)
        at System.IO.TextWriter.Dispose()
        at App.Metrics.Formatters.Prometheus.Internal.AsciiFormatter.Write(Stream destination, IEnumerable`1 metrics, NewLineFormat newLine)
        at App.Metrics.Formatters.Prometheus.MetricsPrometheusTextOutputFormatter.WriteAsync(Stream output, MetricsDataValueSource metricsData, CancellationToken cancellationToken)
        at App.Metrics.AspNetCore.Endpoints.Middleware.MetricsEndpointMiddleware.Invoke(HttpContext context)
        at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[TContext](IHttpApplication`1 application)

 

appsettings.json looks like this:

 

root@deduplication-web-api:/app# cat appsettings.json
{
 "Version": "1.0.0",
 "Logging": {
   "LogLevel": {
     "Default": "Warning"
   }
 },
 "Kestrel": {
   "AllowSynchronousIO": true
 },
 "AllowedHosts": "*",
 "ApplicationBasePath": "/",
 "MetricsOptions": {
   "Enabled": true,
   "ReportingEnabled": true,
   "GlobalTags": {
     "app": "deduplication-web-api",
     "env": "production"
   },
   "DefaultContextLabel": "deduplication-web-api"
 },
 "MetricsWebTrackingOptions": {
   "ApdexTSeconds": 0.1,
   "ApdexTrackingEnabled": false,
   "IgnoredHttpStatusCodes": [],
   "IgnoredRoutesRegexPatterns": [],
   "OAuth2TrackingEnabled": false
 },
 "MetricEndpointsOptions": {
   "MetricsEndpointEnabled": true,
   "MetricsTextEndpointEnabled": true,
   "EnvironmentInfoEndpointEnabled": true
 },
 "RabbitConfiguration": {
   "RabbitMQUri": "HIDDEN",
   "QueueName": "dup-start-deduplication-task",
   "ConnectAttempts": "5",
   "ReconnectInterval": "0.00:00:05",
   "NetworkRecoveryInterval": "0.00:00:05"
 },
 "RabbitPublisherConfiguration": {
   "QueueName": "dup-start-deduplication-task"
 },
 "DataServiceRestConfiguration": {
   "DataServiceUri": "http://deduplication-data-service/api"
 },
 "Logger4NetConfiguration": {
   "LoggerName": "bulk-deduplication-logger",
   "LoggerRepositoryName": "default",
   "LogFilePath": "/app/config/log4net.config"
 },
 "DuplicatesSearchConfiguration": {
   "DefaultMaxDuplicatesPerRecord": 100
 }
}

 

Can you please tell me what the problem could be?

Like 2

Like

3 comments

Hi Igor,

 

The basic appsettings.json does not mention "Kestrel": { "AllowSynchronousIO": true }. 

 

 

Could you please let us know if an error occurs without this parameter?

Sergii Zhmurko,


Yes, you are right, I found this solution on the internet but it didn't help.

Hi Igor,

 

Try redeploying the service with only the basic settings. If the error occurs again, please contact Creatio support, providing the logs of all containers and the docker-compose file you are using for deployment. 

Additionally, please include your server specifications in the request. We will then investigate the issue in more detail.

Show all comments

Hello Community,

 

    I have created Business Process 1 with three parameters:

  1.  One parameter with the data type 'Unique identifier' to take input.
  2.  Two parameters with the data type 'Text' for internal use, as shown in the image below.

          When calling Business Process 1 as a sub-process from Business Process 2, I want to hide Internal Parameter 1 and Parameter 2. (Below Image shows Business Process 2)

Is it possible to hide these internal parameters, or is there any other solution to keep them from being visible?

 

Regards,

Ajay K

 

Like 0

Like

2 comments

Hello!

 

At this moment, we do not have such functionality. We will pass this recommendation on to our RnD team. 

Yes, it would be useful to have "internal only" type parameters, as plenty of the ones used in creating BPs are exactly that. Currently what I do is set them to output params rather than in/out params, so that they don't appear as params to be populated when used elsewhere.

 

Along with internal only params, it would be nice to have required params for BPs too, which would go to an error state in the logs if left unpopulated.

Show all comments
Question

we use 0auth (identity server) to generate token and use that token to access custom apis

it was work fine but now it give 403 status code

Like 0

Like

1 comments

Hello,
 

Unfortunately, without analyzing the issue on our end and without access to your site or Postman collection, we cannot definitively determine why you are encountering a 403 error.


Our general recommendation is to verify the accuracy of your request and connection settings according to our documentation:


https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platform/integrations-and-api/authentication/oauth-2-0-authorization/identity-service-overview

https://documenter.getpostman.com/view/10204500/SztHX5Qb?version=latest…
 

If the error persists and the documentation does not resolve the issue, please create a support request at support@creatio.com. Provide your Postman collection, and we will review and assist you from our side.


Thank you, and have a great day!


Best regards,  
Orkhan

Show all comments

Hi, 

In classic UI, when we integrated with forms, we had to add hardcode on a webpage, but then you could configure in nocode in Creatio some hidden fields with prefilled values. That was very handy.

I have found similar things set up in Creatio in Freedom UI with the Facebook forms.

But this is where it gets confusing:This "Facebook only" section is based on Landing Page object which gives us the possibility of having pages that would regroup forms submitted (rather than a full list of all forms) and gives possibilities, in nocode, to decide if you want to create a lead when you create a contact and add hidden field values. But only Facebook Forms is built on this object, rather than having any form AND facebook forms. 

It's like there is what is needed in Creatio to handle normal forms or LinkedIn Forms with hidden fields in nocode, but that was only set up a couple months ago for Facebook Forms. 

Is it planned to evolve the use of Landing Page object ? Or do we need to do some adaptations ourselves ?

This is actually extremely important to provide Marketing users more autonomy, than having to depend on the IT team to work with field IDs.. etc....

Thanks, 

Damien

Like 1

Like

4 comments

Hi!

Currently, only Facebook forms have been adapted for Freedom UI. You can also add the old section with ALL forms to Classic UI and use it, it still works.
 

For now, we do not plan to evolve the use of Landing Page object. 

As you know, landing pages are a great way to capture leads and generate interest in your products or services. However, they can be limited in terms of the data they can collect and how they can be integrated with other systems. 

Webhooks, on the other hand, are a more powerful and flexible way to collect data from your landing pages. They allow you to send real-time data to your Creatio CRM system, which can then be used to trigger automated workflows, update customer records, and generate reports. 

Here are just a few of the benefits of switching to webhooks: 

1. More automated workflows: Webhooks can be used to trigger automated workflows in your Creatio CRM system, such as creating new records of any type. 
2. Better integrations: Webhooks can be integrated with a variety of other systems, such as marketing automation platforms and customer support software. 
3. Enhanced error handling: Webhooks provide robust error handling capabilities, ensuring that data is delivered successfully even in the event of unexpected issues. This minimizes data loss and ensures that your Creatio CRM system remains up-to-date with accurate information. 

If you're looking for a more efficient and effective way to collect data from your landing pages, I highly recommend switching to webhooks. 

To help you get started, I've included a link to our webhook setup guide below: https://academy.creatio.com/docs/8.x/no-code-customization/base-integrations/webhook-service-integration/overview

Best regards, 
Anton
 

Anton Starikov,


Hi Anton, 

Thank you for your detailed answer :). 

However, it seems you do not have understood my question.

I have switched already webhooks. It does indeed possibilities. But, on a business marketing user side, the use of webhooks is really incomplete today in Creatio, there's loads to build, for things that honestly could easily be there OOTB...

For example, everytime we have a new form we want to integrate with (Landingi, Wordpress, etc...) for which we have fields we need to map in Creatio with specific values (drop downs and all), we need to work with IDs... it's not a natural nocode work like it used to be. 

Also, when sychronising the webhooks in Creatio, using the FormSubmit object for example, we only have a list of Formsubmits section rather than a structured way to put them all together under one name, like the "Facebook form" section offers... This is quite inconvenient way to work.

Also, the documentation and examples on how to use webhooks is really scarce in the academy, and mainly limited to using FormSubmit. Which has unforeseen limitations, such as creating a contact record not using all the contact fields available (Eg: https://community.creatio.com/questions/contact-data-submitted-form ). 

On theory, it is great that possibility of using Webhooks is provided. 

In practice, the use of them is not polished and could be greatly improved both on the admin and on the non-admin user side of things.

Damien

 



 

I do love using webhooks for landing pages, much more flexible for the most part. However, one thing I miss is the ability to set defaults. For the older landing pages, you had a record defined for each form, and then could define default values for a specific form inside of Creatio. You could change those defaults in Creatio without needing to modify the HTML for the form on the website. That was great and is a missing part of using webhooks. 

I would love to see the following changes for webhooks. 

  1. Ability to create a specific webhook for a specific purpose (it could be named in a way that defines it's purpose)
  2. Records could be tied back to the webhook it came in through, so you know it came from webhook "ABC" in the same way you knew a record came from Landing Page ABC. This is really more of a way to identify the form (in the same way you could identify a record came from a landing page) - this one might not really be doable since not every usage of webhooks is a "form", but maybe that could be a simple option on the webhook to add an entry to some table that can generically link to any object type?
  3. Defaults could then be added on a webhook-by-webhook basis so any record that came in via a specific webhook would have those default values added

Sure, you can do all of this with webhooks now by including extra data or maybe an extra process to add some of the default values based on data that identifies where it came from, which would exist as hidden values in the HTML of the form. But that means possibly changing the HTML if the defaults ever need to change and it was so easy to manage the defaults for landing pages before - it would be great to have for webhooks. Plus, it's up to you to include some way to identify that a record came from a specific webhook (really meaning from a specific form)

Ryan

Ryan Farley,


thanks, exactly what I was trying to say for the setting defaults part, but in much better writing 😅

There is a section with defaults used at the moment in Freedom UI, the Facebook form section. If you create  a form their with defaults, and you add that form ID in your webhook (field that already exists by the way...), there should be an easy and OOTB way to add those defaults. Which as such is not a new feature, just bringing back classic UI landing page integration feature of defaults... 

We would have then the best of both worlds 🙂

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've created a landing page record in Creatio for collection contact data, which creates Contacts, not Leads. It works fine, but I would like to extend the list of the fields which are involved in Contact creation.

 

I mean that data from all neccessary fields from my webform is transfered in new Submitted form record. But for the Contact record the only fields FullName, Phone and Email are used by default. If I try to add more fields (jobtitle, for example), their value are not transfered to Contact record despite of configured mapping on the webform side.

 

I've checked the BP "Searching and creating contact" and found that it can read only few contact fields from web service data (from web to object mechanism). So, my question is how can one extend the list of the Contact fields obtained from web to object mechanism? Or is there another way for solving my task?

 

Thank you!

 

 

 

Like 1

Like

4 comments

Hi, 

Good question indeed, was wondering recently how to increase that. Documentation is scarce on how to configure webhooks further than FormSubmit and OOTB behaviour.

Damien

I guess there might be another way: to build custom business process that will start on creating of new Submitted form record and will map and transer data from form record to corresponding contact record. But I'm not sure. 

There is an out of the box process that does this that you could extend. It's called "Populating Contact with Submitted form's data". It's a pretty simple process and would be easy to include additional fields. 

If you didn't want to create a new version of that process, you could also just create a new process that had a start signal of Submitted form added and contact is filled in or Submitted form modified in contact field (and it's filled in) and then copy over the remaining values.

Ryan

Ryan Farley,

Thanks a lot, will go to try

Show all comments