- Overview
- Process modeling
- BPMN
- Process implementation
- Process operations
- Process monitoring
- Process optimization
- Optimization view
- Accessing the Process Optimization app
- Process Optimization app in Process Mining
- Process tracking
- Enriching Process optimization with external data
- Reference information

Maestro user guide
Enriching Process optimization with external data
To enhance Process optimization in Maestro, you can extend context and visibility into the underlying business objects by connecting to external source systems—such as Salesforce or ServiceNow—that the process operates on.
To achieve better process representation and segmentation, you need to import data from these external systems, which track business objects and their statuses, into your Process Optimization app in Process Mining. This enables more granular insights and helps identify areas for improvement. Examples include identifying product areas with high volumes of support tickets or optimizing processes based on newly discovered purchase order steps through process mining.
This page describes the steps to join external data with internal Maestro trace data to achieve this level of insight.
- Process Mining is enabled on the tenant.
- You are familiar with the internal data model, SQL, and Process Mining functions.
-
You have Process Mining Developer role assigned. Refer to Setting up the users for more information.
You have Edit data, Edit dashboards, and View permissions for the Process Optimization app. Refer to Managing access for Process Mining apps for more information.
- You have built, deployed, and ran a Maestro process that has Integration Service activities associated with an external source system (E.g. Loan Origination process that pulls and updates records from Salesforce).
- Go to the Process Mining Portal.
- Locate the app card for the Process Optimization app and select Edit in dev mode from the context menu.
- Select Upload dev data from the actions menu to upload external data.
- Use direct connection option to load data from Salesforce or ServiceNow.
- Or use the Upload data option to upload
CSV
orTSV
files exported from your source system.
For example, to load data from Contact and Opportunity Salesforce tables for a Loan Origination process.
Refer to Uploading data for more information.
Note:You can view the input tables that are created (via files or direction connection) in the Input section of the Data transformations. You can select a table, to preview the data.
Refer to Input data for more information.
- Go to Data transformations.
- Locate the models folder in the Transformations section and edit the
Objects.sql
file. - Compare the
Object_ID
values from theObjects.sql
file to the ID field from the external system table.Note: All object tables from external sources must join on thisObject_ID
field. Maestro, populates theObject_ID
field based on the underlying object of the activity. For example, an IS activity for the Contact table will log theContact_ID
as theObject_ID
in theAutomation_events
table). If you want to connect a Contact table from Salesforce, ensure theContact_ID
is the same format as theObject_ID
. The following code block shows an example SQL statement that can be used inObjects.sql
to match theObject_ID
to theContact_ID
field.SUBSTRING(Automation_events."Object_ID",0,LEN(Automation_events."Object_ID") - 3) as "Object_ID"
SUBSTRING(Automation_events."Object_ID",0,LEN(Automation_events."Object_ID") - 3) as "Object_ID"Tip: You can use this process to join multiple sources into a single Process optimization app. For example, if I want to join Salesforce, ServiceNow, and Process optimization data all into the same app. -
After confirmation of the Object_ID field from the
Automation_events
table and externalObject_ID
, join the tables on the ID fields. Add theTrace_ID
as a field to the table to associate the external object with a Maestro run.The following code block shows and example join in thecontact_data.sql
file to create theContact
table and join it with the automation data.select contact_data.*, Objects."Trace_ID", concat('Contact',to_varchar({{ pm_utils.id() }})) as "Unique_ID" from {{ source('sources', 'contact_data') }} as contact_data left join {{ref('Objects')}} as Objects ON contact_data."Contact ID" = Objects."Object_ID"
select contact_data.*, Objects."Trace_ID", concat('Contact',to_varchar({{ pm_utils.id() }})) as "Unique_ID" from {{ source('sources', 'contact_data') }} as contact_data left join {{ref('Objects')}} as Objects ON contact_data."Contact ID" = Objects."Object_ID"Note: Fields created using the.id()
function are numeric by default. You need to cast them tovarchar
, as that is the data type of theEvent_ID
field in theAutomation_events
table. - Go to the Output section in Data transformations, and select Data model to view the data model of the Process optimization app.
-
Add the new external object and events tables to the data model. Make sure that the external object tables have the
Trace_ID
field populated and joined. Refer to Data models for more information.The following illustration shows an example data model with the newly addedopportunity_data
andcontact_data
tables from Salesforce. - In the Output section in Data transformations, select Process to view the processes defined for the Process optimization app. Make sure there is a process defined with all events that will combine the events from the Maestro process and the external object events tables. Refer to Adding and editing processes for more information.
- Select Apply to dashboards to make the data available for use in dashboards.
- Edit the dashboards to visualize the external data and publish the Process optimization app.
The following illustration shows an example process graph with external data from Salesforce.