One way of creating approval workflows with OTRS

Approval workflows can be created in different ways on OTRS.

There is a simple way to do that using ITSMIncidentProblemManagement.

With ITSMIncidentProblemManagement package, you get a Decision link on ticket menu. Obviously some configurations have to be done in order to this link be shown only for some users like a department manager (we will call this role decision makers now on). This also can be made in different ways.

I’d like to show a way to create those workflows. I made it this days and see to be efficient.

The concept

We have a group called Service Desk which watchs a queue called “ServiceDesk”. This team receives and process all tickets on the system and try to solve them. They also send some tickets to approval when it’s needed.

So we have to create a queue for each decision group. We may have decision makers on IT and decision makers on HR department for example.

We have those queues on the system:

  • ServiceDesk
  • Ask Approval
    • IT Decision Makers
    • HR Decision Makers
  • Infraestructure specialist
  • Applications specialist

When the ServiceDesk identifies a request which needs approval, they send it to the respective decision maker group.

The Decision Maker approves or not the ticket and he or she move it again to the service desk queue.

How to show Decision link only for decision makers?

Decision Makers will be registered on 2 groups: decisionit and decisionhr

Go to the SysConfig and access Ticket -> Frontend::Agent::Ticket::MenuModule

Find Ticket::Frontend::MenuModule###420-Decision and add a key called “Group” with this content: “rw:decisionit;rw:decisionhr”.

And it’s done!

Making it better

To make the decision maker’s life easier, I created a module (and a package) that moves the ticket to a “next defined queue”, in the same screen where the approval is done. In our example, the ticket will be moved back to the ServiceDesk queue.

You can download this package here.

After it’s installation, you may configure it on Sysconfig -> Ticket -> Frontend::Agent::Ticket::ViewDecisionMove

Other ways

I think OTRS is a very flexible (and not high documented) tool. So, if you know another way to make decisions workflows, please share with us 🙂

13 thoughts on “One way of creating approval workflows with OTRS

  1. Geisom

    Blza Richieri? Gostaria de uma ajuda sua…
    Estou instalando o OTRS na empresa e tenho a seguinte situação…
    Temos 2 unidades com técnicos em ambas as unidades, então cadastrei filas de atendimento separadas (Unidade 1 – hardware, Unidade 2 – hardware, etc…).
    Fiz o OTRS autenticar pelo AD (espelhado em ambas as unidades) e uso um atributo no AD para especificar de qual unidade o usuario é (ID. do cliente) pois não encontrei como fazer essa classificação no OTRS através de um grupo do AD.
    Como cada fila é presa a um grupo de atendimento, tive que criar filas para cada uma das unidades.
    Gostaria de saber se tem alguma forma de especificar em qual fila o usuario pode abrir chamado automaticamente, sem ter que entrar em um por um e linkar o usuario a um grupo específico.
    Não sei se me fiz entender, mas se puder me dar uma luz ja que voce tem mais experiencia com o OTRS, agradeço muito…

    Reply
    1. Geisom

      Opa, conseguimos resolver, entao fica a dica pra quem precisar…

      Filtragem de queues através de ACLs utilizando um atributo no AD (mapeado anteriormente como campo empresa durante a sincronização AD->OTRS):
      Queues do Suporte AAA para a unidade AAA e AAB para a unidade AAB

      $Self->{TicketAcl}->{‘ACL-Empresa-AAA’} = {
      StopAfterMatch => 1,
      Properties => {
      CustomerUser => {
      UserCustomerID => [‘AAA’]
      },
      },
      Possible => {
      Ticket => {
      Queue => [
      ‘[RegExp]^Suporte AAA::Hardware::’,
      ‘[RegExp]^Suporte AAA::Software::’,
      ‘[RegExp]^Suporte AAA::Telecom::’,
      ‘[RegExp]^Suporte AAA::Tickets’
      ]
      },
      },
      };
      $Self->{TicketAcl}->{‘ACL-Empresa-AAB’} = {
      StopAfterMatch => 1,
      Properties => {
      CustomerUser => {
      UserCustomerID => [‘AAB’],
      },
      },
      Possible => {
      Ticket => {
      Queue => [
      ‘[RegExp]^Suporte AAB::Hardware::’,
      ‘[RegExp]^Suporte AAB::Software::’,
      ‘[RegExp]^Suporte AAB::Telecom::’,
      ‘[RegExp]^Suporte AAB::Tickets’
      ]
      },
      },
      };

      Falow!!

      Reply
    2. Vitor

      Richieri, boa tarde!

      Estamos quase decididos em implantar o OTRS aqui ma empresa, já estamos com uma instalação de testes e estamos gostando muito.

      Gostaria de saber se existe uma forma de atender a necessidade abaixo:

      O usuário abriu um chamado, esse chamado caiu em uma fila qualquer.
      Após o primeiro atendimento, é redirecionada para a fila correta. Após estar nessa fila correta, se ele não for atendido no tempo combinado (SLA), disparar um evento ou e-mail para um responsável.

      Existe essa possibilidade?

      Obrigado

      Reply
        1. Eloi

          Otavio,

          As notificações não est]ao sendo feitas após configurar nas filas. Existe alguma configuração que precisa ser feita? Lembrando que outras notificações estão funcionando corretamente.

          Reply
  2. nicollas

    Richieri,

    estou com o OTRS aqui na empresa onde trabalho, e tenho uma duvida sobre se é possivel fazer.
    O que acontece é o seguinte, eu tenho as filas e os tipos de chamados, é possivel eu ligar esses dois? por exemplo, eu tenho uma fila Suporte, uma sistemas e outra de emprestimo de equipamentos, e eu queria que assim que eu escolher essa fila, no caso se eu escolher suporte, ele me trazer apenas as opções que se encaixem no Suporte (config de soft, instalaçao de maquina, hardware, etc), é possivel fazer isso? teria algum lugar onde eu possa ter uma base pra fazer tal coisa?

    Reply
  3. rodrigo

    Richieri , instalei a versão 3.17 e queria saber se ela ja vem com o modulo OTRS ITSM CMDB , se não como faço a instalação estou procurando o modulo e não encontro

    Reply
  4. Gustavo

    Richieri, tudo bem?

    Esse seu pacote do DescisionMove é exatamente o que preciso para deixar minha implantação redonda, porém ele não roda na framework 3.2, você chegou a atualizar este pacote?

    Obrigado, gostei muito do seu artigo e até log.

    Reply
  5. danielcamppos

    Richieri, Boa tarde. Parabéns pelos artigos. Vê se pode me ajudar. Estou com o seguinte problema aqui na empresa. Eles querem que o SLA de resolução escale (mande email) quando atingir 50%, 80% e 100% da solução. Os 50 e 100% até consegui fazer, agora os 80% não sei como. Pode me ajudar? Obrigado.

    Reply
    1. richieri Post author

      Prezado José, não tem 🙂 Mas acredito que nas versões mais recentes do OTRS, seja possível fazer a mesma atividade utilizando Atendentes Genéricos que monitoram a alteração do campo ITSMDecisionResult e, quando for “Pending Approval” ou algo assim, move automaticamente o chamado para uma Fila. Utilizando o gerenciador de processos, dá pra fazer coisas até mais elaboradas hoje em dia 🙂

      Reply

Leave a Reply