Process Examples

This chapter assumes that you already know basically how to create and configure process items and how to place a process path on the drawing area. Please read the Process Management chapter for more information or participate in an OTRS administrator training.

This chapter contains two simple process examples from practice. You can use them yourself to apply your learned knowledge.

Application for Leave

This sample process describes a possible handling for a leave request. The agent creates a process ticket and enters the data. The ticket is then first sent to the head of department. After the approval of the head of department, the ticket is sent to the queue HR Department. If the department head does not give an approval, a ticket with the rejection is sent to the agent and the process ends.

The HR department receives the ticket with the approval of the head of department. Now it is checked if the agent still has enough free days available. If yes, a ticket is sent to the agent with the information Confirmed and the process ends. If there are not enough days available, a ticket with the information Rejected is sent to the agent and the process ends.

Enable the following System Configuration settings:

  • Ticket::Service

  • Ticket::Type

Create the following Queues:

  • Administration

  • HR Department

Create the following Services:

  • Application for Leave

Create the following Types:

  • Internal Request

Create the following Dynamic Fields:

Object

Type

Name

Label

Ticket

Text

ProcessState

Process State

Ticket

Date

VacationStart

Vacation Start

Ticket

Date

VacationEnd

Vacation End

Ticket

Text

UsedVacationDays

Days of Vacation Used

Ticket

Text

OpenVacationDays

Days of Vacation Open

Ticket

Text

EmergencyTelephone

Emergency Phone Number

Set the following System Configuration settings:

  • AgentFrontend::TicketDetailView::Widget::BusinessProcessInformation###DynamicField

    • ProcessState1 – Enabled

    • VacationStart1 – Enabled

    • VacationEnd1 – Enabled

    • UsedVacationDays1 – Enabled

    • OpenVacationDays1 – Enabled

    • EmergencyTelephone1 – Enabled

Create a new process named Application for Leave.

Create the following user task activity dialogs with fields:

  • Recording the demand

    • CustomerID → Display: Show Field As Mandatory

    • DynamicField_ProcessState → Default value: approval, Display: Do not show Field

    • DynamicField_OpenVacationDays → Display: Show Field As Mandatory

    • DynamicField_UsedVacationDays → Display: Show Field As Mandatory

    • DynamicField_VacationStart → Display: Show Field As Mandatory

    • DynamicField_VacationEnd → Display: Show Field As Mandatory

    • Queue → Default value: Administration, Display: Do not show Field

    • Service → Default value: Application for Leave, Display: Do not show Field

    • State → Default value: open, Display: Do not show Field

    • Type → Default value: Internal Request, Display: Do not show Field

  • Approved

    • DynamicField_ProcessState → Default value: approved, Display: Do not show Field

  • Approval denied

    • Article → Communication Channel: OTRS, Time Units: Do not show Field, Display: Show Field

    • DynamicField_ProcessState → Default value: approval denied, Display: Do not show Field

    • State → Default value: closed successful, Display: Do not show Field

  • Application for leave processed

    • Article → Communication Channel: OTRS, Is visible to customer: no, Display: Show Field As Mandatory

    • DynamicField_OpenVacationDays → Display: Show Field As Mandatory

    • DynamicField_UsedVacationDays → Display: Show Field As Mandatory

    • DynamicField_ProcessState → Default value: confirmation received, Display: Do not show Field

    • State → Default value: closed successful, Display: Do not show Field

  • Not enough vacation days

    • DynamicFieldProcessState → Default value: not enough vacation days, Display: Do not show Field

    • State → Default value: closed unsuccessful, Display: Do not show Field

Create the following sequence flows:

  • DynamicField_ProcessState = approval

    • Name: DynamicField_ProcessState

    • Type: String

    • Value: approval

  • DynamicField_ProcessState = approval denied

    • Name: DynamicField_ProcessState

    • Type: String

    • Value: approval denied

  • DynamicField_ProcessState = approved

    • Name: DynamicField_ProcessState

    • Type: String

    • Value: approved

  • DynamicField_ProcessState = confirmation received

    • Name: DynamicField_ProcessState

    • Type: String

    • Value: confirmation received

  • DynamicField_ProcessState = not enough vacation days

    • Name: DynamicField_ProcessState

    • Type: String

    • Value: not enough vacation days

  • DynamicField_ProcessManagementActivityStatus = 0 (successful)

    • Name: DynamicField_ProcessManagementActivityStatus

    • Type: String

    • Value: 0

Create the following sequence flow actions:

  • Set ticket title “Application for leave: EmployeeName”

    • Module: TicketTitleSet

    Click on the Save then the Configure button and add the following parameters:

    • Key: Title, value: Application for leave: <OTRS_CUSTOMER_REALNAME>.

Create the following user task activities:

  • Recording the application

    Assign the user task activity dialog Recording the demand.

  • Approval

    Assign the user task activity dialogs Approval denied and Approved.

  • Confirmation of HR department

    Assign the user task activity dialogs Application for leave processed and Not enough vacation days.

  • Process complete

Create the following script task activities:

  • Send ticket to queue “HR Department”

    • Script: TicketQueueSet

    Click on the Save then the Configure button and add the following parameters:

    • Key: Queue, value: HR Department

    • Key: UserID, value: 1

  • Send notification of confirmation to employee

    • Script: TicketArticleCreate

    Click on the Save then the Configure button and add the following parameters:

    • Key: Body, value: Good News! You can take your free time!

    • Key: CommunicationChannel, value: Internal

    • Key: ContentType, value: text/html;charset=UTF-8

    • Key: HistoryComment, value: Send note

    • Key: HistoryType, value: AddNote

    • Key: IsVisibleForCustomer, value: 1

    • Key: SenderType, value: agent

    • Key: Subject, value: Your application for leave was successfully processed

  • Send notification of denial to employee

    • Script: TicketArticleCreate

    Click on the Save then the Configure button and add the following parameters:

    • Key: Body, value: Your <OTRS_TICKET_Service> was denied. Please talk to your manager.

    • Key: CommunicationChannel, value: Internal

    • Key: ContentType, value: text/html;charset=UTF-8

    • Key: HistoryComment, value: Send note

    • Key: HistoryType, value: AddNote

    • Key: IsVisibleForCustomer, value: 1

    • Key: SenderType, value: agent

    • Key: Subject, value: Approval denied

Create the process path as follows:

Application for Leave Process on Canvas

Application for Leave Process on Canvas

Double click on the DynamicField_ProcessState = approval sequence flow and assign the Set ticket title “Application for leave: EmployeeName” sequence flow action.

Set the process state to Active and save it.

Defect Handling

This sample process describes a possible procedure for software defect handling. First, the possible software defect is recorded and classified via ticket. If it is a software defect, the ticket is sent to the queue Development. If it is not a software defect, the process ends at this point.

The ticket is now processed in development and runs through the Troubleshooting activity. If the defect has been fixed, the process ends.

If troubleshooting is unsuccessful, the ticket is returned to the Development queue for reprocessing.

Install the following packages:

  • OTRSServiceManagement

  • OTRSConfigurationManagement

  • OTRSDynamicFieldCI

Enable the following System Configuration settings:

  • Ticket::Service

  • Ticket::Type

Create the following Queues:

  • Technical Support

  • Development

Create the following Services:

  • Software

Create the following States:

  • ready for release → State type: open

Create the following Types:

  • Defect

Create the following Dynamic Fields:

Object

Type

Name

Label

Possible values

Ticket

Text

ProcessState

Process State

Ticket

Configuration item

AffectedSoftware

Affected Software

Ticket

Multiselect

AffectedVersion

Affected Version

Ticket

Multiselect

AffectedComponent

Affected Component

Ticket

Dropdown

Severity

Severity

  • 1 – low

  • 2 – minor

  • 3 – medium

  • 4 – major

  • 5 – critical

Ticket

Dropdown

Likelihood

Likelihood

  • very low

  • low

  • medium

  • high

  • very high

Ticket

Text Area

Tasks

Tasks

Set the following System Configuration settings:

  • AgentFrontend::TicketDetailView::Widget::BusinessProcessInformation###DynamicField

    • ProcessState1 – Enabled

    • AffectedSoftware1 – Enabled

    • AffectedVersion1 – Enabled

    • AffectedComponent1 – Enabled

    • Severity1 – Enabled

    • Likelihood1 – Enabled

    • Tasks1 – Enabled

Create a new process named Defect Handling.

Create the following user task activity dialogs with fields:

  • Report new software defect

    • CustomerID → Display: Show Field As Mandatory

    • DynamicField_AffectedSoftware → Display: Show Field As Mandatory

    • DynamicField_AffectedComponent → Display: Show Field As Mandatory

    • DynamicField_AffectedVersion → Display: Show Field As Mandatory

    • DynamicField_Severity → Display: Show Field As Mandatory

    • DynamicField_Likelihood → Display: Show Field As Mandatory

    • Article → Communication Channel: OTRS, Display: Show Field As Mandatory

    • DynamicField_ProcessState → Default value: defect reported, Display: Do not show Field

    • Queue → Default value: Technical Support, Display: Do not show Field

    • Service → Default value: Software, Display: Do not show Field

    • State → Default value: open, Display: Do not show Field

    • Type → Default value: Defect, Display: Do not show Field

  • Defect classification

    • DynamicField_Severity → Display: Show Field As Mandatory

    • DynamicField_Likelihood → Display: Show Field As Mandatory

    • Priority → Display: Show Field As Mandatory

    • Article → Communication Channel: OTRS, Display: Show Field

    • DynamicField_ProcessState → Default value: defect classified, Display: Do not show Field

  • Planning of defect handling

    • DynamicField_Tasks → Display: Show Field As Mandatory

    • Owner → Display: Show Field As Mandatory

    • DynamicField_ProcessState → Default value: planning finished, Display: Do not show Field

  • No Defect

    • DynamicField_ProcessState → Default value: no defect, Display: Do not show Field

    • State → Default value: closed unsuccessful, Display: Do not show Field

  • Defect solved

    • Article → Communication Channel: OTRS, Display: Show Field As Mandatory

    • DynamicField_ProcessState → Default value: defect solved, Display: Do not show Field

    • State → Default value: ready for release, Display: Do not show Field

  • Defect not solved

    • Article → Communication Channel: OTRS, Display: Show Field As Mandatory

    • DynamicField_ProcessState → Default value: defect not solved, Display: Do not show Field

Create the following sequence flows:

  • DynamicField_ProcessState = defect reported

    • Name: DynamicField_ProcessManagementActivityStatus

    • Type: String

    • Value: 0

  • DynamicField_ProcessState = defect classified

    • Name: DynamicField_ProcessState

    • Type: String

    • Value: defect classified

  • DynamicField_ProcessState = planning finished

    • Name: DynamicField_ProcessState

    • Type: String

    • Value: planning finished

  • DynamicField_ProcessState = defect solved

    • Name: DynamicField_ProcessState

    • Type: String

    • Value: defect solved

  • DynamicField_ProcessState = defect not solved

    • Name: DynamicField_ProcessState

    • Type: String

    • Value: defect not solved

  • DynamicField_ProcessState = no defect

    • Name: DynamicField_ProcessState

    • Type: String

    • Value: no defect

  • DynamicField_ProcessManagementActivityStatus = 0 (successful)

    • Name: DynamicField_ProcessManagementActivityStatus

    • Type: String

    • Value: 0

Create the following sequence flow actions:

  • Set ticket title “Defect reported”

    • Module: TicketTitleSet

    Click on the Save then the Configure button and add the following parameters:

    • Key: Title, value: Defect reported

  • Set linked CI in operational state

    • Module: ITSMConfigItemDataPush

    Click on the Save then the Configure button and add the following parameters:

    • Main search parameters:

      • Class: Software

      • Incident State: Operational

      • Link Type: Relevant to

    • Additional configuration items matching conditions:

      • Key: Limit, value: 1

    • Linked configuration items attributes to be updated:

      • Key: IncidentStateID, value: 3

Create the following user task activities:

  • Report Software Defect

    Assign the user task activity dialog Report new software defect.

  • Classification

    Assign the user task activity dialogs Defect classification and No Defect.

  • Planning

    Assign the user task activity dialog Planning of defect handling.

  • Defect Troubleshooting

    Assign the user task activity dialogs Defect solved and Defect not solved.

  • Process complete

Create the following script task activities:

  • Send ticket to queue “Development”

    • Script: TicketQueueSet

    Click on the Save then the Configure button and add the following parameters:

    • Key: Queue, value: Development

    • Key: UserID, value: 1

Create the process path as follows:

Defect Handling Process on Canvas

Defect Handling Process on Canvas

Double click on the DynamicField_ProcessState = defect reported sequence flow and assign the Set ticket title “Defect reported” sequence flow action.

Double click on the DynamicField_ProcessState = defect solved sequence flow and assign the Set linked CI in operational state sequence flow action.

Set the process state to Active and save it.

Scroll to Top