WIP Definition Events

WIP Definition events allow for you to define and manage the Work in Progress, (WIP) of your customers' journeys within your customer lifecycle. They also allow for you partition steps within the lifecycle, allowing you to receive notifications based on customer behavior. These are defined and managed by the four sub-event types: WIP alert, WIP limit, Cycle Alert, and Cycle Limit.

DTOs:

Lifecycle.LifecycleEventDefinition

Properties

NameTypeDescriptionNotes
lifecycleEventDefinitionGroupIdString
lifecycleEventDefinitionIdLifecycleEventDefinitionId
dateCreatedDate[optional]
lastUpdatedDate[optional]
eventSubTypeStringDepending on the Event Type, the eventSubType further defines the Event Definition[optional]
hasSubscribersBooleanBoolean flag[optional]
hasQueueSubscribersBooleanBoolean flag[optional]
hasWebhookSubscribersBooleanBoolean flag[optional]
wipLimitNumberDepending on the Event Subtype, the number of units of Work-In-Progress[optional]
cycleTimeThresholdNumberDepending on the Event Subtype, the number of units of Work-In-Progress[optional]
cycleTimeUnitStringDepending on the Event Subtype, the unit of time (combine with the cycle time threshold)[optional]
alertPercentNumberInteger representation for alert percentage (depending on the Event Sub Type)[optional]
stepIdStringCopied from Lifecycle Event Definition Group.[optional]
stepNameStringCopied from Lifecycle Event Definition Group.[optional]
stepDescriptionStringCopied from Lifecycle Event Definition Group.[optional]
toStepIdStringCopied from Lifecycle Event Definition Group. Relevant only for process events.[optional]
toStepNameStringCopied from Lifecycle Event Definition Group. Relevant only for process events.[optional]
toStepDescriptionStringCopied from Lifecycle Event Definition Group. Relevant only for process events.[optional]

Enum: EventSubTypeEnum

  • PreStep (value: "PreStep")

  • PostStep (value: "PostStep")

  • StepWIPLimit (value: "StepWIPLimit")

  • StepCycleTime (value: "StepCycleTime")

  • ProcessWIPLimit (value: "ProcessWIPLimit")

  • ProcessCycleTime (value: "ProcessCycleTime")

  • ProcessWIPLimitAlert (value: "ProcessWIPLimitAlert")

  • ProcessCycleTimeAlert (value: "ProcessCycleTimeAlert")

Enum: CycleTimeUnitEnum

  • Years (value: "Years")

  • Months (value: "Months")

  • Weeks (value: "Weeks")

  • Days (value: "Days")

  • Hours (value: "Hours")

Lifecycle.LifecycleEventDefinitionGroup

Properties

NameTypeDescriptionNotes
lifecycleEventDefinitionGroupIdString
dateCreatedDate[optional]
lastUpdatedDate[optional]
eventNameString[optional]
eventDescriptionStringDescription of the event goes here[optional]
eventTypeString[optional]
lifecycleIdString[optional]
lifecycleVersionNoNumber[optional]
stepIdStepIdentifier[optional]
toStepIdStepIdentifier[optional]
lifecycleEventDefinitionList[LifecycleEventDefinition][optional]
publishedBooleanBoolean flag if group has been published[optional]
publicationDateDateDatetime indicating the first time group was published to an appSpace[optional]

Enum: EventTypeEnum

  • Step (value: "Step")

  • Process (value: "Process")

Sub-event types:

SubEventTypeTrigger TypeTimeNotes
ProcessWIPLimitChange in journeysBuffer 5 seconds / Mute 1 minuteWill only trigger if amount of journeys WIP definition increases
ProcessWIPLimitAlertChange in journeysBuffer 5 seconds / Mute 1 minuteWill only trigger if amount of journeys WIP definition increases.Also will not trigger if WIP limit is met.
ProcessCycleTimePoll5 minutesOnly triggers once per journey per cycle.
ProcessCycleTimeAlertPoll5 minutesOnly triggers once per journey per cycle.

Notes:

  • Mute: If the same event occurs within the mute time, the event will not fire.
  • Buffer: Amount of time used to aggregate events so most relevant events are sent. This can
    translate to a delay as long as the buffer time.

ProcessWIPLimit

Description:

When creating a WIP definition event, you can set a WIP limit on how many customers can be on a journey on any given time. When this limit within a specified lifecycle has been reached, it will send you an event. All WIP events are aggregated with a buffer of 5 seconds so that if many journeys are moved at the same time, only the relevant events are triggered. There is also a mute period of a minute, so that you will not be flooded with the same events.

{
	"eventDefinition": {
		"toStepName": "test name for next step",
		"eventSubType": "ProcessWIPLimit",
		"wipLimit": 2,
		"stepId": "33fef084-3598-46ce-a32d-edc08387e180",
		"stepDescription": null,
		"hasWebhookSubscribers": true,
		"lifecycleEventDefinitionId": "243195e9-5a18-40bd-90bc-70d050a63404",
		"alertPercent": null,
		"cycleTimeThreshold": null,
		"cycleTimeUnit": null,
		"lastUpdated": "2018-12-06T19:12:53.920Z",
		"toStepId": "7253568e-4c48-494e-90e5-b5ad8bdec2ee",
		"dateCreated": "2018-12-06T19:12:53.920Z",
		"hasSubscribers": true,
		"stepName": "Start Step",
		"toStepDescription": null,
		"lifecycleEventDefinitionGroupId": "2957fc5a-1a62-4e00-8eca-e95ee518782b",
		"hasQueueSubscribers": true
	},
	"eventWrapper": {
		"serviceVersion": 1,
		"eventBodyClassName": null,
		"serviceApi": "lifecycle",
		"eventHeaders": {
			"CurrentWIPCount": "1"
		},
		"eventOperationId": null,
		"eventSourceOperationId": null,
		"eventJsonBody": null,
		"eventTimestamp": "2018-12-06T19:13:02.233Z"
	}
}

ProcessWIPAlert

Description:

After setting a WIP limit within an event definition, you can then set for events to fire off at different percentages of the total WIP limit. All WIP events are aggregated with a buffer of 5 seconds so that if many journeys are moved at the same time, only the relevant events are triggered. There is also a mute period of a minute, so that you will not be flooded with the same events.

{
	"eventDefinition": {
		"toStepName": "test name for next step",
		"eventSubType": "ProcessWIPAlert",
		"wipLimit": 2,
		"stepId": "33fef084-3598-46ce-a32d-edc08387e180",
		"stepDescription": null,
		"hasWebhookSubscribers": true,
		"lifecycleEventDefinitionId": "243195e9-5a18-40bd-90bc-70d050a63404",
		"alertPercent": 40,
		"cycleTimeThreshold": null,
		"cycleTimeUnit": null,
		"lastUpdated": "2018-12-06T19:12:53.920Z",
		"toStepId": "7253568e-4c48-494e-90e5-b5ad8bdec2ee",
		"dateCreated": "2018-12-06T19:12:53.920Z",
		"hasSubscribers": true,
		"stepName": "Start Step",
		"toStepDescription": null,
		"lifecycleEventDefinitionGroupId": "2957fc5a-1a62-4e00-8eca-e95ee518782b",
		"hasQueueSubscribers": true
	},
	"eventWrapper": {
		"serviceVersion": 1,
		"eventBodyClassName": null,
		"serviceApi": "lifecycle",
		"eventHeaders": {
			"CurrentWIPCount": "1"
		},
		"eventOperationId": null,
		"eventSourceOperationId": null,
		"eventJsonBody": null,
		"eventTimestamp": "2018-12-06T19:13:02.233Z"
	}
}

ProcessCycleTime

Description:

During the creation of a WIP Event Definition you can set a cycle time threshold, which defines a target time limit for the customer to complete the lifecycle. Cycle time events are polled every 5 minutes. If a poll detects that the journey has reached the threshold over the last 5 minutes, an event will be fired. Once the event has been fired, it will not send any subsequent events for that threshold.

{
	"eventDefinition": {
		"toStepName": null,
		"eventSubType": "ProcessCycleTime",
		"wipLimit": null,
		"stepId": "8d7a724a-0cf2-4822-9c4c-f634957838ad",
		"stepDescription": null,
		"hasWebhookSubscribers": true,
		"lifecycleEventDefinitionId": "dfaf2c44-ca80-4c14-8c09-4210f1690588",
		"alertPercent": null,
		"cycleTimeThreshold": 2,
		"cycleTimeUnit": "Minutes",
		"lastUpdated": "2018-12-06T19:20:59.868Z",
		"toStepId": null,
		"dateCreated": "2018-12-06T19:20:59.868Z",
		"hasSubscribers": true,
		"stepName": "Start Step",
		"toStepDescription": null,
		"lifecycleEventDefinitionGroupId": "e60be8a1-89ab-455d-991c-c8ca47dc9f7f",
		"hasQueueSubscribers": true
	},
	"eventWrapper": {
		"serviceVersion": 1,
		"eventBodyClassName": "com.chassi.microservice.dtos.lifecycle.Journey",
		"serviceApi": "lifecycle",
		"eventHeaders": {},
		"eventOperationId": null,
		"eventSourceOperationId": null,
		"eventJsonBody": {
			"journeyTags": [],
			"journeyCreateDate": "2018-12-06T19:21:01.285Z",
			"externalCustomerId": null,
			"metadata": [],
			"currentStepType": "Not_Started",
			"stepStartDatetime": "2018-12-06T19:21:01.285Z",
			"currentStepId": "8d7a724a-0cf2-4822-9c4c-f634957838ad",
			"lastUpdated": "2018-12-06T19:21:01.293Z",
			"dateCreated": "2018-12-06T19:21:01.293Z",
			"versionNo": 1,
			"customerId": null,
			"elapsedJourneyTime": 144,
			"currentStepElapsedSeconds": 144,
			"lifecycleVersionId": "b91e1a58-a0e6-4233-bac6-97aa1180f524",
			"currentCycleElapsedSeconds": 144,
			"currentStepName": "Start Step",
			"previousStepId": null,
			"currentPath": "{\"steps\":[{\"stepId\":\"8d7a724a-0cf2-4822-9c4c-f634957838ad\",\"stepName\":\"Start Step\",\"pathIndex\":1.0}]}",
			"currentCycleNo": 1,
			"previousStepName": null,
			"journeyId": "7de7da5f-d193-42b3-876c-c843f8b8aebd",
			"lifecycleId": "089a7157-c612-4341-a57b-b8c47451b3d9",
			"cycleStartDatetime": "2018-12-06T19:21:01.285Z",
			"previousStepType": null,
			"lifecycleName": null
		},
		"eventTimestamp": "2018-12-06T19:23:25.998Z"
	}
}

ProcessCycleTimeAlert

Description:

When a WIP event definition is created with a cycle time threshold, you have the option to add alert percentages of that threshold. Cycle time events are polled every 5 minutes. If a poll detects that the journey has reached the threshold percentage over the last 5 minutes, an event will be fired. Once the event has been fired, it will not send any subsequent events for that threshold percentage.

{
	"eventDefinition": {
		"toStepName": null,
		"eventSubType": "ProcessCycleTimeAlert",
		"wipLimit": null,
		"stepId": "8d7a724a-0cf2-4822-9c4c-f634957838ad",
		"stepDescription": null,
		"hasWebhookSubscribers": true,
		"lifecycleEventDefinitionId": "dfaf2c44-ca80-4c14-8c09-4210f1690588",
		"alertPercent": 20,
		"cycleTimeThreshold": 2,
		"cycleTimeUnit": "Minutes",
		"lastUpdated": "2018-12-06T19:20:59.868Z",
		"toStepId": null,
		"dateCreated": "2018-12-06T19:20:59.868Z",
		"hasSubscribers": true,
		"stepName": "Start Step",
		"toStepDescription": null,
		"lifecycleEventDefinitionGroupId": "e60be8a1-89ab-455d-991c-c8ca47dc9f7f",
		"hasQueueSubscribers": true
	},
	"eventWrapper": {
		"serviceVersion": 1,
		"eventBodyClassName": "com.chassi.microservice.dtos.lifecycle.Journey",
		"serviceApi": "lifecycle",
		"eventHeaders": {},
		"eventOperationId": null,
		"eventSourceOperationId": null,
		"eventJsonBody": {
			"journeyTags": [],
			"journeyCreateDate": "2018-12-06T19:21:01.285Z",
			"externalCustomerId": null,
			"metadata": [],
			"currentStepType": "Not_Started",
			"stepStartDatetime": "2018-12-06T19:21:01.285Z",
			"currentStepId": "8d7a724a-0cf2-4822-9c4c-f634957838ad",
			"lastUpdated": "2018-12-06T19:21:01.293Z",
			"dateCreated": "2018-12-06T19:21:01.293Z",
			"versionNo": 1,
			"customerId": null,
			"elapsedJourneyTime": 144,
			"currentStepElapsedSeconds": 144,
			"lifecycleVersionId": "b91e1a58-a0e6-4233-bac6-97aa1180f524",
			"currentCycleElapsedSeconds": 144,
			"currentStepName": "Start Step",
			"previousStepId": null,
			"currentPath": "{\"steps\":[{\"stepId\":\"8d7a724a-0cf2-4822-9c4c-f634957838ad\",\"stepName\":\"Start Step\",\"pathIndex\":1.0}]}",
			"currentCycleNo": 1,
			"previousStepName": null,
			"journeyId": "7de7da5f-d193-42b3-876c-c843f8b8aebd",
			"lifecycleId": "089a7157-c612-4341-a57b-b8c47451b3d9",
			"cycleStartDatetime": "2018-12-06T19:21:01.285Z",
			"previousStepType": null,
			"lifecycleName": null
		},
		"eventTimestamp": "2018-12-06T19:23:25.998Z"
	}
}