Auditing Approvals

Applies to

Resource Management

Your organization may need to audit approval records to demonstrate a compliant approval process (SOX compliance, for example). If that’s the case, you can download a detailed audit log of all changes related to time and expense approvals. 

Unlike reports, which only represent the current approval state for each time entry, the approvals audit log captures every change event (submission, rejection, approval, etc.) and the associated rejection or approval comments, dates and users making the changes. The log is useful in supporting compliance-related processes such as in a SOX audit. 

At the beginning of each month, Resource Management generates a CSV file containing an audit log for the previous month. Prior months can be downloaded at any time.

Downloading Approval Audit Logs

Audit logs screen with download links
 

To access your audit logs:

  1. In Account Settings, scroll down to Approval Workflow and then click Access Audit Logs.
  2. In the new window, choose the month and year for the time and expense entries you wish to audit (the month in which those hours and/or expenses were logged).
  3. The audit log will be processed and, once available, a download link will appear in the list of recent requests. A link to the file will also be sent to the requester’s email.
  4. Select Download to access the audit log file.

The time period applies to the dates for the time entry records, not the dates when they were submitted or approved. Since time and expenses can be approved or rejected much later than the month during which the entries were submitted, audit log files for a given month may differ due to entries being approved after the log was downloaded. When conducting an audit, it is recommended to request and download new audit logs in order to capture the most up-to-date changes.

Understanding Approval Audit Logs

Approval audit logs contain time entry and/or expense records (depending which are being tracked) along with the history of changes to the approval status for those entries. This means the same time or expense entry record will likely have multiple rows in the audit log - one for each time the approval status changed for that entry.

For example, if a user submits a time entry for approval which is then rejected, modified, resubmitted, and then approved, there will be a row for each of those approval state changes (changing from pending to rejected back to pending and finally to approved).

The audit log contains multiple columns that describe the various properties of the time or expense entry as well as the users making changes to the record. Below is a description of what each of the columns in the audit log represent.

Column

Description

action

Shows whether the record was created or updated

approvable_id

The unique identifier for the specific time or expense entry

approvable_date

The date of the time or expense entry

approval_id

The unique identifier for the approval record

approved_at

The time and date when the record was approved

approved_by_email

The email of the user who approved the entry

approved_by_id

The user ID of the user who approved the entry

approved_by_name

The name of the user who approved the entry

client_name

The client for the project for the time or expense entry

comment

The rejection or approval notes provided by the approver (if any)

created_at

The time and date when the entry was originally created

current_user_email

The email of the user who performed the action that generated the current row

current_user_id

The user ID of the user who performed the action that generated the current row

current_user_name

The name of the user who performed the action that generated the current row in the audit log

expense_item_amount

The expense amount

expense_item_category

The category (if any) recorded with the expense entry

expense_item_notes

Notes provided with the expense (if any)

organization_id

The ID of the current organization

phase_name

The phase (if any) for the time or expense entry

project_name

The name of the project for the time or expense entry

status

The approval status at that time

submitted_at

The time and date when the entry was submitted for approval

submitted_by_email

The email for the user who submitted the entry for approval (this can also be the manager submitted time or expenses on behalf of someone else)

submitted_by_id

The user ID for the user who submitted the entry for approval (this can also be the manager submitted time or expenses on behalf of someone else)

submitted_by_name

The name of the user who submitted the entry for approval (this can also be the manager submitted time or expenses on behalf of someone else)

time_entry_category

The category (if any) recorded with the time entry

time_entry_difference

The positive or negative difference between the time entered and the time that was scheduled

time_entry_incurred_hours

The time amount entered

time_entry_notes

Notes provided with the time entry (if any)

time_entry_scheduled_hours

The scheduled hours associated with the time entry (if any)

updated_at

Date and time when the entry was updated

approvable_user_id

The user ID associated with the time or expense entry

approvable_user_name

The name of the user associated with the time or expense entry

approvable_user_email

The email of the user associated with the time or expense entry

approvable_user_employee_number

The employee number of the user associated with the time or expense entry

approvable_user_discipline

The discipline of the user associated with the time or expense entry

approvable_user_role

The role of the user associated with the time or expense entry

assignable_id

The ID of the project for the time or expense entry

parent_id

The ID of the project if the assignment was for a phase