i want download an attached file on Creatio, using this endpoint:
https://miinstance.com/0/odata/ContactFile(f7946070-164d-48d3-8516-c31aff3f1588)/Data
But, don't work, If I consult directly without data, I receive the data, but to add /Data i receive the 204 status, y try with demo instance and works!, but in my production enviroment i always get the 204 status

 

{
    "@odata.context": "https://astec.creatio.com/0/odata/$metadata#ContactFile/$entity",
    "Id": "cd7641f2-8e9f-00c5-6662-c68f0f2dd298",
    "CreatedOn": "2025-05-16T22:46:30.610332Z",
    "CreatedById": "410006e1-ca4e-4502-a9ec-e54d922d2c00",
    "ModifiedOn": "2025-05-16T22:46:31.525903Z",
    "ModifiedById": "410006e1-ca4e-4502-a9ec-e54d922d2c00",
    "Name": "Abril 2025.pdf",
    "Notes": "",
    "LockedById": "00000000-0000-0000-0000-000000000000",
    "LockedOn": "0001-01-01T00:00:00Z",
    "TypeId": "529bc2f8-0ee0-df11-971b-001d60e938c6",
    "Version": 1,
    "Size": 135896,
    "ProcessListeners": 0,
    "ContactId": "35e409d2-c8fd-4790-9adf-43ff73abfc3e",
    "SysFileStorageId": "65e42805-0e6d-43c9-8784-32b555f08421",
    "FileGroupId": "efbf3a0d-d780-465a-8e4b-8c0765197cfb",
    "Tag": "",
    "TotalSize": 135896,
    "Data@odata.mediaEditLink": "ContactFile(cd7641f2-8e9f-00c5-6662-c68f0f2dd298)/Data",
    "Data@odata.mediaReadLink": "ContactFile(cd7641f2-8e9f-00c5-6662-c68f0f2dd298)/Data",
    "Data@odata.mediaContentType": "application/octet-stream"
}
Like 0

Like

4 comments

Hello,

Here are a few possible reasons for this behavior and some directions on where to start the investigation:

1. A 204 response usually means the endpoint was found, but the file content is zero bytes. This can happen if the file wasn’t uploaded correctly or if there’s an issue with the file storage. You can confirm this by checking the file size directly in the database, for example:
SELECT DATALENGTH([Data]) AS Bytes
FROM   ContactFile
WHERE  Id = 'f7946070-164d-48d3-8516-c31aff3f1588'
If this returns 0, the problem is likely at the storage level, not the API.

2. In production, the file may be stored in an external location like AWS S3, Azure Blob, or a network share. In this case check the ActiveFileContentStorage system setting is correctly configured.

If your website is using an S3 storage and since it's an external storage there is no possibility to use OData to get files from it. 
In this case we recommend to use a FileApiService in case you need to work with files on your website.

Nick Ovchynnik,

 

Nick Ovchynnik,

Hi Nick, I noticed that the storage is on S3, but I tried to create a web service with FileApiService to retrieve these documents attached to an object, but I wasn't successful. Not to mention creating a ScriptTask didn't work either.
Do you have a working example of how to do this?

Hi,

This article describes the operations with the files. Specifically, under the "Retrieve the file content" expandable tab.

If you face a specific issue with some part of the code, please submit a ticket to support@creatio.com so our team can address the error you got and suggest a solution.

Nick Ovchynnik,

Nick, finally i can make a webservice that, download a base64 of the selected document, let the code here, for help others with the same need.
Thank you very much.

namespace Terrasoft.Configuration.UsrFileRetrievalServiceNamespace {
    using System;
    using System.IO;
    using System.ServiceModel;
    using System.ServiceModel.Web;
    using System.ServiceModel.Activation;
    using Terrasoft.Web.Common;
    using Terrasoft.Core;
    using Terrasoft.Core.Factories;
    using Terrasoft.File;
    using Terrasoft.File.Abstractions;
 
    [ServiceContract]
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
    public class UsrFileRetrievalService : BaseService {
 
        [OperationContract]
        [WebInvoke(Method = "GET", RequestFormat = WebMessageFormat.Json,
                   BodyStyle = WebMessageBodyStyle.Wrapped,
                   ResponseFormat = WebMessageFormat.Json)]
        public string GetFileBase64(string fileId, string schemaName) {
            try {
                // Validaciones básicas
                if (string.IsNullOrEmpty(fileId) || string.IsNullOrEmpty(schemaName)) {
                    return "Parámetros inválidos.";
                }
 
                Guid recordId = new Guid(fileId);
 
                // Creamos el localizador del archivo
                var fileLocator = new EntityFileLocator(schemaName, recordId);
 
                // Obtenemos la fábrica de archivos
                IFileFactory fileFactory = UserConnection.GetFileFactory();
 
                // Cargamos el archivo desde la base de datos
                IFile file = fileFactory.Get(fileLocator);
 
                // Leemos el contenido del archivo
                byte[] content;
                using (Stream stream = file.Read()) {
                    using (var ms = new MemoryStream()) {
                        stream.CopyTo(ms);
                        content = ms.ToArray();
                    }
                }
 
                // Convertimos a Base64 para retorno JSON seguro
                return Convert.ToBase64String(content);
            } catch (Exception ex) {
                return $"Error: {ex.Message}";
            }
        }
    }
}
Show all comments

Hi Community,

I'm currently using the RichText element in a Creatio Freedom UI page to load a static HTML page inside a Tab container. The HTML content is stored in a System Setting, and I retrieve this code at runtime to display it using the RichText editor.

For example, I read the HTML code from a System Setting and then attempt to render the full HTML (including inline styles) in the RichText element.

However, I'm facing an issue where inline styles or custom CSS seem to be stripped out.

Figure 1: Original Design Layout

Figure 2: Current UI Output

Has anyone else encountered this?

Any suggestions would be appreciated.

Thanks in advance!

Like 2

Like

0 comments
Show all comments

I am kind of new to this platform and currently working on a Demo environment. Already created an Application from the AI Generation tool, but would like to do some changes to it that are far from my knowledge.

Is there a way to ask AI to create or edit something? So I can after check what AI did and learn from it.

Thank you

Like 0

Like

1 comments

Hello,

Creatio AI doesn't directly edit form pages, but it can assist with various tasks related to content creation and management. You can explore all the capabilities of Creatio AI currently available by following this link: https://academy.creatio.com/docs/8.x/no-code-customization/customization-tools/ai-tools/copilot/ai-skill-list

In addition, we've registered your idea in our R&D team backlog for consideration and implementation in future application releases.

Thank you for helping us to improve our product!

Show all comments

We are currently facing an issue with how incoming calls are handled within Creatio. When an incoming call is received, it is correctly routed to multiple available operator extensions simultaneously, which is expected behavior. However, the problem arises because Creatio is creating multiple call records — one for each operator to whom the call was redirected — even though only one of them actually answers the call.

We have a business process configured that is triggered upon the creation or modification of a record in the "Call" object. This process opens the customer profile page for the operator to assist in providing relevant information during the call.

The issue is that, due to multiple call records being created for the same incoming call, the business process is being triggered for all operators, not just the one who answers the call. As a result, the customer profile page is opening for all operators who received the call notification, which leads to confusion and unnecessary disruption.

Expected Behavior:
Only one call record should be created — specifically for the operator who actually answers the call. Consequently, the customer profile page should open only for that operator, not for everyone whose extension the call was redirected to.

Request:
We would appreciate your guidance or support in resolving this issue, either by adjusting the way call records are created or by providing a method to identify and limit the process execution to only the operator who answers the call.

Like 0

Like

3 comments

Hello,

Here’s how the basic logic works:

If a call appears on the CTI panel, it is automatically saved in the Calls section.
So, if a call is received by a group of 5 users, it will appear on the CTI panel for all 5 users. However, only one of them will actually answer the call.
As a result, 5 call records will be created in the Calls section, but only one will show that a conversation took place.

To avoid this, we recommend changing the call routing so that calls are directed to operators one at a time (sequentially).

This would require custom development, and unfortunately, we don’t have a ready-made example of this kind of implementation.



Best regards,
Malika

Hello, 

please take a look at this post: https://community.creatio.com/questions/cti-panel-answercall-method-ove… . Maybe it will help you in implementing similar logic in your process to what we did (trigger when user answers the call, instead when call record is created in database).

Best Regards,

Jelenko.

Jelenko Mršić,

Hello, 
Thank you for your response, I've tried using "Time to Connect" field as you have shown in your solution, but still the problem is not solved and when I checked incoming call is going to 4 different extension and only one operator is picking up the call but still the backend process is running for other operators too.

In the below screenshot the last column represent - "Time to Connect" value. 

 

Do you have any idea what could be the problem now?

Thanks.

Show all comments

Dear All,

Could you please advise on how to filter the timeline using Advanced Filters?

My use case is to filter messages posted on the Account timeline via a folder on the Account list page. Additionally, I would like to know if it's possible to create a section that displays all Feed messages.

I’ve already tried searching for relevant keywords (such as social, message, channel) in the Advanced Filters on the Account section, but haven’t found anything related.

I would greatly appreciate your support!

Best regards,
Jacek 

Like 0

Like

5 comments

Hello,

Could you please describe your business idea in more detail, what logic exactly do you need to achieve?

Hi Mira,

I'd like to filter feed messages entered on Account timeline using advanced filters/ folders in the Account section. 

So, in advanced filters I'd like to select object (e.g. Feed?), quantity, and then filter message text using 'contains' logical value.

Could you let me know if this is possible and how best to set it up?

Best regards,
Jacek

Hello,

Thank you, could you please also describe your business idea behind, what are you trying to achieve by such a setup?

Hi Mira, 

Firstly, maybe I will clarify that this is about a FUI configuration. What I am looking to do is just to filter the data entered as Feed messages. We will treat Feed similarly as Notes, but with an additional ability to upload attachments, so I'd like to be able to filter the data there on a higher (Account list page view) level. 

Thanks!
Jacek

Assuming what you're after is to see accounts with feed/timeline activity, for example, see which accounts have new activity this week. However, a filter like this will show accounts with activity/messages, not the activity/messages itself. 

Feed messages are object SocialMessage (title: Message/comment), however, they don't have a direct lookup to accounts since they are generic for any entity (the record stores the account Id in a generic EntityId column, not a lookup to the account). This is why they don't show in the list of objects related to accounts. To use this object in this way, I typically create a view to directly relate account feed records to the account so it can be used in filters. Not sure if it's possible to use in an account filter without that. 

Note, this would only account for Feed messages, however. If you want all timeline entries, that would come from several different sources (Case, Order, Opportunity, Activity, SysFile, etc) 

Show all comments

Hello, i am now trying to add in a button called re-appraisal

you know that when you add in a record you use the open new record and it has a pre-configured setup using a modal page to input data and inserting it

now i am trying to do the same with re-appraisal but this time by autotaking a pre-existing data from an item inside the list that was filled out previously

now when i lead it to that page, it goes to this page

like so... now when i press the Re-Appraise button in the modal page, why does it still stay on screen and not auto-refresh the entire list?

this is the business process that is running, do i need to add it in here or do i need to change it from the front?

 

Like 0

Like

3 comments

I'm not 100% sure I follow, but if you're updating a record in a process and expecting to see if refresh that on the UI, make sure that the object has it's "Enable live data update" property checked. 

Ryan Farley,

i've tried this just now, but it still failed to close the popup and refresh the listpage

i've searched a few related cases and found that you need to access LiveEditingForCurrentUser , however i cannot seem to find it in creatio can you help me through this process?

Hello.

LiveEditingForCurrentUser is a feature that can be enabled via the Feature Toggling section.

To access this section, open the following URL, replacing my_site_name with your actual site name:
https://my_site_name.creatio.com/0/flags

On the page that opens, locate the LiveEditingForCurrentUser feature and enable it using the toggle.


For more detailed information, you can refer to the following Academy article:
https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platform/platform-customization/interface-control-tools/existing-feature/overview

Best regards:
Antonii.

Show all comments

If you're exploring effective treatments for erectile dysfunction, Vidalista 60 is a powerful option known for its long-lasting results. This medication contains 60mg of tadalafil, a PDE5 inhibitor that works by boosting blood flow to the penis, helping men achieve and maintain firm erections during sexual activity. One of the standout features of Vidalista 60 is its extended duration of action—effects can last up to 36 hours after ingestion, earning it the nickname “the weekend pill.” This makes it an excellent choice for those looking for flexibility and spontaneity in their intimate life. Most users start to feel the effects within 30 to 60 minutes of taking the pill, provided they are sexually stimulated. It’s advised not to take more than one tablet in 24 hours to avoid side effects such as headaches, dizziness, or indigestion. The extended window of effectiveness reduces the pressure of timing and allows for more natural and relaxed intimacy. Vidalista 60 should be taken under medical supervision to ensure safety and efficacy, especially if you have any underlying health conditions or are taking other medications. For those looking to purchase it discreetly and affordably, Buycheapmedicine offers a reliable platform to get genuine ED medications delivered straight to your door. Choosing Vidalista 60 means investing in a solution that not only works fast but also keeps you ready for a longer period, making it a trusted companion for improved sexual performance and satisfaction.

Like 0

Like

0 comments
Show all comments

hello i am trying to upload a file using the attachment component

there are 2 upload fields however when i try to upload in 1 field then close the page, then when i open it both fields are filled with the same uploaded file, this works whenever i use either of the fields

Close then opoen again gives me this
does anyone know how to resolve this issue?

Like 0

Like

2 comments

What is the expected behavior you are wanting? If what you're wanting is basically two different/separate buckets of files attached to the same record, you can use file tags to separate them. Enter a different File Tag value for each of the Attachment components - just type a different value in that property of each component such as "KTP" in one and "NPWP" in the other. As a file gets uploaded it will get that tag added to it and the components will filter to only show files with that tag. https://academy.creatio.com/docs/8.x/no-code-customization/customization-tools/ui-and-business-logic-customization/element-setup-examples/components/set-up-an-attachments-component

Ryan

Ryan Farley,

That worked like a charm, tthank you very much :D

Show all comments

I've recently created a WhatsApp sandbox environment and followed the documentation and TechHour tutorial keenly. However, when I test the sandbox integration nothing occurs. I am sure that I have set up the channel, queue, and actions correctly and routed my sandbox settings properly as well. I decided to test the webhook with postman and kept on receiving a "204 no content" message 

 

 

I thought maybe because it is a CRM demo environment and I have created a custom package perhaps the omni chat messenger packages we're missing and that could be the issue, however not sure since I haven't tested it yet. If anyone has any insight on the probable cause please let me know!

 

Thanks,

Jose

Like 0

Like

1 comments

Hello, 

Please contact our support team directly at support@creatio.com so we could properly analyze your request.

Show all comments

Hi.  
I set 4 of our 200+ users' session timeout to 240 minutes.
The system Default is 60.
However, those 4 users are timing out at 60 minutes.
See images below -- what am I missing?
Thanks
Rob

 

 

 

 

 

 

 

 

 

 

 

Like 1

Like

4 comments

Hello!

The value of the personal User session timeout is applied after the user's previous session ends if the value was changed during the user's active session.

Please make sure that the user's session has ended and check the session time of this user one more time.

Thank you for reaching out!

So, do you mean the user needs to log out of Creatio for the new value to work?

If so, its not working as advertised then -- I have logged out many times since I changed it to 4 hours, and it still logs me out at 1 hour (system default).  I have also rebooted. 

Any suggestions are appreciated.   Thanks, Rob.

Verified its not just me that has this problem here at our organization.

Hello!

Could you please check the End Session Method of the specified users in the sessions detail? 

If the value is 0, it means that the session was not finished, and it is better to finish it manually by the user by logging out.

Also, we recommend you perform Flash Redis on the site. This may help you to clear cash.

Please notify us about the result after.

 

Show all comments