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 vacations days

    • Name: DynamicField_ProcessState
    • Type: String
    • Value: not enough vacations 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 Approved and Approval denied.

  • 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:

  • OTRSServiceManagemet
  • 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
    • Àrticle → 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 item 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.