Send Custom Milestones from Journey Manager Applications

   Journey Analytics The behavioural analytics tool.  |   Analytics User |  17.10 This feature was introduced in 17.10.

Milestones are significant events that occur in a transaction. There are two types of milestones:

  • Standard milestones that are generated automatically as part of the Journey Analytics business logic, such as Started, Abandoned, Saved or Submitted, and are used to populate the Journey Analytics analytics views.
  • Custom milestones, which can be used to record significant events in the user journey, based on the customer's application or business requirements. 

Custom milestones can be used for several purposes based on the needs of the business and/or the Application. They allow customers to build Analytical reports that answer specific questions to enable data-driven decisions that improve the onboarding experience and conversion. It is important to note that once a milestone is sent, it will forever be recorded against this transaction in Journey Analytics and cannot be revoked.

You can send custom milestones from a Groovy or Fluent service running on Journey Manager by updating the transaction's submission object by using TxnUpdater.addmilestone() API as shown below.

import com.avoka.tm.svc.*	
import com.avoka.tm.vo.*
import com.avoka.tm.query.*
Txn txn = new TxnQuery()
	.setTrackingCode("[transaction tracking code]")
	.firstValue()
	.addMilestone("Sample Milestone")		
	.update()		
new TxnUpdater(txn)

Presently, there are two ways Insights uses custom milestone data.

  1. To represent backend processing milestones in the User Journeys.
  2. As a global filter type to filter data in all Journey Analytics views.

Custom milestone compatibility

  • Journey Manager - since 17.10.

 

Examples

User Journey

In the context of User Journeys, custom milestones are markers that represent the path the users take within the transaction. These custom milestones are captured from either a Maestro or Composer application or from Journey Manager. Custom milestones from Journey Manager could be sent while a user is completing the application, or after the user submits the application.

Credit Check example

As part of checking the credit background of an Applicant, a "Credit Check Done" milestone could be sent soon after the credit check is completed on Journey Manager.


				new TxnUpdater(txn)	
				.addMilestone("Credit Check Done")		
		.update()

Approval Rate analytics example

If you want to understand the Approval and Rejection rate of submitted applications, you could send "Approved", "Declined" or "Review" milestone based on the decision as part of a Collaboration Job Action.

Approved


				new TxnUpdater(txn)	
				.addMilestone("Approved")	
		.update()				

Declined


				new TxnUpdater(txn)	
				.addMilestone("Declined")		
		.update()					

Review


				new TxnUpdater(txn)	
				.addMilestone("Review")		
		.update()					

As a Global Filter to Separate Applicant and Review transactions

Custom milestones are a good way to distinguish between transactions made by applicants and transactions made by reviewers. A common use-case is once an applicant has completed an application, the submitted transaction will be reviewed by a review team which creates a second transaction. In Insights, the events from review transactions will skew all metrics for applicant transactions. For example, for one end-user completed application, Insights will show the completed count as 2. In most cases, you will only want to consider and analyze transactions made by applicants. To address this issue, you can implement custom milestones on Journey Manager to identify the type of transaction and send a custom milestone to reflect that type.

Applicant Transaction


				new TxnUpdater(txn)
				.addMilestone("Applicant Transaction")
				.update()		
		

Review Transaction


				new TxnUpdater(txn)	
				.addMilestone("Review Transaction")
		.update()					

Depending on which Collaboration Job Step the transaction gets created, you could send either an “Applicant Transaction” (transactions initiated by applicants) or when a transaction is a “Review Transaction” (transactions initiated by reviewers).

  • SessionInvalid - When a Session belonging to a Transaction doesn't have user interaction (that transitions the status of the transaction to Started), and if the Transaction status remains in Anonymous Saved status at the end of the session, then upon the creation of a subsequent new Session, Journey Manager will invalidate the previous Session by sending a SessionInvalid milestone. This design makes sure that both Journey Manager and Journey Analytics clamp the transactions to the same date/time and that there are no discrepancies in Transaction Counts between Journey Manager and Journey Analytics.