Multiple Approval Steps

Hello Everyone.

I have been working on setting up the approval system to run through a
series of approvals. I have gotten the approvals to work, but it
sends all 3 of my approvals at once. I want to have them depend on
the prior approval. Do I need to create seperate approval q’s to make
this happen?

I am trying to create an approval structure that is dependent on a
prior approval like this:

  1. Team lead should get email when ticket is created.
  2. Team Lead approves ticket.
  3. New approval is created for manager - and manager is notified for approval
  4. Manager approves
  5. CAB gets approval notification
  6. CAB approves and the ticket is then sent to work queue.

I have the following template in my incoming Q.

===Create-Ticket: changeApprovalTL
Depended-On-By: TOP
Queue: ___Approvals
Type: approval
Owner: dstl
Content: Someone has requested a change. Please review and approve to
send for management approval.
ENDOFCONTENT

===Create-Ticket: changeApprovalMG
Depended-On-By: TOP
Depends-On: changeApprovalTL
Queue: ___Approvals
Type: approval
Owner: dsmgr
Content: Someone has requested a change. Please review and approve to
send for CAB approval.
ENDOFCONTENT

===Create-Ticket: changeApprovalCAB
Depended-On-By: TOP
Depends-On: changeApprovalMG
Queue: ___Approvals
Type: approval
Owner: cab
Content: Change Request is ready for CAB approval.
ENDOFCONTENT

Can someone help me understand how I need to setup RT to make this
happen with the least amount of steps?

Thanks

Matt

Good Morning,

Did you ever manage to figure this out? YEARS later and I am just discovering this software and now trying to learn how to configure it to fit my needs/requirements.

I believe I have solved this but wondered if you had any luck/tried anything else etc. since.

Thanks,
Ryan

We use two stage approvals for our change management (team line manager approval and then change manager approval) but we’ve had to tweak things a bit more than most because our change folk wanted more than just approve or reject for the approval tickets - they also wanted a “rework requested” option that would send change ticket back (in their own custom lifecycle) to a stage where they could be revised and resubmitted for new approvals.

That works but its a bit awkward to implement, requiringly locally tweaked versions of some of the RT code and scrips to manage the workflow. We did document the original version on our team blog though.

In case it helps, whilst the Perl template that creates our two stage approval tickets is a bit of a complex monster that isn’t safe for public consumption, the bit that generates the two approvals itself looks like this. You can probably guess what some of the variables are but the important ones are $template which is what the template is going to ouput to RT,$teamManager which is the group for the line manager(s), $due is the change approval due by date, and $requestors is the person putting in the change. $ticketId and $ticketSubject are pretty self explanatory and the rest are just stuff to do with our whacky change process. :slight_smile:

            $template .= <<"EOT";
Subject: Manager Approval for $ticketId - $ticketSubject
Depended-On-By: TOP
Queue: ___Approvals
AdminCcGroup: $teamManager
Requestors: $requestors
Type: approval
Content-Type: text/plain
Due: $due
Content: This change request ticket has been forwarded to you for Approval:

Request ticket number: $ticketId

Change Type:           $changeType

Change Starts:         $starts

Change Ends:           $ends

Subject:               $ticketSubject

Description:           $changeDesc

Requestor:             $requestors

Owner:                 $owner

EOT
            $cabTemplate = <<"EOT";
Subject: CAB Approval for $ticketId - $ticketSubject
Depended-On-By: TOP
Depends-On: change-approval
Queue: ___Approvals
AdminCcGroup: Change Managers
Requestors: $requestors
Type: approval
Content-Type: text/plain
Due: $due
Content: A request for a change has been approved by a team manager.  Please
review the change and either approve or refer it to CAB as appropriate.

Request ticket number: $ticketId

Change Type:           $changeType

Change Starts:         $starts

Change Ends:           $ends

Subject:               $ticketSubject

Description:           $changeDesc

Requestor:             $requestors

Owner:                 $owner

EOT

Hope that of interest/use!