Skip to main content

Update Time Entry Fields

This action updates specified fields on one or more time entries in your Professional Services Automation (PSA) tool. It's typically used after an action like "Time Entry QA" or "Time Entries Triage" to apply suggested changes or corrections.

Why is it useful?

Automating time entry updates ensures data accuracy, helps standardize how time is logged, and can automate corrections based on quality assurance checks or triage rules. This saves manual effort and improves the consistency of your billing and reporting data.

What It Does

  • Modifies fields on existing PSA time entries (Autotask or ConnectWise).
  • Accepts a list of PsaTimeEntry objects to process.
  • Applies changes based on FieldUpdateAudit objects, usually provided by a preceding AI action that analyzed the time entries.
  • Can also apply specific additional updates, such as marking a time entry as non-billable.
  • For ConnectWise, it temporarily disables the automaticEmailContactFlag on the parent ticket during the update process to prevent sending multiple email notifications for each field change on a time entry, then restores the flag to its original state.
  • Logs the updates for visibility in the Event History.

How It Works

1. Input Data

The action receives a list of PsaTimeEntry objects (typically from a "Find Entities" action or passed from a trigger). It also takes a list of fields to update (default_fields_to_update), which are usually the output of an AI analysis action like "Time Entry QA".

2. Field Update Preparation

The action prepares the list of changes to be made:

  • It combines the default_fields_to_update with any specified additional_fields_to_update.
  • If allow_removing_fields is set to False (which is the default), any updates that would result in setting a field to an empty or null value are filtered out and not applied. This prevents accidental data removal if a preceding action doesn't provide a value for a field it intends to update.

3. PSA Interaction

For each PsaTimeEntry object:

  • The action constructs the appropriate payload to update the fields in your specific PSA system (Autotask or ConnectWise).
  • It then makes an API call to your PSA to apply these changes to the time entry.

4. Output Generation

The action generates messages confirming the successful update of each time entry, detailing which fields were changed. This information is available to subsequent actions and is logged in the Event History.

Configuration Fields

When you add the "Update Time Entry Fields" action to a workflow, you'll configure the following:

default_data

The list of PSA time entry objects that this action will process and update. This input is typically provided by a "Find Entities" action or directly from a workflow trigger that involves time entries.

default_fields_to_update

(Optional) A list of field update instructions, usually generated by a preceding AI action like "Time Entry QA". Each instruction specifies the time entry ID, the field to change, and its new value.

allow_removing_fields

(Default: False) Determines if the action is allowed to set fields to an empty or null value.

  • If False (default): Updates that would clear a field's value are ignored. This is a safety measure to prevent accidental data loss if a previous action doesn't provide a value.
  • If True: The action will proceed with updates that set fields to empty/null.

update_additional_fields

(Default: False) Set this to True if you want to configure specific, static field updates using the additional_fields_to_update section below.

additional_fields_to_update

(Optional) This section is enabled when update_additional_fields is True. It allows you to define specific updates to apply to all time entries processed by this action.

  • is_non_billable

    (Autotask only) Set whether the time entry is non-billable. You can choose "True", "False", or "Do not update". (Default: "Do not update") ConnectWise typically handles non-billable status via Work Type or other specific fields, which would be updated via default_fields_to_update if triaged by an AI action.

Output Fields

This action makes the following information available to subsequent actions in the workflow:

default_messages_for_dashboard

A list of messages suitable for display in the Neo Dashboard Event History. These messages confirm the update of each time entry and detail the changes made.

default_messages_for_msp

A list of messages intended for internal MSP use. These messages also confirm the updates and can be used in subsequent actions like "Add Ticket Note".

default_messages_for_end_client

This field is typically empty for this action, as direct end-client notification about time entry updates is usually not required or handled differently.

credits_consumed

The number of NeoAgent credits consumed by this action. Updating time entry fields does not consume any credits (cost: 0 credits).

Use Cases

1. Correct Time Entry after Automated QA

  • Trigger: Time Entry Created.
  • Action 1: Time Entry QA - Analyzes the new time entry based on defined criteria (e.g., checks if notes are detailed, if work type matches description).
  • Action 2: Update Time Entry Fields - Takes the default_fields_to_update output from "Time Entry QA" and applies any corrections, such as changing the work type, billable flag, or adding missing information to notes (if notes are a modifiable field on the time entry itself, otherwise an "Add Ticket Note" might be used).

2. Standardize Non-Billable Time Entries

  • Trigger: Time Entry Created.
  • Filter: Time entry's associated ticket has a title containing "Internal Meeting" OR time entry notes contain "Internal Training".
  • Action 1: Update Time Entry Fields -
    • Set update_additional_fields to True.
    • In additional_fields_to_update, set is_non_billable to "True" (for Autotask).
    • For ConnectWise, if a specific Work Type designates non-billable internal time, a preceding "Time Entries Triage" action would set this Work Type, and "Update Time Entry Fields" would apply it via default_fields_to_update.

Best Practices

  • Preceding Analysis: Always use this action after an analysis action like "Time Entry QA" or "Time Entries Triage" if you need to make dynamic changes based on the content or context of the time entries.
  • allow_removing_fields Consideration: Be cautious when setting allow_removing_fields to True. Ensure that any preceding actions that provide default_fields_to_update are correctly configured to either provide a value or intentionally clear a field. If False (default), ensure preceding actions always supply a valid value if they intend for a field to be changed.
  • ConnectWise Notifications: For ConnectWise users, be aware that this action temporarily modifies the automaticEmailContactFlag on the parent ticket to prevent excessive notifications. This flag is restored after all time entries for that ticket are processed by this action instance.
  • Review Event History: Check the Event History to monitor successful updates and troubleshoot any issues with field changes.
  • Specificity: If you only need to update a single, static field (like always marking certain time entries as non-billable based on a filter), the additional_fields_to_update can be efficient. For more complex, conditional updates, rely on the output from AI triage/QA actions.