How to Manage Support Requests
How to manage support requests by OSOE Project.
This visual guide is part of a collection of documents created by the One
Student One ERP (OSOE) project in collaboration with Institut Mines Telecom,
Telecom Bretagne, Dresden University of Technology and the South Westfalia
University of Applied Sciences. It can be used to teach modern ERP theory and
practice to undergraduate students or professionals.
Copyright: You are free to copy, distribute, display, and perform the work
under the following conditions: you must attribute the work in the manner
specified by the author or licensor; you may not use this work for any
commercial purposes including training, consulting, advertising,
self-advertising, publishing, etc.; you may not alter, transform, or build upon
this work. For any reuse or distribution, you must make clear to others the
license terms of this work. Any of these conditions can be waived if you get
permission from the copyright holder through a commercial license or an
educational license. For more information, contact info@nexedi.com
init
openAndWait ${base_url}/Zuite_setUpIncomingEventTest
verifyTextPresent Init Ok
Wait for activities
Login As Functional Test User
Agenda
• Create an incoming Event from the client's document
• Define the Recipient - the team member responsible to reply to client
• Create the Follow Up Ticket - a Support Request Ticket
• Deliver the Event
• Reply to the client
Support Request is a kind of Ticket which the incoming Events (email, phone
call, fax, etc.) of your customers are assigned to, and which is a very
important Ticket in ERP5 CRM because it allows you to manage all the
interactions between your customer, your company and your supplier effectively,
which helps consolidating the customer relations of your company.
From last tutorial we have learned the standard process of managing incoming
Events. In this tutorial, we will specially introduce the process of how to
manage the Ticket "Support Request", following the standard process of managing
incoming Events explained in last tutorial.
The incoming Event workflow
The incoming Event workflow
As you have learned from last tutorial, the second part of this illustration
shows the standard process of Incoming Events: Declare as Received , Define the
Event's Recipient , Create a Follow Up Ticket and Deliver
Now we will explain in detail how to practice this process in managing Support
Requests.
Scenario
Scenario: a request for support of ERP5 instance configuration
This tutorial is based on a scenario that will help you understand how to
manage Support Requests and the role of this kind of Ticket.
Z Company is an electricity supplier, one of VIFIB clients who are using the
ERP5 instance. John Scott Doh is the marketing manager of Z Company. From this
year, as the other departments of Z Company, he starts to implement the ERP5 to
manage his marketing department, and specially the ERP5 CRM for his business
with his clients. In the very beginning of using this new instance, he met some
difficulties in the configuration of the ERP5 instance, so he wrote to the ERP5
support team asking for help. When the ERP5 support team receives the email
from this client, someone in the team will create a new incoming Event in ERP5
in order to ask for someone who is capable to answer to the request of John
Doh.
Now please follow this scenario, combine with the standard incoming Events
process you have learned, to see what's the steps to take in ERP5 to manage the
support requests from your clients.
Find the request sender John Doh in your ERP5
Browse for John Doh in your ERP5
In ERP5 CRM, in order to better manage the customer relations, once we receive
an incoming email, phonecall or fax from our clients, we will have to create a
new incoming Event from the support request sender's document in order to tell
our team that we receive a message from our client. In this way, all the
support requests from our clients will be recorded immediately, and be assigned
to personnel to handle them later.
In our example, we will first create an incoming Event to inform our ERP5
support team that we have received an email from John Doh who is asking for
help. As it is John Doh who sent this email, we will create the incoming Event
directly from John Doh's Person Document, in order for the Event to be linked
easily to John Doh in ERP5.
In order to create an incoming Event from the request sender John Doh's
document , the first step will be to reach John Doh's person document in ERP5.
To do so, click on the “Modules” on the sidebar of your instance, and click on
“Persons”.
Click on John's line
Click on John's line
Then we will reach list of Persons stored in your ERP5 instance, click on John
Doh's line in order to reach his Person Document.
waitForElementPresent //a[contains(text(),
"ZUITE-TEST-INCOMING-EVENT-PERSON-SUPERVISOR")]
click //a[contains(text(),
"ZUITE-TEST-INCOMING-EVENT-PERSON-SUPERVISOR")]
Open the Events tab
Open the Events tab in the person's document
Now that you have reached John Doh's Person Document, the second step in order
to create an incoming Event from the support request sender's document is to
reach the Event list of John Doh by Click on the Event Tab in John Doh's
document.
The Events list is empty
The Events list is empty
As you can see, the Events list of John Doh is still empty because until now,
there is no Event related to John Doh, i.e., VIFIB hasn't had any interaction
with him so far.
Create a new Event (1): Action list
Click on 'Create New Event' on Action list
Since we have received the mail message from our client John Doh asking for
help, we will now create a new Event related to John Doh to record this
message. To do so, Click on“Create New Event" under the section
"ACTIONS" on the sidebar .
Create a new Event (2): Set Event title, type and direction
Set incoming Event title, type and direction
Set incoming Event title, type and direction 2
As you have learned in the previous tutorial “How to Prepare Outgoing Events”,
when the new Event is created, you can first set the basic information such as
Event title, type and direction , etc. The only difference here is to set the
Event Direction to “In” this time, because you want to create an Incoming
Event, indicating that you have received an email in this case, and then you
will enter this email in your ERP5 for someone of your team to process it.
Now you can copy and paste the email you have received from your client John
Doh into "Message" area, or you can also do it later in the Event edit page.
In order to follow this tutorial, check Keep in draft state option in order to
create an Event on "Draft" State. Afterwards, we are going to learn how to
learn how to declare it as received manually.
When you are done, click the “Create New Event” button.
click //input[@name="editable"]
waitForElementPresent //input[@name=
"field_your_title"]
select //select[@name= Mail Message
"field_your_portal_type"]
type //input[@name= ZUITE-TEST-INCOMING-EVENT-EVENT-001
"field_your_title"]
//input[@name=
click "field_your_direction"
and @value="incoming"]
click //input[@name=
"field_your_keep_draft"]
"New Event created"
New incoming Event has been created-state Draft
As you can see in the red area of the picture, a new Event has been created,
which is on the “Draft” state . The black area shows the Sender and Recipient
fields which have already been filled automatically, following this rule : The
Sender is John Doh, because the incoming Event has been created from his person
document. This act tells the ERP5 team that we have received an email from our
client John Doh somewhere. The Recipient here is Jingjing XU, because this is
the name of the ERP5 user who created this incoming Event. However, this
information can be changed later , if we need to assign this incoming Event to
someone else in our team to take care of it.
waitForElementPresent //input[@value=
"ZUITE-TEST-INCOMING-EVENT-EVENT-001"]
verifyText //label[normalize-space(text())='State']/../div Draft
Create a new Event (3): Copy/paste the email you received
Copy/paste the email you received into the new incoming Event
Now, copy and paste the email you have received from your client John Doh into
the red area: Text Format . This area aims at showing the email you have
received to all the persons of your team, which is the content of this new
incoming Event. If you have done it in the previous step, you can just review
and edit it as you want. And finally, don't forget to save your data changes.
type //div[@data-gadget-scope= ZUITE-TEST-EVENT-CONTENT this is the
"field_my_text_content"]//textarea content of our event.
Create a new Event (4): "Receive" the Event
Click on 'Declare as Received' on Action list
Now that you have drafted all the necessary fields of this incoming Event, it
is time to conform to the ERP5 that you have received this email from your
client, the move will lead to the change of the Event's state as Received.
To do so, Click on“Declare as Received”on the sidebar .
Event "Received"
Event Received
As you can see on the screenshot, after we declared that the Event is received,
the state of the newly created Event is now changed from "Draft" to "Received",
which is the first state of an incoming Event.
waitForElementPresent //input[@name=
"field_my_destination_title_list"]
storeValue //input[@name= user_title
"field_my_destination_title_list"]
verifyText //p[@id= Received
"field_my_translated_simulation_state_title"]
Define the "Recipient" - the person responsible to reply to client
Change the "Recipient" of the Event
Now it is time to define who should process this Event - the person in the ERP5
support team who will have to provide John Doh with an answer. We will ask our
team member “Yingjie XU” to take care of this Event.
To be able to proceed with this step you must have already created the Person
and user account for Yingjie XU by following the tutorial How to create new
User.
To assign the Event to “Yingjie XU”, first change the person name in the
“Recipient” field from "Jingjing XU" (the default Recipient) to "Yingjie XU".
Second, as usual, don't forget to "Save".
This step aims at indicating that “Yingjie XU” should receive this email from
the client, and has to take care of it. So after the step that we "Receive" the
Event, this Event will appear on Yingjie's worklist as "Received Events to
Deliver", which we will show you later. In this way, Yingjie will know that he
is responsible to handling a new incoming Event.
Another focus: switch user
Switch user to reply incoming Event
Now the incoming Event has been "Received" , the "Recipient" has been defined,
the Follow Up Ticket has been created, so it is time for the "Replier" - the
Recipient to offer support to the client. And all the following interactions
between the Replier and the Client will be recorded under the Support Request
Ticket we just created.
In this section, we will switch users in order to understand how users can be
aware that they have Events to handle.
Log out by clicking on the "Logout" on the sidebar. After being logged out, we
have log in as user “yingjie.xu” in order to help you understand how incoming
Events are displayed in the worklist of this user.
Login As Another Functional Test User
span>
Received Events in Worklist
Received Events to Deliver
“Yingjie” is now logged in, and while opening his Worklist, we see that there
are 1 "Received Events to Deliver” to be treated. Let's click on this line.
Which Event should be processed ?
Choose in the "Received Events" List
This is the list of "Received Events to Deliver", reached through the Worklist.
All the Events declared as "Received" and have assigned to a "Recipient" will
displayed on this list. In order to know who has to take care of them, each
user has to search for his person name in the Recipients field, and then he
will click now on this Event with his name as the Recipient in order to process
it. ERP5 can be also configured to only display the received events of the user
who is currently logged in, but the standard ERP5 configuration for SMBs is to
display all received events.
Now we have reached the List through Yingjie's Worklist, we can see that there
is 1 received Event to deliver (Normally there could be more Events on the list
with different Recipients). So user "Yingjie” only has his name in one Event,
which means that this is the only Event he is entitled to take care of. So
click on this line in order to process it.
waitForElementPresent //a[contains(text(),
"ZUITE-TEST-INCOMING-EVENT-EVENT-001")]
click //a[contains(text(),
"ZUITE-TEST-INCOMING-EVENT-EVENT-001")]
Assign this Event to a Support Request Ticket
Assign Event to Ticket
According to the standard process of incoming Events, if the Event can be
handled in a simple way, we can Create Response directly from the Received
Event's Action item list, as the option shown in the black frame. But if the
incoming Event needs to be handled in a complicated way, which needs a Ticket
to contain many following Events, as in our case the support request from our
client, we will then need to Create Follow Up Ticket from the Received Event's
Action item list, as the option shown in the red frame.
So the next step will be to assign this Event to a Ticket. If you remember
correctly, a Ticket can be a campaign, a sale opportunity, a support request, a
meeting, etc...In this case, the client has asked for help in his email, so
this is clearly a Support Request that has to be created. In order to create
this Support Request Ticket, Click on the“Create Follow Up Ticket”on the
sidebar.
Create a Support Request - Set Ticket title, type and nature
Set Ticket title, type and nature
Now you will choose the type of Ticket you want to assign this Event to. In the
first field, you can enter a Ticket Title . This title will be displayed in the
field Follow-Up of this Event. After this, you can choose the Ticket Type . In
our example, we will choose "Support Request" as Ticket type, which means that
later we will be able to find this support request Ticket in the Support
Request module of ERP5. After created, this Ticket can receive many different
Events afterwards, such as the reply from ERP5 support team member, and the
further questions from the client John Doh. When you are done, click the
“Create Follow Up Ticket” button .
type //input[@name= ZUITE-TEST-INCOMING-EVENT-TICKET-TITLE-001
"field_your_follow_up_ticket_title"]
select //select[@name= Support Request
"field_your_follow_up_ticket_type"]
"Follow Up Ticket created"
Follow Up Ticket created
The Follow Up Ticket of this incoming Event is now created. You can see the
Ticket is displayed in the "Follow Up" field in the Event's page.
The Event is now "Delivered" automatically.
The Follow Up Ticket is created in order to contain all the following Events
happened between the client and ERP5 team which are related to the original
Event. We can easily access to it by clicking the plane icon on the right side
of this field.
waitForElementPresent //p[text()="Delivered"]
click //input[@name="editable"]
waitForElementPresent //input[@name=
"field_my_default_follow_up_title"]
verifyValue //input[@name= ZUITE-TEST-INCOMING-EVENT-TICKET-TITLE-001
"field_my_default_follow_up_title"]
click //input[@name=
"field_my_default_follow_up_title"]/../../a
waitForElementPresent //input[@value=
"ZUITE-TEST-INCOMING-EVENT-TICKET-TITLE-001"]
storeLocation support_request
Wait for activities
openAndWait ${base_url}/Base_clearCache
assertTextPresent Cleared.
Edit the Follow Up Ticket - Define the Operators
Edit the Follow Up Ticket
Now we can access to the Follow Up Ticket of the incoming Event - the Support
Request Ticket we just created. In the page of the Ticket, as circled in red,
you can now define the Manager, the Supervisor and the Operators, so they will
know through their worklist that they are responsible to process the Ticket.
As circled in black, you can already see the Event from which we created the
Support Request Ticket has been contained in the Events List of this Ticket.
From now on, every interactions happen later between the operators and the
client will be recorded in this Ticket, and clearly listed in the Events List.
Now we can return to the event and we will now explain how to provide client
John Doh with an answer to his question.
open ${support_request}
waitForElementPresent //input[@name="field_my_quantity"]
type //input[@name="field_my_quantity"] 10.0
select //select[@name="field_my_quantity_unit"] Time/Day
type //input[@name="field_my_price"] 20.00
select //select[@name="field_my_price_currency"] EUR
Create Response to client
Create Response to client
Now it is time to reply to the client. If you remember, we have created a
Follow Up Ticket for this Event in order to record all the following
interactions related to the original Event. But the same as those Events which
can be handled in a simple way so not need to be assigned to a Follow Up
Ticket, we will use the Actions in the Event page to create responses to our
clients. The only difference is, all the Events of replies or other
interactions created from this Event will be related to it by "Event Origin"
and be recorded in the Follow Up Ticket we created.
Now we will click on "Create Response" under the "ACTIONS" on the sidebar
of the Event page to reply to client John Doh.
click //a[text()=
"ZUITE-TEST-INCOMING-EVENT-EVENT-001"]
verifyValue //input[@name="field_my_title"] ZUITE-TEST-INCOMING-EVENT-EVENT-001
Edit and send the response
Edit the response
Now we reached the Response editing page. We will first edit the reply in the
"Message" field, then check the other information in this page such as Title,
Date, etd. When you are sure everything is correctly edited, click on "Create
Response", then the response will be sent to the client and be created
automatically as an outgoing Event with a state of "Sent" .
You should be very careful before click on "Create Response" , because after
this action, your message to clients will be sent to them and cannot be
modified any more.
//div[@data-gadget-scope=
waitForElementPresent "field_your_response_event_text_content"]//
textarea
//div[@data-gadget-scope= Some
type "field_your_response_event_text_content"]// response
textarea
"Response Created"
"Response Created"
Here we are back to the original Event Mail Message from client John Doh. As
you can see on this page, it is stated "Response Created" , which means this
Information Request has been replied.
You can still access to the Response Event you have sent to clients to see the
details, just have to click on the "Related Events" tab .
storeLocation response
Wait for activities
openAndWait ${base_url}/Base_clearCache
assertTextPresent Cleared.
open ${response}
The Related Events tab
Related Events tab
Now we are lead to the Related Events tab of the original incoming Event from
John Doh, which we "Declare as Received", "Deliver" and "Create Response".
As we just created one response to the original Event from John Doh, there is
only one Event listed in the tab which is the Response mail we want to check.
Click on this Event to open it.
waitForElementPresent //a[text()="Re: ZUITE-TEST-INCOMING-EVENT-EVENT-001"]
click //a[text()="Re: ZUITE-TEST-INCOMING-EVENT-EVENT-001"]
The Sent Event - Response to client
Sent Event
Now we have accessed to the new Event created automatically when we "Create
Response" from the original incoming Event. The Event state is now "sent” ,
this means that the email containing the answer has been sent to the client
John's email address!
waitForElementPresent //p[@id=
"field_my_translated_simulation_state_title"]
verifyText //p[@id= Sent
"field_my_translated_simulation_state_title"]
type //input[@name="field_my_source_title"] $
{user_title}
waitForElementPresent //p[@id=
"field_my_translated_simulation_state_title"]
verifyText //p[@id= Delivered
"field_my_translated_simulation_state_title"]
Where is your processed Events (1)
Browse for Support Requests
We will need to find all the related Events after we have communicated with the
client, so we will go back to the Follow Up Ticket of the original Event, which
we created to recorded all the related Events to the original Event from our
clients.
You remember the Ticket is a Support Request. In order to find it, click on the
“Modules”tab on the sidebar of your ERP5 instance, and click on “Support
Requests” in order to reach the Support Request module.
Where is your processed Events (2)
Browse for Support Requests module
The line highlighted in red is the Support Request Ticket we created when we
assigned the incoming Event. Click on this line in order to open this support
Request Ticket.
Your processed Events in Follow Up Ticket
Processed Events in the Ticket
We can see first that not much information has been edited, but you can do it
now. Indeed, we have just created this ticket but not edited it yet. You can
find some help in the tutorial “How to Create a Marketing Campaign” in order to
understand which field is used for what (the Campaign and Support Request
Tickets look exactly the same indeed).
The red area displays all the related Events stored in this ticket . As you can
see there are two Events listed: the first one is the original Event which is
the incoming Event we created to notice our team of John's question. This Event
is on the Delivered state, because user “Yingjie” acknowledged it. The second
one is the answer that we created for John Doh. This Event is on the “Sent”
state, because the email was sent to the client!
From now on, this Support Request can be used if in the future, client John Doh
sends new emails about configuration problems . The only thing you will have to
do in order to add Events to this Support Requests, is to click the “Create new
Event”on the sidebar of this page. Then the new Event will be created and
associated automatically to the Ticket, as described in the “How to Prepare
Outgoing Events” tutorial.
Login As Manager
waitForElementPresent //a[contains(text(),
"ZUITE-TEST-INCOMING-EVENT-TICKET-TITLE-001")]
Login As Manager
openAndWait ${base_url}/Zuite_tearDownIncomingEventTest
verifyTextPresent Clean Ok
Wait for activities