I am new to Creatio, and trying to create a dashboard for our internal team that shows Creatio Session logins by Organization role and/or User/Contact. What I need to see his now many session login by Month. I know this data exists in the Active User Statistics, but I am having trouble getting the username for these logins.
Would my starting point be the Active Users Statistics object, user, or some other object?
Any help for this newbie would be welcome. Thanks!!
I would use the "User session" object and then group by user. The User session object stores the individual sessions started/ended for a user, you can get to the user from that object as well. The "Active Users Statistics" is only a summary count of sessions, not the sessions by user etc.
I would use the "User session" object and then group by user. The User session object stores the individual sessions started/ended for a user, you can get to the user from that object as well. The "Active Users Statistics" is only a summary count of sessions, not the sessions by user etc.
Ryan, this worked great. Would you happen to know how to drill into a user record by role (Organization Role). For instance, if I wanted to see how many unique session per month for a particular org role that is assigned to a set of user (Like Sales, IT, etc)? BTW thank you very much for your help.
Not completely sure you could do that without some dev work. Maybe? Possibly I'm just not thinking through how to organize it. Since a user can have multiple roles and User session is tied to a user. What I would likely do is create a database view to flatten out the data between UserSession and SysAdminUnit (org roles I believe are SysAdminUnitTypeValue of 0 or 1, functional roles 6) with ConnectionType=0 for internal users. Then join between there to UserInRole and then UserSession. Then use that for the dashboard.
Hello, I am trying to see how many emails each of our active contacts received for a month, quarter, and year. How do i generate a report that shows, contact name, the total amount of emails that they received per month per quater and per year from their timeline? i also want to break that down by email category
The object you'll want to use for the dashboard or report is the "Bulk email recipient (audience)" object. From that object you can get to the contact and also a count of opens or clicks, and also can get to the bulk email and use the "Started on" date as the date the bulk email started (not necessarily the date the contact received it since it's sent in batches and if you're throttling sending periods, but likely close enough). You can then also group by email category via the bulk email as well.
I have come across a case where the user wants that there are multiple hierarchy of folder in the system ,but if one level of folder does not contain any records in it ,it should not be visible in the folders list.
The user does not want to apply access rights as everyone has access to see the folders but if there is no record in a particular folder then only it should not be visible to anyone.
Can this be achieved in Creatio through customisation in the list page?
Currently, Creatio does not provide a standard feature to hide empty folders in the folders list without configuring access rights. The folder structure in Creatio will show all static and dynamic folders to users who have access, regardless of whether the folders contain records.
If you require this functionality, it would require a custom implementation, as it is not available out-of-the-box.
About the Contact Career entity, I would like to change the current behavior.
Our contacts can be associated with many different companies, with various career states. Currently, for a given contact, when the Primary field is checked on one record, the Current field is automatically unchecked on any record linked to a different account than the primary one.
I was not able to find the code responsible for this behavior. Is it possible to modify it?
I’m working on a business process that randomly assigns contacts as owners of new leads, but only after checking how many leads are already assigned to each contact. The goal is to ensure that each new lead is assigned to the contact who currently owns the fewest leads.
I need guidance or a solution for implementing this logic so that the system correctly identifies the contact with the lowest lead count and assigns the new lead to them.
Purpose is to distribute leads fairly and ensure every lead gets timely attention.
In a process when a new lead is created, add a Read Data element to read from the object above and sort by the open lead count in ascending order. The user read will be the one with the fewest open leads to assign the lead to.
The view could be something like this (this is for postgres and is not tested). You might need to adjust which users are included if you don't want to consider all users (maybe with a join to SysUserInRole to check if they belong to a role?)
create or replace view "UsrVwLeadOwnerCount"
as
select
con."Id",
con."CreatedById",
con."CreatedOn",
con."ModifiedById",
con."ModifiedOn",
con."ProcessListeners",
con."Id" as "UsrContactId",
coalesce(leadstat."NumLeads", 0) as "UsrOpenLeads"
from
"Contact" con
inner join "SysAdminUnit" adm
on con."Id"= adm."ContactId"and adm."SysAdminUnitTypeValue"=4
left join (
select
l."OwnerId",
count(l."Id") as "NumLeads"
from
"Lead" l
inner join "QualifyStatus" qs on l."QualifyStatusId"= qs."Id"
where
qs."IsFinal"=false
group by
l."OwnerId") as leadstat on con."Id"= leadstat."OwnerId"
where
adm."Name"not in ('Supervisor','Mandrill','SysPortalConnection')and
adm."Active"=true
(I'd possibly add another subquery for most recently assigned lead date, so you could add a secondary sort on that in case multiple users have the same open lead count).
You can implement this logic in a business process, but it cannot be done using standard elements only - a Script Task is required to correctly identify the contact with the lowest lead count.
Here is the recommended approach:
1) Use a Read Data element to retrieve all eligible contacts. Make sure it returns a collection of records.
2) Use a subprocess that runs for each item in this collection. Inside the subprocess, add another Read Data element to count how many leads are currently assigned to that specific contact (using the Owner field or your custom ownership field). Pass the result back to the parent process through process parameters.
3) In the parent process, use a Script Task to analyze the collected results and determine which contact has the lowest lead count.
4) Finally, use a Modify Data element to assign the selected contact to the new lead.
This approach ensures that the system always selects the contact with the smallest workload and distributes leads fairly.