The Exalate team will be on holiday for the coming days - returning Jan 4
Enjoy & stay safe

This documentation will show you how to sync over tempo worklogs from Jira cloud to Service now.


  1. Create a connection if you don't already have one
    1. Go to the Exalate App → Connections → Initiate connection
  2. If you already have a connection click on Edit connection
  3. Apply these changes

Jira Cloud side


  • Add this to your outgoing sync.


outgoing sync
TempoWorkLogSync.send(
	"OM72xP3i1IxEgUT4YR1dmAHNRXcOEw",  // replace OM72xP3i1IxEgUT4YR1dmAHNRXcOEw with the newly generated access token
	replica, 
	issue, 
	httpClient, 
	nodeHelper
) 


  • Make sure you change the access token.

More info about Tempo worklogs sync: https://docs.exalate.com/docs/syncing-tempo-worklogs-in-jira-cloud

Generate an access token

Screen Recording 2023-08-04 at 16.35.56.mov


Done on your Jira side

Servicenow side

add this code to your Incoming sync change the values of your customFields

Incoming sync
// By default tempo sends over the time in seconds.
// Iterates over logged time
def totalTimeInSeconds = 0
for(int i = 0; i < replica.workLogs.size(); i++){
    totalTimeInSeconds += replica.workLogs[i].timeSpent
}

// This function makes the time readable.
def convertToReadableTime(long seconds){
    def hour = (int)Math.floor(seconds / 3600)
    seconds %= 3600
    def minutes = (int)Math.floor(seconds / 60)
    if(hour == 0){
        return "${minutes.toString()}m"
    }
    return "${hour.toString()}h:${minutes.toString()}m"
}
// Add the value to your custom field, by calling the "convertToReadableTime" function with the "totalTimeInSeconds" as parameter.
workItem.customFields."Custom field".value = convertToReadableTime(totalTimeInSeconds)



Full video how to do it:

Questions