Directed Web Access (DWA) is a feature to support processing of assignments by external users without the need of having an Operator ID in the PEGA application, by sending necessary details over E-mail, which are called External Assignments. This feature is mainly used in the situations where the processing of assignments is based on dynamic and different operators.
An external assignment can be processed synchronously and asynchronously.
a. Synchronous Processing
1) Case flow cannot be progressed untill the External Assignment is completed
2) Work.EnageExternal – Starting flow action for synchronous processing.
3) Need to configure the above flow action as a local action to the assignment so that the user will have to option to trigger the External Assignment after reaching the assignment or can be used in a normal flow if completing the External Assignment is part of regular case flow.
b. Asynchronous Processing
1) Case flow can be progressed in parallel along with the External Assignment.
2) Work.EnageExternalForInformation – Starting flow for asynchronous processing.
3) Need to configure the above flow in a sub-process by selecting the Spin-Off option, so that the flow can be executed in parallel with the regular case flow.
The below is a high-level description of how an External Assignment is Created, Routed and Processed.
1) Agent identifies and creates the External Assignment and triggers the starting flow (based on the type of processing that is needed as explained earlier).
2) Agent will be provided with a screen to fill the details like Email Address, Subject, Message to the external user etc., which provides and instructs the external user on how to process the assignment.
3) PEGA creates an authentication token based on the information provided and sends an Email which contains the link along with the authentication token to access PEGA and necessary information for processing the assignment.
4) The external user clicks on the link and will be shown be a screen to provide necessary information.
5) Once the external user completes the assignment and clicks submit, the case processing can be resumed by the agent after reviewing the provided information by the external user. If needed the agent can again re-initiate the External Assignment, if the provided information is either wrong/not sufficient.
Think of an Order Management application which deals with the complaints related to customer orders.
A customer has ordered for Wireless Headset, but received Wired Headset. The customer reports an incident of receiving a different item from the ordered one.
The agent creates a case and get the necessary information from the customer and requests the order related information/artifacts to the merchant(external user), who package and deliver the ordered item.
During this process, merchant(external user) associated with each type of order will be different like Electronics, Clothing, Furniture etc., so it will be difficult to provide access to all of the merchants and also not secure.
With the help of DWA, the assignments to get necessary information from the merchants can be processed without having the Operator ID’s for the merchants(external user’s) and therefore making our life’s easy in securing and as well as maintaining the access for different merchants.
However a limitation that needs to be noticed here is, once the requested information is submitted and assignment is completed, there will be no option for the merchant(external user), to update the provided information for the second time.
Steps for implementing DWA
Application should be configured with the following things in-order to implement DWA.
1) Application should be configured to send outgoing E-mail.
2) The External User e-mail address to which the e-mail has to be sent.
3) An Operator ID having basic access for completing the assignments. (Don’t get confused, this operator id is not specific to any merchant. This will be used as a common operator id for completing External Assignments).
4) Correspondence rule to contain and send the instructions.
5) Configuring PEGA Application URL in PublicLinkURL DSS. (Learn about DSS)
6) Configuring application flow to trigger the External Assignment.
Let’s implement the mentioned things one by one to configure the DWA.
1) Application should be configured to send outgoing E-mail
a. Launch Email Account Creation Wizard.
b. The high-lighted value is the Workpool/Classgroup of the application. One can select the respective Workpool/Classgroup of their application. Click on Next.
c. You can use the below screenshot as a reference and configure the details like Email Provider, E-mail ID(for security reasons, I didn’t captured the Email ID in the screenshots, please make sure this field is not blank), Password etc., to the specific values which you want to use. Click on Next.
d. You can enable the checkbox Use sender’s ID and Password, so that the Receiver is configured to use the details mentioned in the Sender part. Anyhow this part is not used for the current exercise, but is needed to complete the Email Account setup
e. Now do Test Connectivity to make sure we are able to connect to the G-mail. If you are getting the below screenshot, it means you are successfully connected to Gmail.
f. If you are getting the below error, please follow the steps mentioned here in the official Google Page. (Don’t worry the instructions are very simple to follow). This is because, the G-mail by default will not allow the less secure apps to send and receive the e-mails. Once we enable the setting, the Test Connection will be successful.
2) The External User e-mail address to which the e-mail has to be sent
a. For learning purpose, you can use the same Email ID, that is configured to send e-mails in the Email Account created in point 1 as the External User e-mail address.
b. In simple terms we are going to use the same E-mail ID to send and receive e-mails regarding External Assignments. However in real time, the External User Email ID will be different.
3) An Operator ID having basic access for completing the assignments
a. By default PEGA provides an Operator ID named External, this can be used as a common Operator ID for completing the External Assignments.
b. However if you want to have a separate ID, specific to your application, create an Operator ID whose name starts with reserved keyword External_ and provide basic application access. Later the OOTB flow can be customized to use this Operator ID for completing the External Assignments of your application
c. For this tutorial I created a new Operator ID External_User and assigned application’s basic user access group.
External Operator ID – PEGA provided
External Operator ID – Newly created
4) Correspondence rule to contain and send the instructions
a. A Correspondence rule holds the details that can be sent over different type of channels like e-mail, fax, phoneText etc.,
b. As we all know, as part of DWA implementation, an e-mail will be sent to external user. Therefore we need to have a correspondence rule to define the content that we need to send to the external user.
c. But we know that PEGA won’t give us much work in anything 😛 i.e, it almost provides everything like the common mail content – URL for the application, Salutation etc.,
d. ExternalRequestBrief is one of the correspondence rule where it contains two Correspondence Fragment rules embedded. They are
i. ExternalMessage – Contains the Do not reply default message.
ii. ExternalInstructions – Contains the link for accessing application (refer to the below screenshots).
e. In runtime, the above code translates to the below, where each line corresponds to each embedded correspondence fragment rule.
f. In the below screenshot, I have created a correspondence rule ExternalRequiredInfo, added some values like order information, Signature etc., and included the PEGA provided ExternalRequestBrief in my correspondence rule to make use of it.
g. In runtime the above code translates to the below
5) Configuring PEGA Application URL in PublicLinkURL DSS
a. This is the DSS, where the application URL needs to be entered (nothing but the login page URL).
b. The value present as part of this will be referred in the Correspondence Fragment rule ExternalInstructions (which is shown as part of Step 4 ) to create a link that is used to access the application.
c. I am running PEGA on localhost and therefore mentioning the URL of the same.
6) Application flow from where the External Assignment will be triggered.
a. Let’s implement the Use Case mentioned in the starting of the tutorial. (Customer complaining about the delivery of a wrong item)
b. The below is the flow of recording a complaint against an order.
c. It contains a parent case Order and two child cases
i. Address Change
d. Initially the Customer and Order details are collected as part of parent case (Order).
e. Later the customer will be provided with two options and based on the selection. One of the following actions will be taken.
1) Changing the Address (out-of-scope for this tutorial).
2) Recording a complaint related to the order.
f. The below is the flow for processing a Complaint against an Order.
g. Description of the flow as below :
i. Add Work Party – Adds Work Party to the Complaint Case Type (Out-Of-Scope for this tutorial)
ii. Collect Complaint Details – Used to collect information about the Complaint like complaint description etc.,
Point To Note : This is the assignment, where the option to the agent to initiate External Assignment will be provided. Configuration for both Synchronous and Asynchronous external assignments will be explained below.
iii. Take Action – The next assignment once we receive the requested input from the external user. Here I am just capturing the liability owner as either Merchant(external user)/Customer based on the information provided by external user.
Configuring the assignment for External Assignments
As explained in the starting of the tutorial, an external assignment can be processed Synchronously and Asynchronously. And the starting flows and the way to call them are different. Let’s talk about them one by one.
Synchronous External Assignment:
1) The case processing waits untill the External Assignment gets completed.
2) Configuring PEGA provided EnagageExternal Flow Action as a local action to the Collect Complaint assignment by clicking the below highlighted shape.
3) The EngageExternal flow action has post-processing activity ActionEngageExternal, which inturns calls the flow EngageExternalQuick, where the external assignment is created, routed and email is sent to the external user. We need to save the rule EngageExternalQuick into our application class to use the Operator ID , Correspondence which we created earlier.
EngageExternalQuick – Saved into my application workclass and ruleset to change the default Operator ID and Correspondence rule to the ones which I created earlier
4) The above flow can be easily understood as each component will have explanation. And also I don’t want to bore you with everything 😛
But feel free to comment if you don’t understand anything/struck anywhere.
5) Once the agent reaches the Collect Complaint Details flow, he will have the option to initiate the External Assignment flow as shown below.
6) Once the agent selects the Engage External Party assignment. He will be prompted to enter details like E-mail Address, E-Mail Subject, Message etc.,
7) Here we can directly mention the E-mail ID of the external user or we can add him as a work party to the case (it’s a different concept, for now you can mention the E-mail ID directly) and refer that in the Select Role drop-down.
8) Once submitting the details, the case status changes to Pending-External. And an E-mail will be sent to the mentioned Email Address. The sent E-mail will be added as attachment to the case by default.
9) On clicking on the here, the link will be opened in another tab showing the case details and a notes field as shown below. I have entered some notes saying the order was delivered wrong and will be replaced.
Point To Note : The UI shown below is the content defined as part of PerformExternal harness and therefore if you want to make any changes / capture extra properties. You can copy the PerformExternal harness into your Workclass and Ruleset, then can proceed with the changes.
10) Once the information is submitted, ConfirmExternal harness is shown to the user as below. We can customize this as well to provide a better UI experience to the external user.
Point To Note : If you are getting Login Denied error while accessing the link even for the first time. Please clear the browser cache,close all browser sessions and give a try.
11) As we completed the assignment, If I try to click the link for one more time. I will be shown an error, saying the information is already provided.
12) As the External User completed the assignment, PEGA changes the case status and creates an assignment for reviewing the entered information and assigns to the agent who initiated the external assignment. We can re-initiate the external assignment again if needed or else the case can be processed further.
13) On submitting, the case can be processed in the normal flow.
Asynchronous External Assignment:
The case processing doesn’t wait and runs in parallel with the External Assignment.
1) The whole set up and processing is same, except the starting flow, we have to call flow EngageExternalForInformation in a sub-process, by selecting the Spin-Off option in the sub-process as shown below.
2) Once the agent reaches Collect Complaint Details assignment, he will have the option to initiate the External Assignment and when submitted by entering the same details that were entered for synchronous assignment like E-mail ID, Subject etc., the case can be progressed to the next assignment along with the External Assignment which runs in parallel.
1) Only one POST action can be sent to server. Once any POST is done, the URL becomes invalid.
2) Supporting point one, the URL which is sent over E-mail, can be used only for once i.e., after an user submits the requested information, there is no way the user can get the chance to modify the submitted information.
3) DWA harnesses are static web pages and do not support extra server interactions. For this reason we cannot use dynamic select controls, launching local action, refresh on change etc., which requires the server interactions.
Hope you enjoyed and learned something new today. Let me know your thoughts/doubts in the comments below.
Happy Learning !!!
Author - Satish Segu
A passionate and self teaching programmer with lots of love for Android programming. Currently being working as PEGA Developer and posses kowledge in a variety of areas starting from Case Management, Agents, Security, BIX etc., Connect with me through below links.