Moving from Tempo
Checked end to end on 3 November 2026 with "Timesheets by Tempo - Jira Time Tracking" (Tempo on Forge, Cloud) on a test site: real worklogs logged in Tempo by two people, exported from Tempo, imported here. Every row matched its own Jira worklog. Tempo changes its screens often, so the menu names below may move.
What stays in Jira
If you used Tempo, your worklogs are already in Jira. Tempo writes each one as a Jira worklog with the same work item, date, start time and duration. In Jira the author is the Tempo app ("Timesheets by Tempo - Jira Time Tracking") and the comment is "time-tracking". The real author, the description, the account and the work attributes stay in Tempo. Source: https://help.tempo.io/kb/latest/why-do-we-see-timesheets-as-the-worklog-author.
What the import does
The import reads Tempo's raw data CSV, matches each row to a Jira worklog by work item, date, duration, author and start time, and stores the rest next to the matched worklog:
- the billable flag (any billable time counts as billable),
- the account name, in a text attribute you choose or one the import creates,
- work attributes such as "Work type", each in a text attribute you choose or one the import creates (up to five),
- the real author, the description, the raw billable figure and the Tempo worklog ID, kept in the app's storage.
The import never changes anything in Jira. No worklog is created, edited or deleted. No timesheet record is written.
Migrated hours count for the person who logged them
In Jira, Tempo's worklogs keep the Tempo app as their author. Saguaro Hours uses the real author the import stored instead, everywhere it adds hours up per person:
- Reports: grouping and filtering by user and by team, the totals, and the Summary CSV, Detail CSV and Excel exports.
- Approvals: each member's hours, and the hours recorded when a timesheet is approved.
- The dashboard gadget: each member's hours and the team total.
- My timesheet: the week's totals, the hours recorded when you submit, and the reminder about an earlier period.
Hours that include migrated worklogs carry a small "from Tempo" marker, so it is clear where they came from. The exports add a "Source" column to the detail ("from Tempo" on migrated rows) and an "Hours from Tempo" column to the summary, only when the report has migrated worklogs.
Checked on 3 November 2026 on the test site: a report grouped by user for 20 October to 3 November gave 16.83 h for the first person and 4 h for the second, 20.83 h in total, the same as Tempo's Logged Time report for that range.
A worklog counts for its imported author only while Jira shows an app account as its author (the Tempo app). A worklog a person wrote in Jira always counts for that person.
What still shows the Tempo app
- Jira itself. The Work log tab, worklogAuthor searches, Jira's own reports and other apps still show the Tempo app, because the app never edits Jira worklogs. Re-authoring them as the real person is not built, and it needs a riskier permission that this app does not request.
- Editing. In My timesheet, migrated worklogs are read-only rows marked "from Tempo"; they count in your totals but cannot be typed over. The issue panel lists only worklogs you authored in Jira, so it does not show them.
- Worklogs not in your export. Anything logged in Tempo after the export, or left out of it, stays under the Tempo app until you import a newer export.
- Changes after a timesheet is locked. When a submitted or approved timesheet changes in Jira, the app flags it for the approver. A change to a migrated worklog is not flagged on the real person's timesheet.
- Speed. A report filtered to some people, and the approvals and gadget hours, also read every Tempo worklog in the imported days they cover and keep the ones of the people asked for. Over long migrated history this takes longer than the same view over newer weeks. Views of weeks after the imported days read nothing extra.
Steps
1. Make sure your export includes everyone
Tempo only exports the worklogs you may view in Tempo. A Jira administrator is not automatically allowed to see other people's worklogs, and the export does not warn about rows it leaves out. Before exporting, open Tempo, Settings, Permission Roles, Add permission role, tick View Worklogs, add yourself under Add users, keep Role access on All resources, and save. Then compare the report's people with the people you expect.
2. Export the raw data from Tempo
- In Jira, open Tempo from the Apps menu, then Reports.
- Under Logged Time, choose Create Report and then Create. The grouping does not matter for the export.
- Set the date range at the top left to cover all the history you want to move, and press Apply.
- Press Export at the top right and choose Download Raw Data.
- In "Select export option", press the CSV icon (the third icon). "Include Approval Status" can be on or off. Tempo saves a file named like
Report_01_Oct_26_30_Nov_26_Raw_Data_Logged_Time.csv.
The XLS and XLSX icons give Excel files. This app does not read those; it says so if you pick one.
The CSV Tempo gives is UTF-8 with commas. "Work date" holds the date and the start time ("2026-10-20 10:00"). Each Tempo work attribute is its own column, named after the attribute. A worklog logged without a description is exported with Tempo's text "Working on work item KEY-1".
3. Import it here
- In Jira, open Settings, Apps, Saguaro Hours, and find "Import from Tempo".
- Choose the CSV file. The page says how many rows and columns it found.
- Check the column mapping. The page fills it in from Tempo's column names and shows the first value of each. On an English Tempo export no change was needed. Tempo renames columns over time and by Jira language (https://www.tempo.io/product-news/changes-to-logged-time-report-raw-data-export), so check it anyway. Set the date order if the page asks.
- Look at the five-row preview.
- Press "Check against Jira". This is a dry run and writes nothing. It shows matched, ambiguous, unmatched and unreadable rows, and how many matched worklogs already have data. "Download the full result (CSV)" lists every row with the Jira worklog it matched.
- Choose where Account goes ("Store Account in"). Under "Work attributes", the page suggests the columns that are not standard Tempo columns, such as "Work type". For each, choose an existing text attribute or "Create a new text attribute". "Add a column" adds one the page did not suggest; "Remove" drops one.
- Press "Import N worklogs". Progress is shown. Pause, Resume and Discard are available. If you close the tab the run stops. Resume continues from where it was, in any browser, without the file.
When it finishes, the page says how many worklogs were written, where Account and each work attribute went, and lists any worklog it left alone and why.
How rows are matched
- Matching uses work item, date and duration, then author. The Tempo app as author fits any row. A real person who is not the Tempo app never does.
- When two worklogs on the same work item, day and duration are left (for example two people logging the same hours), the start time separates them, because Tempo exports it and keeps it in Jira. If the times do not line up one to one, nothing is guessed.
- Hours are compared with a tolerance based on the column's decimals. Logged Seconds is used when present, and it is exact.
- Rows that still fit several worklogs are ambiguous and are not imported. The result CSV lists the candidate worklog IDs. There is no way to resolve them by hand in the app yet.
- Days inside a submitted or approved period are left alone, even with overwrite on. Reopen the period and run again.
- Running the same file twice changes nothing new: the second run reports every row as already having data. With "Overwrite worklogs that already have data" on, it stores the same values again and keeps other attributes.
Who can see imported data
The real author's name shows wherever hours are counted per person (reports, approvals, the gadget, My timesheet), to anyone who can see that worklog in Jira. That is the same as for a worklog written in Jira, whose author anyone who can see it already sees. In Tempo, who logged what may have been limited by Tempo's permissions; after the import it is not.
The imported description, the raw billable figure and the Tempo worklog ID are hidden from the normal screens. Only the admin data export includes them. Account and work attribute values are ordinary attribute values and show wherever attributes show.
When a person's Atlassian account is closed, the stored author on their migrated worklogs is replaced by "Former user", as for everything else the app stores about them. The hours stay.
Limits
- Only a Jira administrator can import. 100 MB file cap. CSV only.
- Account and work attributes go to text attributes, not list attributes.
- At most five work attribute columns per import.
- A stopped upload cannot continue after a reload. Discard and check again.
- Not yet checked: exports in other Jira languages, people in different time zones from each other, very large exports, and whether Jira worklogs stay unchanged after Tempo is uninstalled.