Order Management
Details about the Order Management user journey
The onOrderManagement
callback
onOrderManagement
callbackWhen the Assistant detects that the user is trying to view or cancel their orders, it invokes the callback associated with the order management user journey. The callback looks like this:
When this callback is invoked, the app is expected to:
Use the
OrderInfo
parameter to check if the user is interested to view or cancel their past ordersOpen the corresponding order page using the index field in the
OrderInfo
parameterReturn the appropriate App State and pass the relevant condition to it
For example, for a given onOrderManagement
callback invocation, if the user asked for viewing a specific order, and if that order did not exist, the app return OrderViewAppState and pass the condition ORDER_NOT_FOUND to it.
Sample Utterances that could trigger Order Management
The following are some examples of commands that could trigger this user journey
"show my orders"
"where is my last order"
"cancel my first order"
OrderInfo
Parameter
OrderInfo
ParameterThe parameterOrderInfo
contains the breakdown of the original order request. It has the following structure:
So when the user speaks "show my last order",
Index
=-1
OrderAction
=VIEW
When the user speaks "cancel my order"
Index
=0
OrderAction
=CANCEL
ConfirmationStatus
=UNKNOWN
index
can take the following values:
-1 = to indicate last order ("cancel my last order")
0 = when no explicit order is mentioned or when the user says "all"
1...n = The index as mentioned by the user ("show my first order")
Supported AppState
s
AppState
sThe following AppState
s are supported:
ORDER_VIEW (
OrderViewAppState
): To be returned when the app handles the order request and transitions to the orders page.ORDER_CANCEL (
OrderCancelAppState
): To be returned when the app handles the cancel request and navigates to the cancel orders pageUNSUPPORTED (
UnsupportedAppState
): To be returned when the app is not ready to handle orders yet. The Assistant will speak out an appropriate prompt to the user.
The Slang Retail Assistant provides a special AppState
call WAITING (WaitingAppState)
that is common across all UserJourney
types for completing asynchronous operations within the callback. Refer to the Asynchronous Action Handling section for details of how to deal with asynchronous operations.
Supported Condition
s
Condition
sThe following Conditions
are supported for each of the AppState
s supported by the Assistant
App State
Condition
ORDER_VIEW (OrderViewAppState)
SUCCESS - The order could be shown successfully
ORDER_HISTORY_EMPTY - There are no orders to show
ORDER_NOT_FOUND (index) - The specified order was not found
FAILURE - There was a failure while showing orders
ORDER_CANCEL (OrderCancelAppState)
SUCCESS - The order has been canceled successfully
ORDER_CANCEL_CONFIRMATION_REQUIRED - The app wants the user to confirm the cancellation request
ORDER_CANCEL_USER_CONFIRMED - The user has confirmed the cancellation and the app was able to cancel the order
ORDER_CANCEL_USER_DENIED - The user has denied the cancellation and the app is not going to cancel the order
ORDER_NOT_FOUND (index) - The specified order was not found
FAILURE - The order could not be canceled
Handling cancellations effectively
When the user is trying to cancel an order, the ideal workflow is that the app would want the user to confirm before actually canceling the order. Typically this would be done in a multi-modal fashion, i.e. the app would inform the Assistant to ask for confirmation via voice, while the app also shows a dialog box for the user to visually confirm the same.
Alternately, the app could choose to not show any confirmation and just directly cancel the order (if the order could be found)
Handling cancel confirmations
When the user initially requests for a cancellation, the Assistant sets the ConfirmationStatus
(inside the OrderInfo
parameter) to UNKNOWN. The app could then do the following:
If
ConfirmationStatus
==UNKNOWN
, return OrderCancelAppState(ORDER_CANCEL_CONFIRMATION_REQUIRED)
The Assistant will then ask the user to confirm the cancellation of the order and the same user journey callback will be invoked again (with the
ConfirmationStatus
set toCONFIRMED
orDENIED
)
If the
ConfirmationStatus
==CONFIRMED
, the app should attempt to cancel the order and if that was:Successful: return OrderCancelAppState
(ORDER_CANCEL_USER_CONFIRMED)
Failure: return OrderCancelAppState(
FAILURE
)
If the
ConfirmationStatus
==DENIED
, return OrderCancelAppState(ORDER_CANCEL_USER_DENIED)
When the cancellation is done via the UI, the app should notify about the status of the operation via the notifyAppState
API as described in the Asynchronous Action Handling section and use the same app state condition methods described above.
Assistant Prompts
Based on the App State and the Condition that was set, the Assistant will speak out an appropriate message to the user. You can examine the default set of prompts configured for the Assistant through the Console and also customize it to your needs. Refer to the Customizing the Assistant section for details.
Last updated