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
Name | Type | Description | Notes |
---|---|---|---|
lifecycleEventDefinitionGroupId | String | ||
lifecycleEventDefinitionId | LifecycleEventDefinitionId | ||
dateCreated | Date | [optional] | |
lastUpdated | Date | [optional] | |
eventSubType | String | Depending on the Event Type, the eventSubType further defines the Event Definition | [optional] |
hasSubscribers | Boolean | Boolean flag | [optional] |
hasQueueSubscribers | Boolean | Boolean flag | [optional] |
hasWebhookSubscribers | Boolean | Boolean flag | [optional] |
wipLimit | Number | Depending on the Event Subtype, the number of units of Work-In-Progress | [optional] |
cycleTimeThreshold | Number | Depending on the Event Subtype, the number of units of Work-In-Progress | [optional] |
cycleTimeUnit | String | Depending on the Event Subtype, the unit of time (combine with the cycle time threshold) | [optional] |
alertPercent | Number | Integer representation for alert percentage (depending on the Event Sub Type) | [optional] |
stepId | String | Copied from Lifecycle Event Definition Group. | [optional] |
stepName | String | Copied from Lifecycle Event Definition Group. | [optional] |
stepDescription | String | Copied from Lifecycle Event Definition Group. | [optional] |
toStepId | String | Copied from Lifecycle Event Definition Group. Relevant only for process events. | [optional] |
toStepName | String | Copied from Lifecycle Event Definition Group. Relevant only for process events. | [optional] |
toStepDescription | String | Copied 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
Name | Type | Description | Notes |
---|---|---|---|
lifecycleEventDefinitionGroupId | String | ||
dateCreated | Date | [optional] | |
lastUpdated | Date | [optional] | |
eventName | String | [optional] | |
eventDescription | String | Description of the event goes here | [optional] |
eventType | String | [optional] | |
lifecycleId | String | [optional] | |
lifecycleVersionNo | Number | [optional] | |
stepId | StepIdentifier | [optional] | |
toStepId | StepIdentifier | [optional] | |
lifecycleEventDefinitionList | [LifecycleEventDefinition] | [optional] | |
published | Boolean | Boolean flag if group has been published | [optional] |
publicationDate | Date | Datetime indicating the first time group was published to an appSpace | [optional] |
Enum: EventTypeEnum
-
Step
(value:"Step"
) -
Process
(value:"Process"
)
Sub-event types:
SubEventType | Trigger Type | Time | Notes |
---|---|---|---|
ProcessWIPLimit | Change in journeys | Buffer 5 seconds / Mute 1 minute | Will only trigger if amount of journeys WIP definition increases |
ProcessWIPLimitAlert | Change in journeys | Buffer 5 seconds / Mute 1 minute | Will only trigger if amount of journeys WIP definition increases.Also will not trigger if WIP limit is met. |
ProcessCycleTime | Poll | 5 minutes | Only triggers once per journey per cycle. |
ProcessCycleTimeAlert | Poll | 5 minutes | Only 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"
}
}
Updated over 5 years ago