This guest post comes courtesy of Dewayne Lavelle, a Quality Engineer. He administers a diverse set of tools, including a Jira server with over 500 users. His company uses Jira, Confluence and Fisheye for everyday development, planning, scheduling, etc.
When asked why Jira is important to us, our Transportation Technical lead said, “We get a full featured issue and defect tracker that is integrated through all parts of our development life cycle. We use it to track everything including requirements, task breakdowns, schedules and defects. It gives us a consistent interface to all the data we need to successfully develop software.” Jira was the right choice for us.
We investigated how we could develop a synergy between customer service and engineering for the service requests (SRs) customer service and engineering for the service requests (SRs) opened within Siebel. Since our company is extensively using Jira we decided to create a link between Siebel and Jira. This would give us the ability to work on SRs together as a team. Before creating this link, the CSD engineer would have to manually contact an ESD engineer while helping the customer. So, how do we accomplish this synergy? How can we make two systems that are totally different with no knowledge of each other work together? Let’s explore the different pieces of the system and how they are being used.
Email: Using Jira users have the ability to create and edit issues using email. When set up, users can interact with Jira without going into the GUI. This is done by creating a Mail Service Configuration which is explained here. Siebel also has an email interface that can update issues with no human interaction. In Siebel this email feature needs to be set up to send notification emails to your specific mailbox when an SR is created. Since both of these systems use email we used this for the main driver of the system.
Jira Notification Scheme: In Jira notifications are sent out when an action is performed on an issue. These are specific to the Jira project. We used this to our advantage and set up our scripts to parse the Jira notifications.
Script/Parser: We needed a way to parse through the emails to grab specific information like SR number, SR Description, Jira Issue Key, et cetera. We decided to use Python as our language for parsing through the emails. Python has a lot of modules that give us the ability to do just about anything we want. The ones that were most important to us were the modules that read and send emails. Once we set up our main script it was placed on a schedule to run throughout the day. This can also be done when setting up a Cron job or using some other job scheduling system like Jenkins.
CLI: Jira has a Command Line Interface that is very powerful. When SRs came in we needed a way to create new Jira issues in a project and also update them. The CLI makes this possible. You can create issues and edit any field that is present in the project.
Curl: We used Curl to grab information from the Siebel webpage and dump it in a text file.
With all of these components in place we have created a link between the two systems. Now, let’s see how the system flows.
1. The issue below is an example of what a customer creates in our Siebel system. The data is saved in the Siebel System.
2. Siebel sends the issue mail out to a specific mailbox.
3. The Python script runs and scans the mailbox for a specific subject line. When Siebel Mail is found we search the email for an issue URL and fetch the page using Curl. Then, we parse the fetched data for the required fields that will be imported into Jira.
4. The Jira CLI creates an issue with the fetched data.
- Script running example:
- Issue created in Jira:
5. The system sends the issue and its details to the team:
6. Once the system creates the issue it must be assigned to an Engineer. The standard notification email that an issue has been assigned is sent.
7. We parse the email sent from Jira and obtain the Engineer’s name so we can assign the SR in Siebel to him.
8. Engineering clicks the ‘Start Progress’ button on the Jira ticket. The standard notification email from Jira is sent and parsed for the date. The Contact Date field is updated with the current date and time in Siebel.
9. The Jira Email Service is set up and running. This gives us the ability to comment through email, which is good for our external customers.
10. The engineer works on the issue:
- Adds comments
- Adds fixes
- Adds attachments
- Gets feedback from the customer
11.The issue is fixed and closed in Jira.
12. The standard notification email is sent and parsed for the SR number in the Jira ticket. The system then closes the same SR in Siebel. All activity that is present in Jira is added to Siebel including comments from Engineers and the customer, attachments, et cetera.
13. The process is complete and the SR and Jira tickets are closed. The two systems are synchronized with one another and the data that was in Jira is transferred to Siebel.
This work was key to a successful integration of the customer support team and the ESD divisions. because of this success, we were able to move the customer service to collaborate with the engineering teams using Jira.