Design a complaints handling flow

Introduction

This tutorial briefly explains the main functionalities of Qflow Design by creating a complaints handling flow.

This tool allows the user to design flows, define application data, template roles and other elements that form the basis of the flows.

Complaint flow

Lets say a company wants to improve its customer complaints handling system by implementing a Qflow process.

The complaint flow that they will implement will be developed as follows:

  1. A customer calls the company to express a complaint

  2. The call receptor starts a Qflow process with the following data:

    • Customer name

    • Customer email: it is going to be used to send a message once the complaint has been addressed.

    • Complaint text: customer complaint description

    • Text to send to the client: the text that will be sent to the customer once the complaint has been addressed.

    • Choose the option if the complaint is due to poor attention, defective product or other.

  3. The complaint is redirected to a department depending on the complaint option that was assigned: product manager, customer service manager or the business manager who chooses an employee to handle the complaint.

  4. Any of the complaint handlers addresses it and writes a text to send via email to the client.

  5. An email message is automatically sent to the customer, using the text entered in the previous step.

  6. The flow ends.

Qflow process construction

Create a new, empty template for the “Complaints” process.

Add elements to the flow design

  1. When creating the template the “Flow design” opens, this comes with a start and end event and is where all the steps that happen between these two will be added.

    An event represents something that happens in the flow. These can be classified as Start Event, Intermediate Events, and End Event.

    The start event marks the beginning of a flow. It also represents the point at which a user starts a flow.

    Qflow end events can be “terminate end” events and “end” events, both end the flow execution.

    A terminate end event ends the flow execution even when there are still threads running. In that case, Qflow ends those threads and the flow ends its execution. An end event, on the other hand, waits for all threads to finish and once they have ended, the flow ends. The flow threads will be explained later in the gateways section within Activity settings.

    This tutorial does not use intermediate events, Therefore, if you want information about these, consult the manual of the Qflow Design.

Process design

Fig. 194 Process design

  1. In order to add activities select the icon that represents an activity in the tool bar.

    An activity represents a unit of work to be done in the flow. It can be a task, an automatic process or a subprocess.

Add activity

Fig. 195 Add activity

  1. Add the tasks and an exclusive gateway to determine where the complaint will be sent.

  2. To connect the activities select the connection tool (violet icon) in the tool bar and then click on the activity you want to connect.

Connecting activities

Fig. 196 Connecting activities

  1. Assign types to the activities. To specify the type select the task and then click on the green icon with two arrows in opposite directions. A menu will appear to choose the activity type. We will add “Choose the person in charge of handling the complaint”, “Address poor attention”, “Address defective product” and “Address complaint” as user tasks and “Send response to the client” as an email task.

Activities with their types assigned

Fig. 197 Activities with their types assigned

Roles

Roles represent one or more users who will perform a certain role during the flow. When a flow template specifies that Qflow must send a task to a user, it does not specify a specific user, it specifies a role.

The option of assigning only one member, multiple members or members who have many users (for example, groups) is allowed.

In addition, rules can be applied to determine who the role members are, such as “supervised by” another member, “supervisor of”, among others.

The flow needs four roles:

  • Commercial manager: the one who receives the task when it is determined that the complaint is other and is the one who chooses the person in charge of handling the complaint. A user can be assigned to this role during the process definition (it is known who the commercial manager is). This role is the receptor of the “Choose the person in charge of handling the complaint” task.

  • Complaint handler: the one who receives the “Address the complaint” task. A user is assigned to this role during the flow execution: this is what the commercial manager does. This role is the receptor of the “Address the complaint” task.

  • Attention manager: the one who receives the task when it is determined that the complaint is due to poor attention. Assign your user account as a member (this is just for testing: in a real case, everyone would have a different member). This role is the receptor of the “Address poor attention” task.

  • Product manager: the one who receives the task when it is determined that the complaint is for a defective product. Assign your user account as a member (this is just for testing: in a real case everyone would have a different member). This role is the receptor of the “Address defective product” task.

“Product Manager” role creation:

Role creation

Fig. 198 Role creation

Result of creating all roles:

Roles

Fig. 199 Roles

Data domains

The domain of a data specifies the set of values that the data can take and is associated with a data type. In Qflow, each application data is associated with a domain and this is associated with a data type.

Qflow offers a set of basic domains, but it is possible to define additional domains.

The basic Qflow domains are the following:

  • Text area

  • Rich text area

  • Password

  • Money

  • Document

  • Email

  • Date

  • Date and time

  • Time

  • Hyperlink

  • Number

  • Telephone

  • Text

  • Boolean

A new domain is created in order to classify the complaint: “Complaint category” and it is assigned to the control type “Combo Box”, data type “Text” and data source “List”.

Domain creation

Fig. 200 Domain creation

Then go to the list settings, which are accessed by clicking the button. Within the window you can add different options that will appear in the list, they are added with the “+” button.

List configuration

Fig. 201 List configuration

Application data

Application data are data that Qflow handles in the flows. Each data is associated with a domain, and this is associated with a data type and a control type that determines how the data will be displayed in the flow forms.

The properties form of an application data has the following sections.

  • General: it contains the name, description, domain and other options that define the data behavior.

  • Advanced: it allows you to define default values for the data.

  • Presentation: it contains properties that define aspects of how the data will look on Qflow Task.

The application data needed for this tutorial are:

  • Customer name

  • Customer email

  • Complaint text

  • Text to send to the client

  • Category

Each application data is created by pressing the “+” button, a window will open to create it. Specify their respective domains for each one.

Application data “Customer name” creation:

Application data creation

Fig. 202 Application data creation

Result of creating all application data:

Application data

Fig. 203 Application data

Start step configuration

The start step triggers the beginning of a flow, and therefore, it is in this step where the application data that will be requested in the startup form is defined.

To define these application data, you must access the configuration window corresponding to the start step and there select the “Form” tab and in the “Visibility” section you can find the application dataThen, each field that you want to include in the startup form of the flow must be marked as “Required”.

The following image shows an example of data visibility configuration.

Data visibility configuration

Fig. 204 Data visibility configuration

Activity settings

To define each activity you must click on each one and then click on the blue gear button (“Edit”) or double click on them and a window will open to specify the properties.

Exclusive gateway

Gateways allow modifying the resulting path of a flow, either by creating multiple parallel paths in the process or selecting a path from several possible ones after the gateway.

All gateways are connected to several elements through their connectors. What changes according to the type of gateway is whether, once a flow passes through it, it continues using all paths, some of them or only one.

There are different types of gateways:

  • Exclusive gateway: it selects one of several possible paths for the process to continue running.

  • Inclusive gateway: it selects one or more of several possible paths for the process to continue running, so it can generate several parallel threads.

  • Parallel gateway: it generates as many parallel paths as there are outgoing connections.

An exclusive gateway gateway was created in this tutorial. To assign its properties, access its configuration window.

Exclusive gateway configuration

Fig. 205 Exclusive gateway configuration

When we open the gateway configuration panel we can see 3 sub-sections, each one referring to the tasks to which the gate is connected.

In the subsection that references the “Address Defective Product” task, click on “+ Condition”. This will add an empty condition and where it says “Start writing”, type “Category”. When a list with the application data “Category” appears, select it.

Type “Defective product” in the text box that appears below “Category”.

Repeat the same steps in the subsection that references “Address poor attention”, but type “Poor attention” instead of “Defective product” in the condition.

Exclusive gateway conditions

Fig. 206 Exclusive gateway conditions

Finally, there is the option of a default connection that is used by an exclusive gateway when none of the conditions it contains is evaluated as true.

To define a default connection, click on the connection that links the gateway to the “Choose the person in charge of handling the complaint” task in the flow template. Click on the green icon that shows two white arrows and select “Default connection”. This way, if none of the other expressions is evaluated as true, this connection will be used.

The arrow that connects the activities will look like this:

Default connection

Fig. 207 Default connection

“Choose the person in charge of handling the complaint” task

Being a user task, the message, addressees, responses and the data visibility must be defined.

Write “Choose the person in charge of the complaint of” in the message and (followed by a space) include the customer name in the subject. This is added with a tag, which is defined with a “#” and then adding the application data “Customer name”.

Then, the task addressee must be selected. The addressee is the role to which the task will be assigned (through the role, the task is assigned to the role member users). In this case, the addressee is the “Commercial manager” role.

Below the message subject, the possible responses for the task must be entered. When a user is assigned a task, they must enter Qflow Task to answer it. Some tasks provide several possible responses. In this case, only one response is needed that indicates that the person in charge of handling the complaint was selected and the flow may continue. The response is added with the “+” button.

User task

Fig. 208 User task

Finally, the visibility must be determined. Qflow allows you to define which application data, template roles and attached files users can see or modify during the flow and where they can do it. The same goes for comments, but in this case existing ones can be added or viewed.

The data and roles visibility behave in the same way as in the start step.

The appplication data visibility is modified by a table that shows the list of application data. All application data will be displayed if all of them have the “Missing” visibility, the option “Show missing visibility data” will be automatically checked. Otherwise the data with a visibility other than “Missing” will be displayed.

In this case, the visibility must be modified so that the “Complaint handler” role is modifiable and required. In addition, the user performing this task should see the complaint data, so in the data visibility it must be specified that the application data is visible but not modifiable (“Read-only” visibility).

The data visibility looks like this:

Data visibility

Fig. 209 Data visibility

The role visibility is as follows:

Role visibility

Fig. 210 Role visibility

To modify it, select the data you want to modify and select the visibility you want to configure.

Data visibility

Fig. 211 Data visibility

“Address poor attention” and “Address defective product” task

These two are user tasks, therefore their properties will be defined in a similar way as the previous one. Assign their correct addressee and in this case the application data does not need to be visible, except for “Text to send to the customer” which must be editable so that the person in charge of handling the complaint can edit the comment.

“Address poor attention” and “Address defective product” task

Fig. 212 “Address poor attention” and “Address defective product” task

“Address complaint” task

In the message subject write “Address complaint and type text to send to customer” and then use the application data “Customer name” as a task, just as in the previous user task.

The addressee is the “Complaint handler” role, which currently has no members, but when the process is running, the user selected by the commercial manager in the previous task will be added as a member.

Then add a final answer, so that the user may answer the form, for example, “Resolved”.

In this task, no role should be visible or modifiable but the application data must be enabled as “read-only” except for the “Text to send to the customer” which must be editable so that the person in charge of handling the complaint can edit the comment.

The task should look like this:

User task “Attend to complaint”

Fig. 213 User task “Attend to complaint”

The task visibility looks like this:

Task visibility

Fig. 214 Task visibility

“Send the answer to the customer” task

This task is an email task, so its configuration will differ from the previous ones.

The recipient must be specified from the application data “Email”. This is done with a tag, just like the previous user task. Then you must write a content subject for the message that the customer will receive, write “Resolution of your complaint”.

Afterwards it is necessary to specify that the body of the message must be entered in the data “Text to send to the client” by the person in charge of resolving the complaint. It is specified by a tag , but in this case, to open the list of items that can be used as tags, you need to click in the text area and press Control + Space. This is how properties that use a text area work (for example, the code in a code task).

E-mail task

Fig. 215 E-mail task

Tasks can also be service, code, user notification, async service, formula or call depending on what you want to do in that step.

  • Code task: it allows you to write code for a flow to run. The code can be written in C # or Visual Basic .NET languages and must implement an interface defined in Qflow.

  • Mail task: it sends an email message to the addresses specified in its properties.

  • Formula task: it takes application data or template roles, it performs operations on them and it generates a result that is also stored in some application data or template role.

  • User notification task: it sends a notification to Qflow users.

  • Service task: it runs an integration

  • Async service task: it allows you to assign a job to a bot. A bot can have parameters, just like an integration. An async service task is very similar to a service task, with the only difference that instead of selecting an integration to run, you select a bot that is assigned to a job.

  • User task: it assigns a task to a user or set of users. Task recipients are specified by the template roles of the flow.

Flow execution

Finally, the design must be published. This way, when you enter Qflow Task to start the process, you will find the template you just designed. To publish it, click on the “Publish” button in the process action bar, at the top right of the design screen. Alternatively you can publish by right-clicking on the template and selecting “Publish” from the menu.

The final design of the flow is as follows, for more information about items and elements of the flow that was not detailed in this tutorial, you can see the manual of Qflow Design.

Final process design

Fig. 216 Final process design