Hello,

 

I am currently generating multiple report templates, some of these templates need to show list components attached to a record. For example, A loan application that has multiple collaterals attached to it or a payment schedule stored in a list component. How do I achieve this?

Like 0

Like

2 comments

Hi, 

    I try to install the excel export logger, and the system setting is all correct, but can't see the excel export loger in audit logger, does anyone have related experience to share?

My cloud instance is version 8.2.1.5446. 

 

 

https://marketplace.creatio.com/app/excel-export-logger-creatio

Like 0

Like

0 comments
Show all comments

Hi community,

Is there any way how to modify only one record with help of "Modify" campaign's element?

For example, I've executed a campaign for event participants and want to change Response column if a participant clicked on a link in received email. But I want to change only a participant of the current event, not all. How can I arrange that?

Like 0

Like

4 comments

Hello!

To modify a single record using the "Modify" campaign element, you can follow these steps:

  1. Set Up a Condition: Before the "Modify" element, use a condition to filter the participants based on specific criteria. In your case, you can set up a condition to check if the participant clicked on the link in the received email.
  2. Use the "Modify" Element: Once the condition is met, you can use the "Modify" element to update the Response column for that specific participant. Ensure that the condition is specific enough to target only the participant of the current event.

FYI Modify data element updates all objects connected to this contact. In your situation, when you update a lead, all the leads associated with the corresponding contact are updated.
More information about the element Modify data can be found in this article. 

By setting up a precise condition, you can ensure that only the desired participant's record is modified. If you need further assistance with setting up the campaign or conditions, feel free to ask!

Regards, 
Anton

Hello, 

To modify a single record using the "Modify" campaign element, you can follow these steps: Set Up a Condition: Before the "Modify" element, use a condition to filter the participants based on specific criteria. In your case, you can set up a condition to check if the participant clicked on the link in the received email. Use the "Modify" Element: Once the condition is met, you can use the "Modify" element to update the Response column for that specific participant. Ensure that the condition is specific enough to target only the participant of the current event. By setting up a precise condition, you can ensure that only the desired participant's record is modified.

Hi colleagues,

thanks a lot for the responses. So, as far as I understood, there is no option to define, what exactly lead should be updated, right? I can define some strict conditions for a campaign participant, whose linked records should be updated, but in any case the system will update _all_ leads linked to this participant (=contact). And there is no option to tell the system to update, for example, only leads from social media (or were created from a particular campaign) and not to update others, right?

 

Hello,

There is indeed a way to filter the leads within the campaign flow. As shown in below picture, you can define specific conditions using the “Source” condition (or other filtering criteria) throughout the flow before “Modify Data” element.

example of campaign flow

For instance, you can set up conditions where the system only updates leads coming from certain sources, like “Facebook” or “LinkedIn,” by selecting the appropriate sources in the filtering options. This will prevent the update of all leads and ensure that only those meeting the specified conditions are modified. The use of filtering conditions allows you to restrict this to only the leads from selected sources or campaigns. You would need to set the conditions as required in the flow setup to make sure only the targeted leads get updated. 


 

Show all comments

Hi community,

I have a lead form with an option of uploading of a file. How can I transfer the uploaded file to a Lead record (or record of another object) in Creatio with help of Creatio API? 

Like 0

Like

1 comments

Hello mates !

I'm trying to create a script into a business process to check the SIRET (French Enterprise Number). But I'm having a basic problem: an identifier is expected when I try to compile on line 59

using System.Text.RegularExpressions;
 
string siretNumber = Get<String>("siret");
bool siretValide = Get<bool>("siretValide");
 
int ttlAddition = 0, cpt = 1;
 
string formatInput = Regex.Replace(siretNumber, "[^a-zA-Z0-9_]+", "", RegexOptions.Compiled);
string reverseCard = new string(formatInput.ToCharArray().Reverse().ToArray());
 
int[] arrDigits = Array.ConvertAll<string, int>(
    System.Text.RegularExpressions.Regex.Split(reverseCard.ToString(), @"(?!^)(?!$)"),
    str => int.Parse(str)
);
int[] arrMult = new int[arrDigits.Length];
 
// First Luhn step:
// Start with the last digit (on the right)
// and move to the left, doubling the value of all even-numbered digits
for (int i = 0; i < arrDigits.Length; i++)
{
    if (cpt == 1)
        arrMult[i] = arrDigits[i]; // the key is processed first, the number is not doubled 
    else
    {
        if (cpt % 2 == 0)
            arrMult[i] = 2 * arrDigits[i];
        else
            arrMult[i] = arrDigits[i];
    }
    cpt++;
}
 
// Add together all the digits of each number thus obtained.
// If digit > 10, then the digit to be added gives, for example: 18 = 1 + 8
for (int i = 0; i < arrMult.Length; i++)
{
    if ((int)arrMult[i] >= 10) // if number > 9 you have to break down the number, e.g. 18 gives: 1+8
    {
        int[] intList = Array.ConvertAll<string, int>(
            System.Text.RegularExpressions.Regex.Split(arrMult[i].ToString(), @"(?!^)(?!$)"),
            str => int.Parse(str)
        );
        for (int j = 0; j < intList.Count(); j++)
        {
            ttlAddition += (int)intList[j];
        }
    }
    else
        ttlAddition += (int)arrMult[i];
}
 
// if modulo by 10 of the addition is zero then our figure is valid 
if (ttlAddition % 10 == 0)
    Set<bool>("siretValide", true); // set the variable siretValide to true in Creatio 
else
    Set<bool>("siretValide", false);

Compilation error

In VS Code, by replacing the last lines: Set<bool>("siret Valide", true); with Console.WriteLine("Verification OK"); and Set<bool>("siret Valide", false); with Console.WriteLine("Verification KO"); the program works fine.

 

Like 0

Like

4 comments
Best reply

Hello,

 

You can add using statement in Usings section in Methods block Of BP like this:

Also here is the fixed example of your code without compilation errors:

 

string siretNumber = Get&lt;String&gt;("siret");
bool siretValide = Get&lt;bool&gt;("siretValide");
 
int ttlAddition = 0, cpt = 1;
 
string formatInput = Regex.Replace(siretNumber, "[^a-zA-Z0-9_]+", "", RegexOptions.Compiled);
var formatInputCharArray = formatInput.ToCharArray();
Array.Reverse(formatInputCharArray);
string reverseCard = new string(formatInputCharArray);
 
int[] arrDigits = Array.ConvertAll&lt;string, int&gt;(
   System.Text.RegularExpressions.Regex.Split(reverseCard.ToString(), @"(?!^)(?!$)"),
   str =&gt; int.Parse(str)
);
int[] arrMult = new int[arrDigits.Length];
 
// First Luhn step:
// Start with the last digit (on the right)
// and move to the left, doubling the value of all even-numbered digits
for (int i = 0; i &lt; arrDigits.Length; i++)
{
	if (cpt == 1)
		arrMult[i] = arrDigits[i]; // the key is processed first, the number is not doubled 
	else
	{
		if (cpt % 2 == 0)
			arrMult[i] = 2 * arrDigits[i];
		else
			arrMult[i] = arrDigits[i];
	}
	cpt++;
}
 
// Add together all the digits of each number thus obtained.
// If digit &gt; 10, then the digit to be added gives, for example: 18 = 1 + 8
for (int i = 0; i &lt; arrMult.Length; i++)
{
	if ((int)arrMult[i] &gt;= 10) // if number &gt; 9 you have to break down the number, e.g. 18 gives: 1+8
	{
		int[] intList = Array.ConvertAll&lt;string, int&gt;(
           System.Text.RegularExpressions.Regex.Split(arrMult[i].ToString(), @"(?!^)(?!$)"),
           str =&gt; int.Parse(str)
       );
		for (int j = 0; j &lt; intList.Length; j++)
		{
			ttlAddition += (int)intList[j];
		}
	}
	else
		ttlAddition += (int)arrMult[i];
}
 
// if modulo by 10 of the addition is zero then our figure is valid 
if (ttlAddition % 10 == 0)
	Set&lt;bool&gt;("siretValide", true); // set the variable siretValide to true in Creatio 
else
	Set&lt;bool&gt;("siretValide", false);
return true;

Also please make sure that "siret" and "siretValide" parameters have the values assigned before this Script Task is executed. 

 

Hello

In a task script, you're not allowed to add the using statements.
Also, the script must end with:
return true;

You can add the using statements at the Methods block in the BP.

Hope this helps!

Mohamed Ouederni,

Hello Mohamed,
Thank you for your help ! i m a newbie in C#.

So i followed your recommandations:

i removed the using System.Text.RegularExpressions; at the script beginning, because when i open the process source code there is allready a using System.Text

i added a return true at the end of the script.

and i added too System.Text.RegularExpressions on the formatInput string :

string formatInput = System.Text.RegularExpressions.Regex.Replace(siretNumber, "[^a-zA-Z0-9_]+", "", System.Text.RegularExpressions.RegexOptions.Compiled);

But now i have the following errors:
compilation error

Line 65 is :
string reverseCard = new string(formatInput.ToCharArray().Reverse().ToArray());
 

Hello,

 

You can add using statement in Usings section in Methods block Of BP like this:

Also here is the fixed example of your code without compilation errors:

 

string siretNumber = Get&lt;String&gt;("siret");
bool siretValide = Get&lt;bool&gt;("siretValide");
 
int ttlAddition = 0, cpt = 1;
 
string formatInput = Regex.Replace(siretNumber, "[^a-zA-Z0-9_]+", "", RegexOptions.Compiled);
var formatInputCharArray = formatInput.ToCharArray();
Array.Reverse(formatInputCharArray);
string reverseCard = new string(formatInputCharArray);
 
int[] arrDigits = Array.ConvertAll&lt;string, int&gt;(
   System.Text.RegularExpressions.Regex.Split(reverseCard.ToString(), @"(?!^)(?!$)"),
   str =&gt; int.Parse(str)
);
int[] arrMult = new int[arrDigits.Length];
 
// First Luhn step:
// Start with the last digit (on the right)
// and move to the left, doubling the value of all even-numbered digits
for (int i = 0; i &lt; arrDigits.Length; i++)
{
	if (cpt == 1)
		arrMult[i] = arrDigits[i]; // the key is processed first, the number is not doubled 
	else
	{
		if (cpt % 2 == 0)
			arrMult[i] = 2 * arrDigits[i];
		else
			arrMult[i] = arrDigits[i];
	}
	cpt++;
}
 
// Add together all the digits of each number thus obtained.
// If digit &gt; 10, then the digit to be added gives, for example: 18 = 1 + 8
for (int i = 0; i &lt; arrMult.Length; i++)
{
	if ((int)arrMult[i] &gt;= 10) // if number &gt; 9 you have to break down the number, e.g. 18 gives: 1+8
	{
		int[] intList = Array.ConvertAll&lt;string, int&gt;(
           System.Text.RegularExpressions.Regex.Split(arrMult[i].ToString(), @"(?!^)(?!$)"),
           str =&gt; int.Parse(str)
       );
		for (int j = 0; j &lt; intList.Length; j++)
		{
			ttlAddition += (int)intList[j];
		}
	}
	else
		ttlAddition += (int)arrMult[i];
}
 
// if modulo by 10 of the addition is zero then our figure is valid 
if (ttlAddition % 10 == 0)
	Set&lt;bool&gt;("siretValide", true); // set the variable siretValide to true in Creatio 
else
	Set&lt;bool&gt;("siretValide", false);
return true;

Also please make sure that "siret" and "siretValide" parameters have the values assigned before this Script Task is executed. 

 

Hello Iryna !
This fixed the two first errors.

compilation error

it looks like system can not find Count, so i added System.link to the method block of the BP and the process has been successfully compiled.

Thank you all for you help !

Show all comments

i am trying to add a dropdown data by calling a webservice

does anyone have some advice?

 

Like 1

Like

2 comments

Hello,

Could you please describe your business idea in more detail? By dropdown data, do you mean a collection of parameters?

Mira Dmitruk,

it's a filter system that let's me select a set of options based on another set of options, basically a filter system for lookups based on lookups, what i tried to do is input a parameter by selecting from a field and obtaining the filtered options based on the selected option it's like

if Provinsi = DKI Jakarta 

then Kota = (Dropdown => Jakarta pusat, Jakarta Barat, Jakarta Utara, etc)

if Provinsi = Aceh

then Kota = (Dropdown => Aceh Selatan, Aceh Utara etc)

 

now im trying to find a way to filter the dropdown without going through them 1 by 1 by using an API and not Business Rules since i want to do it for 5 fields

Provinsi, Kota, Kecamatan, Kelurahan, Kode Pos

and each one needs to have the right option values

can anyone suggest a better way to handle this since i have no idea on how to do this

Show all comments

Hi all,

I want to install mapsly on creatio, but I want to know first, what version of creatio is compatible if you want to install mapsly?

i'm using creatio 8.2.2

Thanks

Like 0

Like

4 comments

Hello, 

Mapsly is compatible with 8.0.0 Creatio version and up. 

 

All the information regarding it's installation is included in Installation tab on CreatioMarketplace . Please follow this link: 

https://marketplace.creatio.com/app/mapsly

Hello, 

 

Could you please provide more details about following "my object doesn't appear in the Mapsly configuration on the website"?

 

Oleksandra,

on mapsly guide, i've done with following step Provide account info, Select the Mapsly features, Grant Mapsly access to my CRM data. for the step Choose objects (modules) to be imported to Mapsly, i cant select the object because still loading and have notification " data refresh failed ".

 

https://help.mapsly.com/en/articles/4339762-mapsly-account-sign-up-wiza…

Hello, 

We recomend you to contact Mapsly support in order to resolve this issue. Creatio indeed supports Mapsly, however we are unable to assist you or provide instruction on resolution for such a specific problem. 

 

Here are the contact detailsn which are provided on https://marketplace.creatio.com/app/mapsly:&nbsp;


Email

help@mapsly.com

 

Thank you for reaching out!

Show all comments

Hello,

I have some business processes that reads the files attached to a section using a "Process file" element to add them to a "send email" element.
If the "container" of the attachments is "an old one" (like CaseFile, AccountFile, etc.) it works fine.
If the "container" is the "Freedom UI SysFile" (Uploaded File) the "Process file" element always returns an empty collection of files (even removing all the filters).

How can I send an email from a Business Process and attach the files stored in "SysFile" entity?

Thanks

Like 0

Like

3 comments

Hi,

We've investigated this behavior, and unfortunately, the "Process File" element cannot be configured to work with SysFile in cases where a registered [Object]File schema exists for the object in the system.
Currently, this behavior cannot be modified using low-code or development approaches.

At the same time, this is not the expected behavior, and we are already working on fixing this issue as part of the product. For now, the only viable solution is to use [Object]File for your task.

If your goal is to build a universal process that sends emails with attachments from different entities, we recommend creating separate flows for each object. For example, if the entity is Case, use a flow where the "Process File" element is configured for CaseFile; if it's another object without a custom file storage, use SysFile, etc.

We've also raised the priority of the existing task, taking your user experience into account. This will help prioritize and speed up the resolution.

Thank you for your understanding!

Pavlo Sokil,

Thanks for your reply

In my tests the Process File element doesn't work with SysFile for new Freedom UI objects that don't have a registered [Object]File schema. The returned file collection is always empty.

Any suggestions?

Thanks

 

Massimiliano Mazzacurati,

Hi,

Understood, thank you for letting us know. We've analyzed the situation — currently, the process element doesn't work quite correctly with attachments stored in SysFile.

To resolve this, you’ll need to make a small change to the process metadata. Here's a brief guide on how to do it, using a test section (Test Section) as an example:

  1. In the Process File element, select "Uploaded file" (SysFile) as the object.

  2. Then, in the Advanced settings, you’ll see a parameter called "Source data object" (SourceDataEntitySchemaUId) — this is the object to which the attachments in SysFile are linked.
    You’ll need to manually change this in the metadata to the UId of the actual object you are working with.
  3. Open the process metadata and switch to Modifications package mode.

     

  4. Locate the parameter by its code: "SourceDataEntitySchemaUId", and replace its value with the UId of your desired object.

  5. You can find the UId in the system configuration by clicking the three-dot menu and choosing "Properties" — for example:

  6.  

  7. After that, in the process metadata, update the "GS2" value for this parameter and save the changes.

  8. Important: Reload the process page before making further changes in the designer to avoid overwriting the metadata update.
  9. Now you will notice the changes in parameter's settings in advanced mode:
     

That’s it — now the attachments will be linked correctly.

Please note that for now, this is a workaround. Our team is actively working to ensure the process element handles this case properly without needing to modify the metadata manually.

Hope this helps solve your business task.

Thanks for reaching out!

Show all comments

How can I report on key words within a case (Either email or feed post) or which users have posted on a feed in a case?

Like 0

Like

1 comments

Good day, Ashleigh,

Could you please specify what functionality you are referring to by reporting on keywords in cases?

If possible, please provide us with an example or an intended use-case.

Thank you in advance!

Show all comments

Hello Community,

I need to store a snippet of HTML code (e.g., a button or formatted content) into a field of an object (e.g., a text or string field). Later, I want to render this HTML dynamically on a page at runtime.

What’s the best way to store the HTML safely and then render it so that it's interpreted as actual HTML (not plain text) in the UI?
Are there any security or encoding considerations I should keep in mind?

Thanks in advance!

Like 2

Like

7 comments
Best reply

An easy no code way would be to bind the value to a read-only Rich Text control on the page. It will display the HTML as HTML.

Otherwise, you'd have to create your own custom control for it.

An easy no code way would be to bind the value to a read-only Rich Text control on the page. It will display the HTML as HTML.

Otherwise, you'd have to create your own custom control for it.

Ryan Farley,

Thanks for the suggestion! I am looking for custom control.

Is there any reference or example available to create custom control.

Hello Ajay,

Here is the article that contains the explanation and example of how to create custom control

https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platform/8.1/front-end-development/classic-ui/controls/examples/add-a-control-to-a-record-page

Also inside your custom control implementation you can add HTML value validation and remove any script elements to provide the level of security. 

Hi Iryna,

 

Is above link, you provided, applied for Freedom UI module?

The information and example for Freedom UI you can find here:

https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platfor…

This simple example of an IFRAME control could easily be adapted to simple output a div containing the custom HTML instead, plus you'd just bind the column containing the HTML to the control. https://customerfx.com/article/embedding-an-iframe-on-a-creatio-freedom-ui-page/

A full component would likely be a better route, but this simpler option coudl still get the job done.

Ryan

Hi Ryan Farley,

When I bind a value to a read-only Rich Text control on the page, only the raw HTML is displayed and the CSS styles are stripped out.

Show all comments