Hi.  

Is it possible in Creatio to create a form that creates and sends a formatted email?

We want to create a form in Creatio to collect data.  Our sales reps will fill this out, using pick lists, radio buttons, and freeform text.  Then they will "submit" that form and Creatio will format the data in the email body (similar to code below) and send it off.

Any suggestions, info, or pointers you may have is appreciated.

Thanks!
Rob

Sales Rep:    Oswald Cobblepot
Customer:     Dupont
Opportunity:  Dupont #1234
Industry:     Chemical - Other
Vertical:     Chemical
Sub-Vertical: free form text here (75 chars)
Type:         Contract renewal
Holder:       free form text here (75 chars)
Tons:         <500
Truckloads:   1K to 1.5K
Like 0

Like

1 comments

Hello!

Yes, what you're describing is fully achievable in Creatio using a simple business process.

Here’s how it works:

We can create a form inside Creatio (as a section or a page) with the necessary fields: dropdowns, radio buttons, and free-text inputs.

When your sales reps click "Submit", a business process is triggered.

This process will:

  1. Read the entered data from the form.
     
  2. Format the data into a structured email body (for example, using a table or plain text with labels).
     
  3. Send the email to the defined recipient, using Email element. The email body can include HTML for styling if needed.

As an alternative, you can also create a printable form (a printable report template). This report can then be reused within a business process and sent as an attachment in the email - for example, as a structured summary of the submitted data.

Show all comments

 

Hi,

 

One of our objets has started as a lookup, but over time it evolved and we now want it to behave as a regular entity. For example, a page was created to display and manage the contents and we want the business to be able to edit its contents.

Saving changes is now blocked by the business people not having the "CanManageLookup" permission. We don't want to grant that permission to the users, but rather remove the limitation from the object.

How can we achieve this?

Kind regards,

Koen Bonnet

Like 0

Like

1 comments

You'd basically change the Parent of the object from BaseLookup to BaseEntity. However, doing that will have the following impact: BaseLookup gives the object Name and Description, BaseEntity does not have those. This could break a lot of things with the page and also with data in records already saved.

I've not tested making this change, so definitely try this out in a test or dev system before attempting any of this in prod. What I would probably do, before you make the change from BaseLookup to BaseEntity, first create new custom Name and Description columns, for example UsrName, etc (assuming these are being used). Then migrate all data from the lookup columns Name & Description to the new custom UsrName & UsrDescription. Then change the page to map to these new custom fields. Then, change the parent of the object to BaseEntity.

Maybe there is some way to override the check for CanManageLookups for your one object as an exception, but I've never looked into that. I assume you'd need to go the route outlined above.

Ryan

Show all comments

Hello community,

We have a business process with this starting condition. MailboxSyncSettings = Guid

 We would like no to hardcode this starting condition, for this reason we have added parameter in the Process which is linked with a System Setting.

If we change the starting conditon, it wont trigger

Is there any workaround for this?

Sasor

Like 0

Like

1 comments

Hmm. Not sure that is possible. Assuming that the params aren't loaded until the process is started, but it won't start without the param being loaded. Some of the OOTB processes for cases check that after. For an example, you can see the process "Run process: Reopen case and notify assignee on receiving an answer regarding the case" that sort of works like this. It starts for any email connected to a case. Then the script task checks to see if it is from one of the incident mailboxes. However, that seems like a bad approach, adding the overhead of a process triggering for every single email (the difference of the OOTB one above is that it's only for emails already connected to cases). Might be a better approach to use an EntityEventListener. If you wanted to keep the ease of using a process to do the main work, you could have the listener code flag the email, then that flag is what really triggers the process.

Show all comments

Hi.  

I am following up on a thread I posted earlier which seems to have withered -- I am looking for an alternate path.    (Link to original thread is below)

Is there a "No Code" way to add to the email headers that Creatio generates? 

I know there is a way to code the email, but we have so many processes that send out emails, I will have to hire a developer to do this.   (Code is included below for reference, you can see there the header I need to add to the outbound emails)

If we could add "X-Auto-Response-Suppress: All" to the header, we would eliminate most if not all "out of office" responses we get back.

Thanks
Rob

var message = new Terrasoft.Mail.Sender.EmailMessage
{
	// Sender email address.
	From = "Sender@email.com",
	// Recipient email addresses.
	To = new List&lt;string&gt;{ "first@recepient.co", "second@recepient.co" },
	// Copy optional
	Cc = new List&lt;string&gt;{ "first@recepient.co", "second@recepient.co" },
	// Hidden copy optional
	Bcc = new List&lt;string&gt;{ "first@recepient.co", "second@recepient.co" },
	Subject = "Message subject",
	// Email body.
	Body = "Body",
	// Priority, Terrasoft.Mail.Sender.EmailPriority enumeration values.
	Priority = Terrasoft.Mail.Sender.EmailPriority.Normal,
	// Headers you want to add to your email
	HeaderProperties = new List&lt;Mail.Sender.EmailMessageHeader&gt;
	{
		new Mail.Sender.EmailMessageHeader
		{
			Name = "X-Auto-Response-Suppress",
			Value = "All"
		}
	}
};

https://community.creatio.com/questions/add-email-header-x-auto-response-suppress-all

Like 0

Like

2 comments
Best reply

If you used the code approach, you could make a generic process you'd use as a subprocess. Any process that needed to send email could use that one process. However, you'd lose the ability for an easy designer for composing the email in the process and would have to send HTML to the subprocess to use as the body (not an issue with the subprocess route specifically, but an issue with using code to send the email). 

If it worked for you, you could create the emails themselves as message templates. The subprocess would need to process that template as well to generate the body. At leas that way you could use an easy designer to create the messages instead of just forming the HTML.

Ryan

Does not appear to be possible without code. The send email process element doesn't expose any properties for the header. 

If you used the code approach, you could make a generic process you'd use as a subprocess. Any process that needed to send email could use that one process. However, you'd lose the ability for an easy designer for composing the email in the process and would have to send HTML to the subprocess to use as the body (not an issue with the subprocess route specifically, but an issue with using code to send the email). 

If it worked for you, you could create the emails themselves as message templates. The subprocess would need to process that template as well to generate the body. At leas that way you could use an easy designer to create the messages instead of just forming the HTML.

Ryan

Show all comments

Hi Community,

I’m running multiple processes using subprocesses. In the business process, there’s an element where I can retrieve the values for the total processes, completed processes, and terminated processes. However, these values are always showing as 0, even though there are completed processes.

Is there something wrong with my configuration below?

 

element parameter


 

subprocessnotificationprocess logpush notif

Like 0

Like

1 comments

That works for me, but it does require not running the subprocesses in the background (which I can see from your screenshot that you're not)

Show all comments

Currently, if I set a campaign with emails, it excludes weekends. Is there a setting where I can exclude this blackout period? I want to be able to include weekends for campaigns.

Like 0

Like

1 comments

Hello,

Thanks for your question!

By default, campaigns in Creatio do not have a built-in restriction on running over weekends — they execute based on the Default campaign execution frequency setting (e.g., every X minutes or hours). However, if you're noticing that emails aren’t being sent during weekends, a few things could be affecting this:

-Trigger emails used in campaigns may have a configured delivery window that excludes weekends. It's worth checking their delivery settings.

 

-If your environment is hosted in the cloud, there's a chance the issue is related to site inactivity. When there is no user activity (which can be typical over weekends), the site may go into sleep mode to conserve resources — and that can prevent campaigns from executing.

If you're still experiencing this behavior, we recommend submitting a support case with remote access enabled.

Show all comments

Hi Community,

I am reading a file using Process file system action. I have to send the base64 format of the file to an external api. How can I do that conversion using the script task?

Any code/resource would be really helpful. TIA

Like 0

Like

1 comments

Hello, 

To convert a file read via the "Process file" system action into a Base64 string within a business process, you will use a Script Task. This allows you to perform the conversion using C# and then pass the resulting string to an external API.

var files = context.Process.FindFlowElementByName("ObjectFileProcessingUserTask1")  
  .GetPropertyValue("ObjectFiles") as ICompositeObjectList<ICompositeObject>;

if (files != null)   
{  
  foreach(var file in files)   
  {  
      if(file.TryGetValue<EntityFileLocator>("File", out EntityFileLocator fileLocator))   
      {  
          IFile fileItem = UserConnection.GetFile(fileLocator); // This now works due to the 'using' directives [11]  
          using (System.IO.Stream stream = fileItem.Read())   
          {  
              using (var memoryStream = new System.IO.MemoryStream())  
              {  
                  stream.CopyTo(memoryStream);  
                  byte[] content = memoryStream.ToArray();  
                  var encodedContent = Convert.ToBase64String(content);  
                  Set<string>("EncodedFile", encodedContent);  
              }  
          }  
      }  
  }  
}

return true;

In the Methods tab, add the following to the Usings list:

  • Terrasoft.File
  • Terrasoft.File.Abstractions
     

     

Show all comments

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

Hi,

We are in the process of migrating to the Freedom UI and as such have access to the AI capabilities, for which I am interested to learn from other users of their experiences.

Have your users and company found the use of AI of benefit and if so, what would you say would biggest benefits you have found?

During testing, we have found a very high average token consumption (between 20,000 and 50,000) and am concerned about how much each interaction 'costs' in tokens and that will limit our usage. 

Any feedback would be appreciated.

thanks

Mark

Like 1

Like

5 comments

Hello,

Please refer to the following, below is an example of how many tokens each intent can use: 


More information about tokenization can be found here: 
1. https://learn.microsoft.com/en-us/dotnet/ai/conceptual/understanding-tokens
2. Actual visual representation of token counts from Open AI: https://platform.openai.com/tokenizer

Regarding token usage, specifically why does 1 question use so many tokens:

Creatio AI performs additional actions beyond the messages generated by the user in the chat. Let me explain with an example:   

If you ask Creatio AI to create a draft of an email, Creatio AI performs several steps: 

  1. Search for available skills.
  2. Read the skill prompt and available actions.
  3. Read data from the page.
  4. Check system settings to confirm that the message can be sent.
  5. Generate a draft message and display it in the chat (the only step visible to the user).
  6. Perform additional actions, such as opening a card, etc.  
     

Steps 1–4 are not visible in the user interface, but they also consume tokens, which explains why the token usage may appear higher than expected. 

Learn more: https://www.creatio.com/products/pricing

Best regards,
Ivan

Hi Ivan

Thanks for your reply. I have looked at the documentation and aware of this information. I was seeing if other users have experiences of your AI implementation. Real world usage is often different, and as our testing showed such different token usage, I was interested to capture this feedback.

Hi Mark, 

Same as you:  found massive usage tokens consumption for little use. 

Unless OpenAI and Azure AI Integration price lowers, for now, use of AI is on hold, until we can plug to other LLMs  [which is planned in later subversions of Creatio 8.3 I believe ], some of them being known to be much less expensive then open ai 4o .

Hi Damien,

Thanks for taking the time to reply. This is what I was worried about, as the promised ability to select your own LLM means we are locked into what I hope is the highest tier.

I do not want to tell our team that the AI function is going to be provided and by day 4 of the month, all credits are used up and we would be looking at a very large cost. However, if the benefits are genuine then it is a case of matching to the cost value achieved.

My worry was that the cost of the tokens being so high, makes the value hard to justify.

Same experience for me as what Damien shared. It's a great marketing tool, but real world use doesn't seem to add much benefit IMO, especially compared to the high token usage for even what seems to be simple requests. 

Show all comments

We found some validation errors indicating we have a package hierarchy issue on an older package that already deployed to production.  To resolve this, we need to unlock some packages and change their dependencies.  While I am able to unlock them with the following script below, I still can't change the package dependencies even when unlocked.  How can I change the package dependencies on a package that has already deployed?

DECLARE @packageName nvarchar(50); 
SET @packageName = 'Package_Name'; 
UPDATE SysPackage 
SET IsChanged = 0, 
    InstallType = 1, 
    IsLocked = 0, 
    Maintainer = 'Customer' 
WHERE Name = @packageName 
AND SysWorkspaceId IN (SELECT 
  Id 
FROM SysWorkspace 
WHERE Name = 'Default'); 
UPDATE SysSchema 
SET IsChanged = 0, 
    IsLocked = 0
FROM SysSchema 
JOIN SysPackage 
  ON SysSchema.SysPackageId = SysPackage.Id 
WHERE SysPackage.name = @packageName 		
Like 1

Like

3 comments

Hello,

Please note that we do not recommend making changes to this package on the end environment. It is best for you to fix the issue with the dependencies on the dev site and then transfer the package with the updated dependencies to prod again. It will ensure that in future, if you decide to transfer this package or a connected package to prod again, it does not override your settings and the system's integrity is preserved.

Mira Dmitruk,

Hi Mira, thank you.  I understand that and am trying to make changes in our development environment.  That is where I am encountering this issue where I cannot change the package dependencies even when they are unlocked.

Francine Braese,

Please describe which errors exactly you get when trying to change the dependencies.

Show all comments