Copyright © 2015 Clarizen@Work. All rights reserved #ClarizenAtWork15 v www.clarizen.com All Together Now: Connecting ServiceNow and JIRA to Clarizen for a Single PPM Platform
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15 v www.clarizen.com!
All Together Now: Connecting ServiceNow
and JIRA to Clarizen for a Single PPM Platform
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15 v www.clarizen.com!
Featuring:
Ryan McArthur Programmer Analyst
County of Tulare
Sean Woods Program Manager II, PMP
County of Tulare
Angela Bunner Sr. Director of Product, PMP
Clarizen
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15 Copyright © 2015 Clarizen@Work. All rights reserved !#ClarizenAtWork15
Agenda
! The Clarizen Integration Hub
! The Benefits of ServiceNow Integration
! Customer Case Study: County of Tulare
! The Benefits of JIRA Integration
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15 v www.clarizen.com!
Clarizen approach to integrations
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15
PRODUCTIVITY AND EFFICIENCY
Integration replaces manual work, producing reliable and robust solutions through automation
INTERFACE WITH AN EXISTING PROCESS & SYSTEMS Reduce risk in change management
CONNECTING “ISLANDS OF ACTIVITIES”
To provide a single version of the truth
TURNKEY SOLUTION Clarizen Professional Services and Integration Team takes an holistic view of the whole business and system requirements in order to provide a comprehensive solution
Why Integrations
5
APPROACH to INTEGRATIONS
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15 6
Communication
Document
CRM
Ticketing
Authentication
Accounting
Reporting
APPROACH to INTEGRATIONS Connecting Islands of Activity
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15 v www.clarizen.com!
Clarizen Integration Hub
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15
Clarizen Integration Hub – Overview
8
Clarizen Integration Hub
! The integration Hub facilitates the synchronization of objects between 3rd Party systems (SaaS or On-premise) and Clarizen.
! Key components of the integration: • Unified user-experience with our core integrations • System authentication (oAuth, Credentials) • Inter-systems dynamic objects and fields mapping • Events / Triggers creation • Logging, monitoring and notifications
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15
Clarizen Integration Hub Architecture
9
Clarizen Integration Hub
Clarizen Integration Hub(Sync Job)
Clarizen Integration Hub(Web site)
External system
Trigger creation
Store
Sync entity Store data
Sync eventMetadata
Trigger creation
DB
Clarizen
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15 10
Clarizen Integration Hub at work in the Salesforce App
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15 11
Integration Setup Admin Tool
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15 12
Define Mappings
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15 13
Define Trigger Events
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15 14
Track Sync Logs
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15 v www.clarizen.com!
Why integrate with ServiceNow?
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15
Why Integrations?
16
Benefits of a CZ & SN Integration Ecosystem
! Leverage each solution for it’s strengths: • ServiceNow for IT Helpdesk • Clarizen for work planning, execution, and collaboration
! Optimized and streamlined project delivery
! Standardize processes for all projects, in a single PPM tool. ! Complete project lifecycle execution.
! Improve cross-team collaboration, for ex, allow artifacts to be synchronized across the lifecycle.
! Cross tool traceability and reporting with automation.
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15 17
Leverage the Strengths of Each Tool
ServiceNow
IT Service
Field Service
Facilities
HR Service
Clarizen
Project Management
Resource Planning
Issue, Risk, Change Mgmt
Collaboration
Work Execution
Portfolio Reporting
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15 18
ServiceNow Integration Strategy
Service Management Project Execution
Assign Resources
Track Time on tickets
Service Reporting
Requests Inflow Create Project
Plan Work, Collaborate
Execute Project, Track Progress
Project Analytics
Requests that require a project, work collaboration
Time
Progress
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15 v www.clarizen.com!
Tulare County Our use of the API
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15
TCiCT PMO
20
Tulare County – Our use of the API
DIVISION MANAGER
1 PROJECT
MANAGERS
5 SUPPORT STAFF
FUNDING SPEACIALIST & SAS
2
ACTIVE PROJECTS
33 COUNTY
AGENCIES
14 IT ORG
EMPLOYEES
150 IT ORG
BUSINESS UNITS
5
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15
A Brief History
21
Tulare County – Our use of the API
PMO had previously used Sciforma PSNext
Project began in late 2013 to find a better solution
Clarizen was chosen and go live July 1st, 2014
Many factors contributed to the selection of Clarizen
The API was a key factor in the decision making process
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15
Necessity is the Mother of Invention
22
Tulare County – Our use of the API
Lack of project metrics
Non-existent actual effort data
Devoid of work notes
Only the PMO staff would access the software
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15
The Solution is in the middle
23
Tulare County – Our use of the API
Organization is incident/support centric & has a resistance to change
Staff is already using Service-Now and a home grown time management system
“Middleware” interface was the solution utilizing the API’s
All three systems now communicate project data between them nightly
PMO has more project data than ever before
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15
Tulare County – Our use of the API
Before any code was written we evaluated our processes.
24
PROJECTS
TASKS
TIME
Assignments Time &
Updates
Assignments & Time Time
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15 25
Developing our Plan Tulare County — Our use of the API
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15 26
Tulare County – Our use of the API
Valuable Resources
Clarizen’s outstanding documentation and support made it possible.
Documentation • success.clarizen.com à User Manual • clarizen.com à Resources à For Developers
Support • success.clarizen.com à How can we help you
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15 27
Tulare County – Our use of the API
Retrieving information from Clarizen ! SQL does not apply. ! Build a Entity Query object containing object properties
you want to retrieve and the object properties you want to match against.
! Can compare regular fields or reference objects.
! Results are delivered in a queryResults object. • Includes Success, Paging and your results (Entities)
! Result entities are objects. ! Feels sort of like using an IEquatable interface.
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15
Defined what we wanted to be returned to us.
28
Defined our query conditions.
1
2
'Define the list of fields/objects that we want the API to return. Dim QueryFields As New List(Of String) QueryFields.Add("WorkItem.ExternalID") QueryFields.Add("Duration") ' Time Reported QueryFields.Add("Comment") ' Comments included QueryFields.Add("WorkItem.ParentProject.C_ProjectID")
How we approached the Entity Query
Dim QueryConditions As New List(Of com.clarizen.api.Compare) ‘Where time belongs to employee asked for QueryConditions.Add(New com.clarizen.api.Compare With {
.LeftExpression = New com.clarizen.api.FieldExpression With {.FieldName = "Reportedby"}, .Operator = com.clarizen.api.Operator.Equal, .RightExpression = New com.clarizen.api.ConstantExpression With {.Value = TCEmpID.Id}} )
‘and where time is for the date asked for QueryConditions.Add(New com.clarizen.api.Compare With {
.LeftExpression = New com.clarizen.api.FieldExpression With {.FieldName = "ReportedDate"}, .Operator = com.clarizen.api.Operator.Equal, .RightExpression = New com.clarizen.api.ConstantExpression With {.Value = WorkDate}} )
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15
Put our fields and conditions together into an EntityQuery
29
Passed the EntityQuery to Clarizen, retrieving the QueryResult object
3
4
'Put it together as a clarizen EntityQuery Dim query As com.clarizen.api.EntityQuery = New com.clarizen.api.EntityQuery()
With query .TypeName = "Timesheet" .Fields = QueryFields.ToArray .Paging = New com.clarizen.api.Paging With {.PageSize = 100, .PageSizeSpecified = True} .Where = New com.clarizen.api.And With {.Conditions = QueryConditions.ToArray} End With
How we approached the EntityQuery
Dim clz As com.clarizen.api.Clarizen = GetClarizen() Dim qr As com.clarizen.api.QueryResult = clz.Query(query) 'Now that the query has been run, check for success and retrieve the entities inside... If qr.Success Then… (don’t forget about paging) For Each en As com.clarizen.api.GenericEntity In qr.Entities
en is a single time card….
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15 30
'Get all tasks as long as the project is active QueryConditions.Add(New com.clarizen.api.Compare With
{ .LeftExpression = New com.clarizen.api.FieldExpression With {.FieldName = "WorkItem"},
.Operator = com.clarizen.api.Operator.In, .RightExpression = New com.clarizen.api.QueryExpression With { .Query = New com.clarizen.api.EntityQuery With { .TypeName = "Task", .Where = New com.clarizen.api.Compare With { .LeftExpression = New com.clarizen.api.FieldExpression With {.FieldName
= "ParentProject"}, .Operator = com.clarizen.api.Operator.In, .RightExpression = New com.clarizen.api.QueryExpression With { .Query = New com.clarizen.api.EntityQuery With { .TypeName = "Project", .Where = Clarizen.QC_WorkItemState("Active") } } } } } })
How we approached the EntityQuery
Query can be nested for complex queries
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15
Created a generic method we could send updates or create through
31
1Public Function SubmitToClarizen(message() As com.clarizen.api.BaseMessage) As com.clarizen.api.Result()
Dim clz As com.clarizen.api.Clarizen = GetClarizen() Return clz.Execute(message)
End Function
How we approached updating Clarizen: Creating or Updating Clarizen
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15 32
How we approached updating Clarizen: Building the Discussion Post
Built a GenericEntity containing the item to be created 2Dim CloseNotes As New com.clarizen.api.GenericEntity CloseNotes.Id = New com.clarizen.api.EntityId CloseNotes.Id.TypeName = "DiscussionPost" 'Setup the WorkItem that these notes are going to be going into Dim WorkItemID As New com.clarizen.api.EntityId With { .TypeName = "Task", .Value = TimeEntry.ClarizenTaskID } Dim workItemField As New com.clarizen.api.FieldValue With { .FieldName= “Container", .Value = WorkItemID } ‘Setup the Post Body Dim Body As New com.clarizen.api.FieldValue Body.FieldName = "Body" Body.Value = “Post Body Contents… yay, you can use HTML too, how fun is that?” 'Setup the Post Type Dim PostType As New com.clarizen.api.FieldValue PostType.FieldName = "Type" PostType.Value = "StatusUpdate" 'Setup the Post State Dim PostState As New com.clarizen.api.FieldValue PostState.FieldName = "State" PostState.Value = "Active“ 'Populate the fields into the closenote post CloseNotes.Values = New com.clarizen.api.FieldValue() {workItemField, Body, PostType, PostState, Via}
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15 33
How we approached updating Clarizen: Submits the update to Clarizen
Put the GenericEntity into a CreateMessage and submit to Clarizen 3
Dim NewPostMessages As New List(Of com.clarizen.api.CreateMessage) NewPostMessages.Add(New com.clarizen.api.CreateMessage With {
.Entity = BuildDiscussionThread(TimeEntry) })
Dim TimeMessage() As com.clarizen.api.BaseMessage = NewPostMessages.ToArray Dim ClarizenResponse() As com.clarizen.api.Result = SubmitToClarizen(TimeMessage)
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15 34
Tulare County – Our use of the API
Processes pushed to Clarizen ! Create Time Cards ! Update Project Tasks ! Update Resource Assignments ! Create Discussion Threads BaseMessage • Create Message
o Entity to be Created • Update Message
o Reference Entity to be Updated o FieldValues to be updated
HANDLED BY
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15
Tulare County – Our use of the API
35
Task Details
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15
Tulare County – Our use of the API
36
Assign Resources to Task
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15
Tulare County – Our use of the API
37
Timesheet records on Task
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15 v www.clarizen.com!
JIRA Integration Overview
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15 39
JIRA Integration Use Case
Send Project Plan & User Stories
to JIRA
2 Project
Planning
1
R&D Team breaks down Tasks, User
Stories
3
Send subtasks back to Clarizen
project plan
4
Resource assignment, actual efforts, and state
synchronization
5
BI-DIRECTIONAL INTEGRATION
CLARIZEN JIRA
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15 40
JIRA Integration Basics
! Bi-directional or manual sync between Clarizen Work items, and JIRA’s Issues/objects
! Manual vs. Pooling ! Sync Strategy ! Hierarchies Challenges ! Object Mappings ! CloudHub and Integration Infrastructure
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15
CloudHub — IPASS Technology
41
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15
JIRA Slide — Attach to parent from JIRA
42
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15
Multi-level R&D project roadmap view
43
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15
Multi-level R&D project WBS view
44
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15
Custom action to trigger integration
45
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15
JIRA integration options
46
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15
Integrated items in JIRA
47
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15 v www.clarizen.com!
Questions?
Copyright © 2015 Clarizen@Work. All rights reserved !!
#ClarizenAtWork15 Copyright © 2015 Clarizen@Work. All rights reserved !#ClarizenAtWork15
Thank You
Sean Woods [email protected]
Angela Bunner [email protected]
Ryan McArthur