Hi, 

I'm looking for some guidance on setting up a process.

 

I want the process to run once per week, reading all Activities where the start date is <= Yesterday and the field (Result) is not filled in. 

Then I want the process to send 1 E-mail to the organiser listing the records that need the results field completing. 

 

I'm  relatively new to processes and sub processes so any guidance would be really appreciated.

 

Like 0

Like

1 comments

Hello Tom,

 

You can design your business process to run once a week with a help of "[Start timer] event" element, more detailed information is available on our Academy:

https://academy.creatio.com/docs/user/bpm_tools/process_elements_refere…

 

Best regards,

Anastasiia

Show all comments

Hi Community,

Can we add some default text to columns when column value is empty? just like placeholders in input field.

 

Thank you in advance.

 

Regards,

Manideep

Like 0

Like

1 comments

Hello,

 

Pease note that you can set a default value for a column in the configuration section. Find the object where this column is located, open the settings of the column and specify its default value there:

 

Alternatively, you can build a business process that will run automatically upon creating a record and will fill in the value of the needed column if it's empty.

Show all comments

Hello, 

lately, I had a look at the ML models and wonder why the opportunity scoring remains at zero since the scoring widget was added : 

The OOB ML Model (Predictive Opportunity Scoring) stop with this error :

Can't automatically determine type for expression(s): StartDateLastStage. Generated query: SELECT [O].[Id], [O].[CreatedOn], [OIS].[StartDateLastStage], [O].[TypeId], [O].[StageId], [O].[AccountId], [O].[CategoryId], [O].[MoodId], [O].[IsPrimary], [O].[PartnerId], [O].[Budget], [O].[Amount], [O].[SourceId], [O].[ResponsibleDepartmentId], [O].[LeadTypeId], [A].[OwnershipId], [A].[IndustryId], [A].[TypeId] [AccountTypeId], [A].[AccountCategoryId], [A].[EmployeesNumberId], [A].[AnnualRevenueId], DATEDIFF(DAY, [O].[CreatedOn], [OIS].[CloseDate]) [DaysInFunnel], DATEDIFF(DAY, [OIS].[StartDateLastStage], [OIS].[CloseDate]) [DaysInLastStage], ( SELECT COUNT(*) FROM [dbo].[OpportunityContact] [OC] WITH(NOLOCK) WHERE [OC].[OpportunityId] = [O].[Id]) [OpportunityContactsNumber], ( SELECT COUNT(*) FROM [dbo].[Contact] [C] WITH(NOLOCK) WHERE [A].[Id] = [C].[AccountId]) [AccountContactsNumber], ( SELECT COUNT(*) FROM [dbo].[Lead] [L] WITH(NOLOCK) WHERE [L].[CreatedOn] < [OIS].[CloseDate] AND [L].[QualifiedAccountId] = [A].[Id]) [AccountLeadsTotalNumber], ( SELECT COUNT(*) [cnt] FROM [dbo].[Activity] [Act] WITH(NOLOCK) INNER JOIN [dbo].[ActivityResult] [Ar] WITH(NOLOCK) ON ([Act].[ResultId] = [Ar].[Id]) WHERE [Act].[OpportunityId] = [O].[Id] AND [Ar].[Id] = @P1 AND [Act].[TypeId] = '{E3831DEC-CFC0-DF11-B00F-001D60E938C6}') [OpportunityMeetingsTotal], ( SELECT COUNT(*) [cnt] FROM [dbo].[Activity] [Act] WITH(NOLOCK) INNER JOIN [dbo].[ActivityResult] [Ar] WITH(NOLOCK) ON ([Act].[ResultId] = [Ar].[Id]) WHERE [Act].[OpportunityId] = [O].[Id] AND [Ar].[Id] = @P2 AND [Act].[TypeId] = '{E1831DEC-CFC0-DF11-B00F-001D60E938C6}') [OpportunityCallsTotal], ( SELECT COUNT(*) [cnt] FROM [dbo].[Activity] [Act] WITH(NOLOCK) INNER JOIN [dbo].[ActivityResult] [Ar] WITH(NOLOCK) ON ([Act].[ResultId] = [Ar].[Id]) WHERE [Act].[AccountId] = [O].[AccountId] AND [Act].[CreatedOn] < [OIS].[CloseDate] AND [Ar].[Id] = @P3 AND [Act].[TypeId] = '{E3831DEC-CFC0-DF11-B00F-001D60E938C6}') [AccountMeetingsTotal], ISNULL(( SELECT DATEDIFF(DAY, MAX([Act].[StartDate]), [OIS].[CloseDate]) [cnt] FROM [dbo].[Activity] [Act] WITH(NOLOCK) WHERE [Act].[AccountId] = [O].[AccountId] AND [Act].[TypeId] = '{E3831DEC-CFC0-DF11-B00F-001D60E938C6}'), 0) [AccountDaysToLastMeeting], ( SELECT COUNT(*) [cnt] FROM [dbo].[Activity] [Act] WITH(NOLOCK) INNER JOIN [dbo].[ActivityResult] [Ar] WITH(NOLOCK) ON ([Act].[ResultId] = [Ar].[Id]) WHERE [Act].[AccountId] = [O].[AccountId] AND [Act].[CreatedOn] < [OIS].[CloseDate] AND [Ar].[Id] = @P4 AND [Act].[TypeId] = '{E1831DEC-CFC0-DF11-B00F-001D60E938C6}') [AccountCallsTotal], ISNULL(( SELECT DATEDIFF(DAY, MAX([Act].[StartDate]), [OIS].[CloseDate]) [cnt] FROM [dbo].[Activity] [Act] WITH(NOLOCK) WHERE [Act].[AccountId] = [O].[AccountId] AND [Act].[TypeId] = '{E1831DEC-CFC0-DF11-B00F-001D60E938C6}'), 0) [AccountDaysToLastCall], ( SELECT COUNT(*) [cnt] FROM [dbo].[Activity] [Act] WITH(NOLOCK) INNER JOIN [dbo].[ActivityResult] [Ar] WITH(NOLOCK) ON ([Act].[ResultId] = [Ar].[Id]) WHERE [Act].[AccountId] = [O].[AccountId] AND [Act].[CreatedOn] < [OIS].[CloseDate] AND [Ar].[Id] = @P5 AND [Act].[TypeId] = '{E2831DEC-CFC0-DF11-B00F-001D60E938C6}') [AccountEmailsTotal], ISNULL(( SELECT DATEDIFF(DAY, MAX([Act].[StartDate]), [OIS].[CloseDate]) [cnt] FROM [dbo].[Activity] [Act] WITH(NOLOCK) WHERE [Act].[AccountId] = [O].[AccountId] AND [Act].[TypeId] = '{E2831DEC-CFC0-DF11-B00F-001D60E938C6}'), 0) [AccountDaysToLastEmail] FROM [dbo].[Opportunity] [O] WITH(NOLOCK) INNER JOIN ( SELECT MAX([OS].[StartDate]) [StartDateLastStage], MAX([OS].[DueDate]) [CloseDate], [OS].[OpportunityId] [OpportunityId] FROM [dbo].[OpportunityInStage] [OS] WITH(NOLOCK) GROUP BY [OS].[OpportunityId]) [OIS] ON ([OIS].[OpportunityId] = [O].[Id]) LEFT OUTER JOIN [dbo].[Account] [A] WITH(NOLOCK) ON ([O].[AccountId] = [A].[Id]) WHERE [O].[StageId] IN ('{60D5310C-5BE6-DF11-971B-001D60E938C6}', '{A9AAFDFE-2242-4F42-8CD5-2AE3B9556D79}', '{736F54FD-E240-46F8-8C7C-9066C30AFF59}') ORDER BY [O].[CreatedOn] DESC

Is it a known issue ? did i miss something ?

 

Best regards

Patrice

Like 0

Like

4 comments
Best reply

Hello Patrice,

 

it seems like you added some data to the model which cannot be correctly proccessed. There is a chance it was a column with the type "Date" which cannot be operated automatically.

 

To fix this, you need to delete the "StartDateLastStage" column from the request for the machine learning model.

 

Regards,

Gleb.

Hello Patrice,

 

it seems like you added some data to the model which cannot be correctly proccessed. There is a chance it was a column with the type "Date" which cannot be operated automatically.

 

To fix this, you need to delete the "StartDateLastStage" column from the request for the machine learning model.

 

Regards,

Gleb.

Hi Gleb,

thanks for your answer.

in "Advanced tools for adding columns", i deleted the StartDateLastStage part in the sql query : 

the model works now.

Though I'm not sure what happened, as the model is a OOB one which was not modified from our side.

 

Best regards

Patrice

Patrice-ABPost,

 

thnks for letting me know.

I will pass this information to the dev team so they can take a look.

 

Regards,

Gleb.

 

mmh, after all it does not seems to work so well :

the model testing is ok, but when using [Predict data] process element, an error occur, i must have messed up the model.

Maybe i should start from a fresh new model, or maybe use the 7.14.0 version of the model, which is available in the model collection.

 

System.AggregateException: One or more errors occurred. ---&gt; Terrasoft.Web.Http.Abstractions.HttpException: [InternalServerError] {"responseStatus":{"errorCode":"InternalServerError","message":"Engine: [UsageException] ['CreatedOn']: Column(s) ['CreatedOn']] contain missing values"}} ---&gt; System.Exception: {"responseStatus":{"errorCode":"InternalServerError","message":"Engine: [UsageException] ['CreatedOn']: Column(s) ['CreatedOn']] contain missing values"}}
   --- End of inner exception stack trace ---
   at Terrasoft.Configuration.ML.MLServiceProxy.TransformResponseErrorByStatus(IRestResponse response)
   at Terrasoft.Configuration.ML.MLServiceProxy.Post[T](String methodName, Object requestBody, Int32 timeoutSec)
   at Terrasoft.Configuration.ML.MLServiceProxy.Predict[TOut](Guid modelInstanceUId, String methodName, PredictionInput predictionParams, Int32 timeoutSec)
   at Terrasoft.Configuration.ML.MLServiceProxy.Predict[TOut](Guid modelInstanceUId, IList`1 dataList, String methodName, DatasetInput defaultPredictionParams, Int32 timeoutSec)
   at Terrasoft.Configuration.ML.MLServiceProxy.Score(MLModelConfig model, IList`1 dataList, Boolean predictContributions)
   at Terrasoft.Configuration.ML.MLBaseEntityPredictor`1.Predict(MLModelConfig modelConfig, IList`1 dataList, MLDataPredictionUserTask predictionUserTask)
   at Terrasoft.Configuration.ML.MLBatchPredictor`1.Predict(MLModelConfig model, IList`1 dataList, MLDataPredictionUserTask predictionUserTask)
   at Terrasoft.Configuration.ML.MLBatchPredictor`1.&lt;&gt;c__DisplayClass17_0.&lt;Predict&gt;b__0(IList`1 dataForPrediction)
   --- End of inner exception stack trace ---
   at Terrasoft.Configuration.ML.MLBatchPredictor`1.Predict(MLModelConfig modelConfig, Action`1 chunkPredictedHandler, MLDataPredictionUserTask predictionUserTask)
   at Terrasoft.Configuration.ML.MLBatchPredictionJob.PredictAndSaveResult(MLModelConfig model, UserConnection userConnection, MLDataPredictionUserTask predictionUserTask)
   at Terrasoft.Configuration.ML.MLBatchPredictionJob.ProcessModel(UserConnection userConnection, Guid modelId, String filterData, MLDataPredictionUserTask predictionUserTask)
   at Terrasoft.Core.Process.Configuration.MLDataPredictionUserTask.InternalExecute(ProcessExecutingContext context)
   at Terrasoft.Core.Process.ProcessActivity.RunInCultureScope[T](Func`1 action)
   at Terrasoft.Core.Process.ProcessActivity.ExecuteElement(ProcessExecutingContext context)
   at Terrasoft.Core.Process.ProcessActivity.ExecuteItem(ProcessExecutingContext context)
   at Terrasoft.Core.Process.ProcessFlowElement.Execute(ProcessExecutingContext context)
---&gt; (Inner Exception #0) Terrasoft.Web.Http.Abstractions.HttpException (0x80004005): [InternalServerError] {"responseStatus":{"errorCode":"InternalServerError","message":"Engine: [UsageException] ['CreatedOn']: Column(s) ['CreatedOn']] contain missing values"}} ---&gt; System.Exception: {"responseStatus":{"errorCode":"InternalServerError","message":"Engine: [UsageException] ['CreatedOn']: Column(s) ['CreatedOn']] contain missing values"}}
   at Terrasoft.Configuration.ML.MLServiceProxy.TransformResponseErrorByStatus(IRestResponse response)
   at Terrasoft.Configuration.ML.MLServiceProxy.Post[T](String methodName, Object requestBody, Int32 timeoutSec)
   at Terrasoft.Configuration.ML.MLServiceProxy.Predict[TOut](Guid modelInstanceUId, String methodName, PredictionInput predictionParams, Int32 timeoutSec)
   at Terrasoft.Configuration.ML.MLServiceProxy.Predict[TOut](Guid modelInstanceUId, IList`1 dataList, String methodName, DatasetInput defaultPredictionParams, Int32 timeoutSec)
   at Terrasoft.Configuration.ML.MLServiceProxy.Score(MLModelConfig model, IList`1 dataList, Boolean predictContributions)
   at Terrasoft.Configuration.ML.MLBaseEntityPredictor`1.Predict(MLModelConfig modelConfig, IList`1 dataList, MLDataPredictionUserTask predictionUserTask)
   at Terrasoft.Configuration.ML.MLBatchPredictor`1.Predict(MLModelConfig model, IList`1 dataList, MLDataPredictionUserTask predictionUserTask)
   at Terrasoft.Configuration.ML.MLBatchPredictor`1.&lt;&gt;c__DisplayClass17_0.&lt;Predict&gt;b__0(IList`1 dataForPrediction)&lt;---

 

Show all comments

Dear sir, madam,

 

I am syncing contacts and orders with their products via a webservice. I am syncing about 100k records. It goes very slow and just stops iterating without an error message. In the execution diagram I see nothing odd. It just hangs on 'Running' and nothing happens. 

 

There are also no logs since there is no error. 

 

What is going wrong and why is it so slow?

Like 0

Like

1 comments

Hello,

 

Typically importing vast amounts does take substantial amounts of resources and time it's inevitable.

 

As for an error, there could be a myriad of possible reasons for it so I would recommend you contact Creatio support so they could take a look.

Just us an email here - support@creatio.com.



Thank you.

Show all comments

Hi everyone,

 

Is it possible to build custom pages and section in freedom UI for Customer Portal users?

 

Thks,

Luis

Like 0

Like

1 comments

Greetings,



Currently, Freedom UI is not support for Customer Portal, but we already have a registered task for the R&D team in regards to this question.

We have linked this post to the beforementioned R&D task to expedite the implementation process.

Show all comments

When a status changes on a record I used a case to trigger a business process. However a mistake was made and I need to cancel these business processes (they prompted the user a question). 

 

I cannot cancel them as they are seen as a sub process of 'Case'. I cannot find any process called Case that is running in process logs. 

 

Now I need to open each business process, select parent process, cancel process. 

Like 0

Like

1 comments

Good day,

 

Basically, the "Case" process is the DCM that is running in your record.

You can manually find the launched processes, go into its parent process and cancel the DCM outright.

 

Alternatively, you can just move the case stage into the next one (or into the canceled stage) which will finish all of the previous actions.

 

If you wish to see the DCM in the process log, you can turn on the debug mode of Creatio which will show them in there (please make to turn it off after you are done).

 

Thank you.

Show all comments

Hi all ,

I have a custom business rule in mobile app were i need to set the value of a lookup filed of the records. but i just can't find the way how to do it.

for example:



Terrasoft.sdk.Model.addBusinessRule("InvoiceProduct", {

    // The name of the business rule.

    name: "MyRULE",

    // Business rule type: custom.

    ruleType: Terrasoft.RuleTypes.Custom,

    triggeredByColumns: ["Product"],

      events: [Terrasoft.BusinessRuleEvents.Load],

    // Handler function.

    executeFn: function(record, rule, column, customData, callbackConfig) {

        record.set("Product",{value:  , displayValue: });

        // Asynchronous return of values.

        Ext.callback(callbackConfig.success, callbackConfig.scope, [isValid]);

    }

});

 

But this does not work.. i get :

record.set("Product",{value:  , displayValue: });

base-model.js:453 Uncaught TypeError: value.toLowerCase is not a function

 

Can you help ?

 

Thanks.

Eran.

 

Like 0

Like

2 comments

Hi Eran,

Here is how you should write a set function:

set(columnName, value, fireEventConfig)

Here is an example of how to set lookup fields:

record.set("ActivityCategory", ActivityCategory.Store.getById("8b16d130-313e-4b12-a12e-73a2dd8d33cf"), true);

Please note, the value parameter should always contain a record, if this lookup is not loaded in your mobile app then you should do a request to a database in order to get it instead of Store.getById.

Thanks Dmytro,

You are right, I needed to request the database to fetch the lookup record, and only then I could use the  " set(columnName, <lookup record>, fireEventConfig)  "

Show all comments

Dear mates,

PDF attachments are not visible on iPhone using Mail app.

Has anyone had this problem ?

How can I correct this problem ?

Email are generate by process: an email activity open on the sender Creatio screen with the file insert as attachment.

We follow this documentation from Ryan Farley:

https://customerfx.com/article/running-a-word-printable-in-a-process-sc…

The attached files appear well on other email clients...

Thank you !

Nicolas

Like 0

Like

4 comments

Hello Nicolas,

 

Since other email clients work as expected - it seems that the issue is limited to iOS and not connected to Creatio specifically.

 

I tried looking for similar problems on the web. Here is an example, perhaps you have a similar issue:

https://discussions.apple.com/thread/7491137

 

Best Regards,

Dan

Hello,

Patrice from the Nicolas team here.

This issue is not resolved from our side, so i tried to investigate a bit more about it :



I tried sending an email with attachment from Creatio, then read it from an iPhone.

Then sent  an email with same attachment from thunderbird.

 

The email sent from Creatio do no show the attachment, while the one sent from thunderbird works fine.



Having a look at the email source show some differences around the MIME structure :

 

the email sent from thunderbird has that structure :

Content-Type: multipart/mixed;

Content-Type: text/plain;

Content-Type: application/pdf;

 

The email sent from Creatio has that structure : 

Content-Type: multipart/related;

Content-Type: multipart/alternative;

Content-Type: text/plain;

Content-Type: application/pdf;

 

according to that documentation https://learn.microsoft.com/en-us/previous-versions/office/developer/ex…

it seems that Creatio should use multipart/mixed as root..

 

So depending of the email client, the attachment may show or not. 

 

 

I'm not 100% sure of this as i'm not used to that topic, but maybe it's worth checking ?

 

Best regards

Patrice

Patrice-ABPost,

 

Is the issue reproducing only on IOS?

Hello Bogdan,

 

yes, so far, there is no complains with other  platform..

Show all comments
Question

Hi Community,

 

I just noticed on our approval functionality, it is getting "canceled" automatically. Is there any OOB set up for it. How it is getting cancelled? in the ui the options are only to approve or reject.

 

Like 0

Like

4 comments

Hello, Fulgen!



We need more details to solve your problem. 

Please specify the following:

You say: "our approval functionality" is this your internal development?

By what principle do you know that approvals go to the canceled status Please provide screenshots.

Pavlo Sokil,

 



Hi, we've implemented oob approval on our custom section. I wanted to know how it is getting canceled, is there any OOB functionality which is running from the bacground? since on the ui user has only  approve/reject options?

Hello,

 

It looks like your Approvals were canceled as process tasks.

 

If Approval is created by a process or DCM, then when the process is canceled, all of its tasks are also canceled.

Hi Cherednichenko Nikita,

 

Thanks for the info, is there any way to avoid this? because we are triggerring the approval via business process only.

 

 

Show all comments

Hi community,

 

How can I automatically change the status of a case after a customer response? 

Out of the box, when a customer responds to a case, the status is changed to Reopened. I want to move the case to my custom status. How can I achieve this?

 

BR Paulina

Like 0

Like

1 comments
Best reply

Good day,

 

Currently, there is some hardcoded logic in the processes that make the case reopen itself. If you are absolutely sure that you are comfortable with a little bit of code rewriting you can absolutely change reopen stage to a custom one.

 

I will leave a link to an article that mentions the processes that you will have to alter here.

Alternatively, you could just rename the stage and build upon it.

 

Thank you,

Good day,

 

Currently, there is some hardcoded logic in the processes that make the case reopen itself. If you are absolutely sure that you are comfortable with a little bit of code rewriting you can absolutely change reopen stage to a custom one.

 

I will leave a link to an article that mentions the processes that you will have to alter here.

Alternatively, you could just rename the stage and build upon it.

 

Thank you,

Show all comments