Buyer's Journey Tracking
Overview
This feature provides information about the your buying journey in CPQ. In detail, this mechanism applies at runtime during your session in the various modules of Smart CPQ. For each interaction you can have with the User Interface of Smart CPQ, an event is traced containing all the context of this interaction. The context of a given event has the same format for all the Smart CPQ users.
Optionally, you can personalize some parts of this context like the user identifier (that can come from external systems like a CRM for instance) or via some placeholders allowing to trace business-related data specific to your organization. Depending on your setup, those events can then be collected to be imported in a data storage hosted in your organization for further processing (e.g. via a BI tool) or can be consulted in a Graylog portal provided by PROS.
Format Version
Depending on the quoting module of Smart CPQ you use, the format and collect mechanism for the Buyer's Journey Tracking events is different. In each configuration, the events tracked for the Catalog and Configurator modules follow the same format as the one used for the quoting module in place.
Information
All PROS customers who activated the Buyer's Journey Tracking prior to V12.11 are running the analytics format V1.
All PROS customers who activated the Buyer's Journey Tracking after V12.11 are running the analytics format V2.
Collected Events
The list of events tracked in CPQ per module is the following:
CONFIGURATOR
- Open a configuration process.
- Switch to another configuration.
- Answer to a form property.
- Add a configurable product to the quote.
- Close configuration.
- External events.
CATALOG
- Open a catalog.
- Page consultation (Change of URL).
- Add to quote.
- Close catalog.
PERFORMANCE QUOTING
- Create a quote.
- Open a quote.
- Close quote.
- Switch to another quote step or page.
- Open the header tab.
- Open the left bar.
- Open the left tab component.
- Change the quote status.
- Generate a document.
- Add a product.
- Add a bundle product.
- Add a folder.
- Add a specific.
- Add a bundle specific.
- Add a configurable product.
- Delete a quote line.
- Move a quote line.
- Cut a quote line.
- Paste a quote line.
- Copy a quote line.
- Mass update quote lines.
- Perform a predefined mass update.
- Change the display currency.
- Change the display locale.
- Resize a widget with buttons.
- Resize widget via its border.
- Sort a component.
- Filter a view.
- Change a field value.
- Change a cell value in a grid.
- Change a cell value in a left tab.
- Import.
- Export.
- Refresh a data provider.
- Apply price goal seek.
- Apply price guidance goal seek.
- Open the rules.
- Apply rules
- Change quote line density.
CART
- Create a quote.
- Open a quote.
- Switch to another quote step.
- Change the quote status.
- Generate a proposal report.
- Change a value in the quote (header, spreadsheet, trigger...).
- Web service call (Clone Quote, etc.).
- In the context of the integration of CPQ with SFDC, events linked to the call of the Quote from the
CRM are also tracked.
Event Formats
ANALYTICS FORMAT V2 (ACTIVATION IN V12.11+)
The following event format applies for the three modules Catalog, Configurator and Performance Quoting when the latter is in use:
date
- Timestamp grouping Date + Time of each action.
- Ex: 2021-10-21T10:05:14.830Z
tenantId
- Identifier of the tenant where Smart CPQ is executed.
- Ex: a8515c30-42cc-11e6-beb8-9e71128cae77
environmentId
- Identifier of the PROS Cloud environment.
- Ex: dev
userId
- Identifier of the authenticated user (email address, service account or application Id).
- This is a unique identifier for each user of the solution.
- This is necessary to aggregate all the lines related to a given user session to identify templates of usage.
- Ex: "[email protected]"
sessionId
- Identifier of the quote session.
- Ex: 9ca21d3d5-4c91-4b63-a771-52fc3aa397c6
quoteId
- Identifier of the quote the end user is working on during this session.
- Ex: bfc89204-b3c2-4027-b1a2-42215600e5ca
module
- Track the CPQ module in which the action has been performed.
- Domain of value: Configurator / Catalog / Quote.
- Ex: Quote
moduleId
- For each module event tracked, gives the name of the module instance on which we are working (Quote ID, Catalog's / CP's CPE).
- Ex: bfc89204-b3c2-4027-b1a2-42215600e5ca
crmQuoteId (optional)
- Identifier of the quote created in the CRM associated with Smart CPQ (if any).
- Ex: xxxxxxxx
modelId
- Identifier of the quote model being run.
- Ex: Quote-To-Order
action
- Name of the action performed by the user in the module.
- Ex: OpenQuote
identifier
- The identifier of the object targeted by the action.
- This field could be empty depending on the action.
- Ex: PricingAllView
oldValue
- Display the previous value for the element on which the action is performed (could be empty).
- Ex: wksRowVMForklift/SI/52585809
newValue
- New value for the element on which the action is performed (could be empty).
- Ex: wksRowVMForklift/SI/52585810
landmark
- Area of the User Interface where the user performed the traced action.
- This is represented as a JSON Map.
- Ex: "landmark": {"componentId": "PricingAllGridComponent","stepId": "STEP_256","pageId": "PAGE_257"}
customerCorrelationContext
- Correlation context containing preset context data.
- This data is specific to your organization.
additionalInfo
- Placeholder for complex actions that need more details to be traced.
- This is represented as a JSON map.
- Ex: "additionalInfo": {"actionName": "ACTION_30"}
Here are a few examples of output event format:
OpenQuote
{
"date": "2021-10-21T10:05:14.830Z",
"tenantId": "a8515c30-42cc-11e6-beb8-9e71128cae77",
"environmentId": "dev",
"userId": "[email protected]",
"sessionId": "ca21d3d5-4c91-4b63-a771-52fc3aa397c6",
"module": "Quote",
"moduleId": "bfc89204-b3c2-4027-b1a2-42215600e5ca",
"action": "OpenQuote",
"quoteId": "bfc89204-b3c2-4027-b1a2-42215600e5ca"
}
AddProduct
{
"date": "2021-10-21T10:08:29.695Z",
"tenantId": "a8515c30-42cc-11e6-beb8-9e71128cae77",
"environmentId": "dev",
"userId": "[email protected]",
"sessionId": "ca21d3d5-4c91-4b63-a771-52fc3aa397c6",
"module": "Quote",
"moduleId": "bfc89204-b3c2-4027-b1a2-42215600e5ca",
"action": "AddProduct",
"identifier": "MOB_011",
"landmark": {
"componentId": "PricingAllGridComponent",
"stepId": "STEP_256",
"pageId": "PAGE_257"
},
"quoteId": "bfc89204-b3c2-4027-b1a2-42215600e5ca"
}
Export
{
"date": "2021-10-21T10:09:28.417Z",
"tenantId": "a8515c30-42cc-11e6-beb8-9e71128cae77",
"environmentId": "dev",
"userId": "[email protected]",
"sessionId": "ca21d3d5-4c91-4b63-a771-52fc3aa397c6",
"module": "Quote",
"moduleId": "bfc89204-b3c2-4027-b1a2-42215600e5ca",
"action": "Export",
"landmark": {
"componentId": "PricingAllGridComponent",
"stepId": "STEP_256",
"pageId": "PAGE_257"
},
"quoteId": "bfc89204-b3c2-4027-b1a2-42215600e5ca",
"additionalInfo": {
"actionName": "ACTION_30"
}
}
Multiple delete line
{
"date": "2021-10-21T10:21:39.995Z",
"tenantId": "a8515c30-42cc-11e6-beb8-9e71128cae77",
"environmentId": "dev",
"userId": "[email protected]",
"sessionId": "ca21d3d5-4c91-4b63-a771-52fc3aa397c6",
"module": "Quote",
"moduleId": "bfc89204-b3c2-4027-b1a2-42215600e5ca",
"action": "MultipleDeleteLine",
"identifier": "PricingAllView",
"landmark": {
"componentId": "S-4cef951d72ed450985c155bb46469e71",
"stepId": "PAGE_257",
"pageId": "STEP_256"
},
"quoteId": "bfc89204-b3c2-4027-b1a2-42215600e5ca",
"additionalInfo": {
"numberOfLines": "2"
}
}
Events per module
The following tables below give details on how each value of each event is retrieved. Each table corresponds to one module among Quote, Catalog and Configuration.
Configurator Events
Catalog Events
Performance Quoting Events
ANALYTICS FORMAT V1 (ACTIVATION BEFORE V12.11)
The following event format applies for the three modules Catalog, Configurator and Cart when the latter is in use:
date
- Timestamp grouping Date + Time of each action.
- Ex: 2016-01-19T11:45:33.533+01:00
customerID
- Identifier of the customer.
- Mandatory if push of events in data lake is active.
- Ex: prcleon10
userId
- Identifier of the user that can be personalized from an external source.
- This is a unique identifier for each user of the solution.
- This is necessary to aggregate all the lines related to a given user session to identify templates of usage.
- Ex: 00515000005zL0AAAU
uuid
- UUID useful only for some scenario.
- This is passed as a setting to the API calls.
- Ex: 8zTBR4iGlB+wVm1zRBXMT6Mi.node1
module
- Track the CPQ module in which the action has been performed.
- Domain of value: Configurator / Catalog / Quote.
- Ex: Quote
moduleId
- Name of the current module instance (Quote ID, Catalog's / CP's CPE).
- Ex: CPE.wksRowDealer/CL/catMainCollection
action
- Name of the action performed by the user in the module.
- Ex: CreateQuote
parentId
- ID of the parent object when relevant (For instance, the Product ID for a given quote line valuation).
- Ex: M50850501
identifier
- The identifier of the object targeted by the action (could be empty).
- Ex: CPE.wksHT/CP/cpNACH.wksHT/FO/foNACP.FP/fpMarketSegment
oldValue
- Display the previous value for the element on which the action is performed (could be empty).
- Ex: wksRowVMForklift/SI/52585809
newValue
- New value for the element on which the action is performed (could be empty).
- Ex: wksRowVMForklift/SI/52585810
quoteId
- ID of the quote the end user is working on during this session.
- Ex: 5b22dfd7-3ad5-e911-a849-000d3a3b7224
custom1 / custom2 / … / custom5
- Five placeholders for non-generic data. This allows PROS customers to trace business specific data.
- Ex: whatever is relevant to be traced
Each line of the log file is formatted in a JSON format and can be parsed for an external analysis. Here is an example of output event format:
{"date":"2017-10-09T11:19:15.010+02:00","userId":"6cfffbde-0669-e611-80dd-
c4346bac69f4","customerId":"","module":"Quote","moduleId":"0e6e5a5d-ceac-e711-811e-e0071b6ad131","action":"SetValuation","parentId":"cpHost20171009105743","identifier": "ItemQty","oldValue":"1","newValue":"2"}
UserId Personalization
The tracking mechanism can be personalized to trace a userId that is more relevant for your organization. Except if you want to use the userId provided by SFDC in the context of an integration with the CRM (see above), you must declare a new setting in the header of your quote model.
How To
- Log in the Quote Designer.
- Go in the Header configuration menu and enter the Quote Information section.
- Define a new field with the following characteristics:
- Name: AnalyticsUserId
- Type: Text
- Empty Value: Yes
- It is then possible to compute this value from CPQ elements or by mapping it with a
CRM/ERP field.
Events per module
The following tables below give details on how each value of each event is retrieved. Each table corresponds to one module among Quote, Catalog and Configuration.
Configurator Events
Catalog Events
Cart Events
Collect Mechanisms
ANALYTICS FORMAT V2 MECHANISM (ACTIVATION IN V12.11+)
When Performance Quoting is in use, the Buyer's Journey Tracking events are gathered directly in the Graylog portal provided by PROS. For more details on this access, please see Access to Logs.
ANALYTICS FORMAT V1 MECHANISM (ACTIVATION BEFORE V12.11)
When the Cart is in use, a specific logger collects all the events linked to users’ interactions and traces them in a log file called analytics.log by default. The log file can then be downloaded and consulted from the “Manage files” step of the Workspaces administration section in the CPQ Designer.
To configure this specific logger, a new section must be added in the following file on the CPQ server:
.. \jboss\standalone\configuration\standalone-cameleon.xml
<server xmlns="urn:jboss:domain:1.4">
<profile>
<subsystem xmlns="urn:jboss:domain:logging:1.2">
<periodic-rotating-file-handler name="ANALYTICS" autoflush="true">
<formatter>
<pattern-formatter pattern="%m,%n"/>
</formatter>
<file relative-to="jboss.server.log.dir" path="analytics.log"/>
<suffix value=".yyyy-MM-dd"/>
<append value="true"/>
</periodic-rotating-file-handler>
<logger category="ANALYTICS com.cameleon" use-parenthandlers="false">
<level name="ERROR"/>
<handlers>
<handler name="ANALYTICS"/>
</handlers>
</logger>
</subsystem>
</profile>
</server>
Then, to activate the tracking on your environment, change the log level of the ANALYTICS logger from ERROR to INFO:
<logger category="ANALYTICS com.cameleon" use-parent-handlers="false">
<level name="INFO"/>
<handlers>
<handler name="ANALYTICS"/>
</handlers>
</logger>
CRM Action Tracking
In order for the actions performed in the standard CRM integrations with Smart CPQ to be traced, some specific settings must be activated directly in the CRM.
Please visit the following pages to learn more:
- Salesforce: User Event Tracking Enabled
- MS Dynamics: Buyer's Journey Tracking
