I am developing a custom button with the remote module. I created and deployed the component using the clio tool.
When I click on the button, I want to get the object context where this button is placed. 

For example:
if the button is used in the Contact form page then I want to access contact record details(Ex: email, name, type, record id etc..) in the click handler.

If the button is used in the Account form page then I want to access account record details(Ex: name, owner, primary contact, record id etc..) in the click handler.

Can you help me to achieve that?
I have searched in the academy but didn't find an example. Also, I have not found documentation about the apis in @creatio-devkit/common module.

Like 0

Like

6 comments

Hi Sagar,

The ability to pass input values to a remote module component via @creatio-devkit/common is available starting from Creatio 8.1. This library is not present in version 8.0.

You can definitely implement this in 8.1+ to access the current record context (like ID, Name, etc.) inside your custom button component.

Helpful links:
- Implement a remote module - Creatio Academy
- @creatio-devkit/common

What to do:
- Add @CrtInput() to the input properties in your Angular component to receive values from the page context.
- In your Freedom UI schema (viewConfigDiff), pass record fields using $ bindings like $Id, $Name, etc.

Example implementation:
button.component.ts:

@Component({...})
@CrtViewElement({ selector: 'usr-button', type: 'usr.Button' })
export class ButtonComponent {
 @Input() 
 @CrtInput() 
 recordId!: string;
 
 @Input() 
 @CrtInput() 
 name?: string;

 handleClick(): void {
   alert(`Record ID: ${this.recordId}\nName: ${this.name}`);
 }
}

In Freedom UI JSON schema:

{
 "operation": "insert",
 "name": "UsrCustomButton",
 "values": {
   "type": "usr.Button",
   "recordId": "$Id",
   "name": "$Name"
 },
 "parentName": "SideContainer",
 "propertyName": "items",
 "index": 0
}
 

Daiana Gavrylenko,

Thanks for the reply.. I want to clarify that the app I am developing using remote module is for marketplace. So, If I'll be not having access to the Freedom UI json(correct me if I am wrong).

All I want is, the app(button) can be placed in any page(Account, Contact, custom app). Upong clicking the button I want access to the details.

Sagar Rodda,

What Daiana mentioned in the approach you need to take. The component is independent of the page. You receive values in the page via binding. The properties with @Input() are bindable and can be bound to properties of the page. The idea is that you'd add your button to a page, then bind properties for pass values from the record to the component.

Ryan Farley,

Okay.. I'll try to implement this..

may I know where I am supposed to put this in my remote module?

In Freedom UI JSON schema:

{
 "operation": "insert",
 "name": "UsrCustomButton",
 "values": {
   "type": "usr.Button",
   "recordId": "$Id",
   "name": "$Name"
 },
 "parentName": "SideContainer",
 "propertyName": "items",
 "index": 0
}

That is the part that adds the component (your button) to the page. That would exist on the page you add the button to in the viewConfigDiff. When you drag your button to the page, that gets added to the page code, but it also shows it was modified to add the binding properties "recordId" and "name" (which are bound to the current record's "Id" and "Name columns). That part has to get modified manually by the user of your button component since there's currently no designer support for custom components. 

Ryan Farley,

Unfortunately I can't take this approach as we have plans to push our app to marketplace. We can't expect the developers to update their form page everytime they use our app. 

Show all comments

Hi,

i have a use case where i have to load thousand of records in a object and process them as fast as possible. I've built a trial app with an object "staging" where i load the records and one process "elaborate_record" triggered by signal "record inserted in staging". This process has a wait so i can keep track of starting time and and ending time. 

What i've noticed is that 10 "elaborate_record" are started concurrently at the same time, when they finish another 10 processes are started and so on. I can then infer that there is a cap of 10 maximum concurrent processes (at least on the trial instance). 

My question is if it is possible to increase this cap. And if so how? I understand that it might be closely related to the sizing of the environment but i wasn't able to find any documentation about this aspect. I'm working on creatio cloud, not on premise.

Thank you!

Like 1

Like

1 comments

Hello,

We have checked this question and there should be no limitation of this kind on the number of processes run at a time. We have also tested this behavior on a demo and could not reproduce it, therefore we suggest you to register a case for our support team at support@creatio.com so we could check this issue on your environment directly.

Show all comments

Hi All, 

probably a very silly question, however, I want users to be able to email Invoices as a PDF attachment to clients for payment through Creatio. Is there a simple one-step solution, other than generating a printable, saving the printable on the computer and then attaching it to an email? 

Has anyone build a custom business process for this or is there a simple functionality that I'm missing?

Like 0

Like

3 comments

Hello, 

 

Thank you for your question regarding sending invoices as PDF attachments to clients through Creatio. It’s a valid and common use case, and we’re happy to provide guidance.

To implement this functionality in a streamlined and automated way, we recommend creating a custom business process in Creatio using the following elements:

  1. Read Data – Use the Read data process element to retrieve the necessary invoice information.
  2. Generate File – Use the Process file element to create the invoice file.
  3. Send Email – Use the Send email element to attach and send the generated invoice to the client.

You can refer to this documentation for a detailed example of how the Process file element works:
🔗 Process file element – Creatio Academy

Additionally, to generate the invoice in PDF format, an external connector is required. We recommend using the AsposePDF connector available on the Creatio Marketplace:
🔗 AsposePDF Connector for Creatio

To trigger this process, you can either:

  • Add a custom button to the Invoice section, or
  • Configure a start signal to initiate the process automatically based on specific conditions (e.g., invoice status change).

Have a nice day!

Thanks, are there alternatives to the Aspose Connector? The one review is very bad. Also, as we had reports set up for a long time, we are able to convert reports straight to PDF's in Creatio using the Printables function. So the preference would be to utilise this functionality. 

Julia Molnar,

Unfortunately , currently there is only Aspose Connector which is align with your requirements. 

Show all comments

Hi Community,

We’re encountering an issue reported by our customer where the application takes an unusually long time to load when login, and sometimes gets stuck on the loading screen.

After investigation, here are some of our findings:

  • Infrastructure doesn't seem to be the issue—server resources are normal, and the application is deployed on-site based on the Creatio deployment calculator.
  • It's not related to internet connectivity—once the login is successful, all subsequent loading behaves normally and runs smoothly.
  • We noticed an interesting behavior:
    When the user opens the login page again in a new tab (without a return URL) or in an incognito window and logs in, the login is successful and the home page loads instantly.
    However, if the user tries to access a full URL such as [Base URL]/0/shell/... or the login page with a return URL in a new tab, the application remains stuck on the loading screen.

While opening a new tab or incognito as a temporary workaround, it's not a viable solution for business users.

Has anyone experienced a similar issue or found a reliable fix for this behavior? Any suggestions or insights would be appreciated.

Best regards,
Khaerul Anwar

Like 0

Like

2 comments

Greetings,

We have not encountered this specific issue before. It is possible that what you described is related to browser caching, although we cannot confirm this with certainty.

For a thorough investigation, we will need the site logs and the exact time the issue occurred so we can analyze the problem in detail.

Please create a support request by emailing us at support@creatio.com.

Regards, 
Orkhan

Hi Orkhan,

We initially suspected that the issue might be related to browser caching, but strangely, it occurs for all users.

We previously attempted to submit a support request, but because our customer support package ("Business support") does not include "Performance diagnostics," the Creatio support team was unable to provide a solution. That’s why I’m now reaching out to the community for help.

Show all comments

first of all, my requirement is to make 3 pages of the record, the first one is the list page, the second one is the form page, and the third is the view page, the form page is shown when i click the add new button in list page, and the view page is shown when i click the record, and i have an issue on one of the following page.


i have written code page using a feature preview from add on plugins in my form page and this is my code, 
success code

but when i try to make the same code on my view page, the preview button didnt work, this is my code

Like 1

Like

0 comments
Show all comments

Hello, is there a way to filter an activity dashboard metric by distinct values? 

Like 0

Like

4 comments
Best reply

Hello,

The only available option in this case would be to use a pivot table instead.  

Hello!

Thank you for your question.

It sounds like you are referring to adding a dashboard to a record page, and having it filter data based on the current record (e.g., showing only activities related to the specific record you are viewing).

Yes, this is possible in Creatio.

To do this, you need to add a filter to the dashboard widget, so that it displays only data related to the current record.

 We’ve attached a screenshot that shows where and how you can configure this filter.

Please let us know if this answers your questions!

Valeriia Ripnevska,

Hello, thank you for the response.

I'm actually referring to the Classic UI. What you suggested will filter for a specific record but that isn't what I'm after. 

In Classic UI if I select the Activities section, there is a dashboards tab within that section.  Inside one of these dashboards I want to use the metric widget to count unique values. 

For instance, it may show one client name multiple times because many activities exist for that client (phone calls, emails, texts etc), however I want it to count the client only once as a unique value. I can filter the type of activity to only (phone call) for example but there still could be many phone calls for one client so I will see the client appear in the count multiple times.

 Another way to think about it, is that in excel I would use =unique - https://support.microsoft.com/en-us/office/unique-function-c5ab87fd-30a3-4ce9-9d1a-40204fb85e1e or conditional formatting to remove duplicate values, I want to apply the same logic to a creato metric widget in a dashboard.

Hello,

The only available option in this case would be to use a pivot table instead.  

Got it, thank you. Ultimately I wanted it as a Metric but this will suffice.

Show all comments

Hello community

on the release notes for 8.2.2 version is described the new feature

Save data without closing the page. You can now let users stay on the page after they save a new record. The functionality is available for full-sized form pages.

I can't find it, could you direct me?

Like 0

Like

3 comments
Best reply

That is a property that shows for the save data button

Ryan

That is a property that shows for the save data button

Ryan

thanks!

Hi Ryan,

This setting works as expected in the cloud environment, but not in my local environment.

Do you have any suggestions?

Show all comments

I need to set a business process parameter C (integer) as the ceiling of A/B (both integer parameters).

I tried using the following formula:

RoundUp([#A#]/[#B#]) 

but when trying to save I receive this error:

Formula value error: No applicable method 'Ceiling' exists in type 'Math' (at index 5).

Is there anything I need to include in my business process to be able to use the RoundUp function? I already tried RoundOff and it returns the same error.

Like 1

Like

1 comments

Hello, 

 

In versions 7.17.3 and 7.17.4, to resolve the error, it is necessary to disable the feature Feature-UseTypeCastExpressionValidationInProcess by adding the following line to the application's \Terrasoft.WebApp\web.config file:

xml

<add key="Feature-UseTypeCastExpressionValidationInProcess" value="false" />

As an alternative solution, the issue can also be resolved by explicitly specifying data type casting in the formula.

Conversions that may lead to precision loss—for example, the error message “An error occurred in the formula: Cannot convert type 'Double' to 'Int32'”—must be handled explicitly through proper type casting.

 

Thank you !

Show all comments

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