Inbound Email - Problem and Incidents

So I am wondering if we can design this as a parse, and if so what is the process.

So we have a client who sends us a form email for onboarding.

I am wanting to see if we have a way to create a problem ticket from the request and then process sub parts of the email into Incident tickets to be linked.

For example

Problem ticket – New Onboarding
 Incident – Pull and Provision Hardware
 Incident – ReProvision Desk Phone at Location
 Incident – If Yes for Cell Phone – Call out ticket to allocate Cell Phone
 Incident - If License Info – Allocate Adobe, etc.

Example Email from Customers Platform, to be processed

You have a new POP onboarding assignment for new employee Grace User.  The employee's start date is 11/01/2023. Please begin coordination with the various onboarding departments and vendors as needed to meet the timeframe requirements.



General:
Excel Record ID: 172
Status: Approved
Employee Name: Grace User
Start Date: 11/01/2023
Completion Date - Normal:  10/18/2023
Current Email Address: [email protected]
Current Phone Number: 2679900000
Organization: POP
Job Title: Associate Property Manager 
Rubenstein Manager: Kim User
GENERAL COMMENTS:
Use the same setup that Denise had.


POP - Properties:
POP Email Distribution Lists - Includes Everyone,and POP: ["Everyone","POP"]
RP Operations Properties: ["Chesterbrook"]
Email and Network prefix: Standard Prefix Format
Primary POP Office Address: 955 Chesterbrook Boulevard, Suite 120 Chesterbrook, PA 19087
3rd Party IT Contact: Cordi
PROPERTY COMMENTS Kim will send Denise's laptop to cordi 

Assets:
Computer: Not sure (IT Admin or POP Vendor follow-up required)
Docking Station: Not sure (IT Admin or POP Vendor follow-up required)
Monitor(s): Not sure (IT Admin or POP Vendor follow-up required)
Local Printer: Not sure (IT Admin or POP Vendor follow-up required)
Office Phone: Not sure (IT Admin or POP Vendor follow-up required)
Office Phone Number: 
Mobile Phone: Grace will be using her own cell phone
ASSET COMMENTS: 

Applications and Security:
RPLP Network Access - Not typically for POP employees or contractors:  No
Similar Associate Name: Similar Associate Name: Not provided
MFA Required: Yes
VPN Access: No
Install Date: 
Avid Xchange - Currently managed by Tim User: Yes
Avid Account Settings: Approval
Fund Access (Zee Drive): Yes
MRI Accounting - Currently managed by Tim User: WEB and Windows
Kardin Budgeting: Yes
Building Engines: Yes
Other Applications: ["POP Office 365 (Free) Account","* Adobe Acrobat Pro","Zoom Standard"]

APPLICATION COMMENTS:


Spreadsheet details:  If needed.

NOTE: Replies to this email are sent to RP HR Administrator.

Jonathan,

I can provide some sample script steps once I better understand the goal.

Can you explain what parts of this email would be placed in each of the linked tickets?
Would you also need to parse the email to decide which tickets are needed?
Is that case what data would trigger the creation of each ticket?

Also are you using the ides of a Problem Ticket and linked Incident ticket because of the way those can be linked? I would likely do this as Service Request tickets to stay closer to ITIL guidelines. . Using Email2AT we can link ticket of any type by adding notes to the ticket with links to the other tickets. So These can be Service Request squad still linked.

Alex

I am open to Service Requests, the only reason listed as problem is due to handling like a mini-project and linked objects.

Since the onboarding of the staff member is the primary and with the sub or linked tickets they need to be completed, sometimes by different internal staff and sometimes sent as outsourced objects. So this way to pull it apart.

For Example from this Onboarding
Subticket 1 - Microsoft 365 setup
– Setup User in Microsoft 365, Link them to the correct Property Group, Permissions, License and manager and sharepoint sites

Subticket 2 A/B Decision - Pull Existing Hardware - Laptop or Purchase Laptop to Fill Order
– Pull Exisiting Laptop from Pool and Setup and provision for the user
– Or If Request for new then purcahse laptop from supply house and then follow onboarding steps

Subticket 3 - 3rd Party License
– Allocate Adobe License - Email Required First
– Allocate zeeDrive License - Email Required First

Subticket 4 - Work with ITS to setup GAL and Distro
– Ticket to work with 3rd party vendor and open a ticket with them on providing user info for GAL and Distro list for that M365 Tenant

The info to the left of “:” is the field names from the customers MS Form Data system so that could be used as the match and then pull the data to the right out to each ticket

We have been doing this by hand, trying to automate it

Jonathan,

One more question. Will the four child tickets always be created or do you need to look at data in the original email to control which tickets are created?

If the ticket are conditional what field in your sample should trigger the creation of the Microsoft 365 Setup ticket?

Alex

The 4 tickets will always be created, a few of them have decisions based on the content

For example to use existing hardware to sell them a new one

If they are using a personal cell phone or need one issued, since if need one issued then a ticket needs to be generated to reach out to the carrier to assign a number and device.

For Software, most users get the same package, however sometimes they don’t - example
Adobe Pro vs Adobe Reader

Jonathan,

Since these emails are from an automated source, I like to start by creating a unique hosted email address for the messages rather than using a shared address. The advantage is that you then know that all emails sent to in this box are for the user creation process.

In the MSPI Console use the Hosted Mailboxes tab to create the mailbox:

Complete the fields shown below and save to create a new hosted mailbox:

Complete the fields shown below and save to create a new hosted mailbox:

Use the Edit button to open the new mailbox and create your rule inside the mailbox.

Here is the outline of the ticket creation and linking process.

  1. Form is received as email and triggers process if subject line matches
  2. Parse and save UserName for use in creating ticket names
  3. Create Parent Ticket with description set to the contents of the form
  4. Create Child Ticket #1
    a. Parse ticket #1 details from email body
    b. Create ticket using parsed info as description and include Parent Ticket number in description. (This will be treated as a link by Autotask)
    c. Add note to the Parent Ticket with Child Ticket #1’s Title and Ticket Number
  5. Create Child Ticket #2
    a. Parse ticket #2 detail from email body
    b. Create ticket with parsed info as description and include Parent Ticket number in description. (This will be treated as a link by Autotask)
    c. Add note to the Parent Ticket with Child Ticket #2’s Title and Ticket Number

… Repeat process for an many Child Tickets as needed

Here it is as a rule:

Here are details on each of the script steps. Note these are intended to show you concepts for how to approach doing what you want to do and they are not likely to be the exact the steps needed.

This step uses the after_string helper to parse the user name from the email body and store it in the variable custom.UserName. The “t” flag trips off leading and trailing spaces and the “n” flag stops grabbing text at the end of the current line.

Next. we create the parent ticket with the minimum fields needed. You can of course add and set any ticket field. We use the saved UserName as part of the ticket Title. The entire form is added to the ticket description. The new Parent Ticket is stored in the object variable custom.ParentTicket so we can use the ticket number later.

Now, we parse the form details for the first Child Ticket. Here I am calling it the POP Ticket. We use the between_strings helper. You will have to be careful to select a starting and ending string that will not change from one form to the next. The results are stored in custom.POPDetails.

We create the first Child Ticket and save it in the object named custom.ChildTicket. The title includes the UserName and the name we have given the ticket. The description include the Parent Ticket number and Autotask will automatically make this into a link to that ticket. It also includes the POPDetails we saved earlier.

Finally, we add a note to the Parent Ticket to link it to the Child Ticket we just created. The note description includes the Child Ticket number and that will become a link.

These steps can be repeated as needed to create each child ticket and link it to the parent.

For tickets that are conditional you will want to parse the condition from the form and use it to skip steps if they are not needed. The example below assumes there is a field in the form named “Mobile Phone Required:” and that is will always be “Yes” or “No”.

Once we have the answer stored in the variable custom.MobilePhoneRequired we can use it to run or skip script steps as shown here.

I know this is quite a bit of info. I hope it helps you get started on your rule.

1 Like