Enabled when you grant the Time Entries write permission on your PSA integration (the workflow’s Integrations tab) — the settings below live on that permission group. Agents only call this tool when there’s customer-relevant work to report; the always-on internal Log Time Estimate helper handles the saved-time analytics on every run that takes a substantive action, skipping no-action exits. See Log Time Estimate.
What It Does
When enabled, the agent can:- Add time entries to tickets
- Set duration and billable status
- Include detailed notes about work performed
- Communicate resolution to end clients (time entries are often client-visible)
Whose time entry is it? An entry an automation creates is recorded against Neo’s own PSA resource, so it doesn’t touch anyone’s timesheet. An entry a technician asks a chat agent for is recorded against that technician — so “log 20 minutes on this ticket” from Teams counts toward their utilization. Automatic on every PSA, as long as the technician is mapped to their Microsoft account.
Autotask resource/role handling. Autotask only accepts a time entry when the resource is actually associated with the role in its ResourceRoles — and a resource’s default service-desk role (used for ticket assignment) is sometimes not one of them. When that happens, Add Time Entry automatically looks up the resource’s valid roles and records the time entry under one of them (preferring the ticket’s assigned role, then the resource’s default role) instead of failing the run. If the resource has no usable role at all, the agent leaves an internal note so a technician can fix the role mapping in Autotask.
Autotask: entries wait in Approve & Post. Autotask never auto-posts time entries created through its API — Neo’s entries (like any integration’s) sit in Approve & Post → Labor until posted there, even on a contract set to post immediately. A bulk select-all in that view clears the queue in one click. Details: Time entries stay Not Posted.
Sending more than one customer message in a run. Some MSPs deliver every customer message as a time entry (one time entry per communication — common on Autotask, where a workflow rule emails the contact when a UDF flips). When a single run genuinely needs to send two customer messages — for example an intake or clarification message, then a dispatch acknowledgement after a short idle wait — the agent can create a second customer-facing entry for the second message. What stays blocked is stacking log-only entries (no customer message) to “correct” or annotate a prior one, and an unusually high number of customer messages in one run — both are noise the guard exists to stop.
A ticket with no contact gets no customer message. The customer message on a time entry needs somebody to deliver it to. When the ticket has no contact, the agent leaves the message off the entry and the run result says the customer received nothing — the same answer Add Client-Facing Ticket Note already gives, so the agent cannot route around it by switching between the two. The time entry is still logged, and the customer-visible summary label still describes the work.A ticket one of your own engineers raised usually has no contact on it. Those runs now record their outcome on an internal note and in the dashboard summary instead of writing to a customer-visible field nobody is attached to.
The internal note on an entry follows your internal-notes permission group. Set Ticket Notes (Internal) (Actions (Internal Notes) on HaloPSA, Work Notes on ServiceNow and Syncro) to Read-only or Disabled, and the agent leaves the internal note off the entry. The time entry is still logged, and the run result says the note was not written. Only those two values suppress it. The group that counts is the one on the PSA the ticket came from.Separate note fields exist on ConnectWise and Autotask only. On HaloPSA, ServiceNow and Syncro a time entry has one note field and it is customer-visible, so put technician-only content in a dedicated internal note on those PSAs.
HaloPSA Outcomes. A Halo time entry is posted under an Outcome. If you allow more than one on the Time Entries permission group and pick no specific one, Neo takes the first in your list — but it skips Halo’s built-in Journey steps (Start Journey, Arrive On Site, Leave Site, End Journey). Halo rejects those on any ticket with no site visit open, so they can never carry a time entry. If your allowed list holds nothing else, Neo sends the generic Time Entry Outcome instead, which is what it already sends when no Outcome is configured at all.
Start and end clock times. On PSAs that store a real start and end (Autotask, ConnectWise, Syncro), the entry starts when the agent began working the ticket, and ends at that start plus the logged duration. The start is never earlier than the ticket’s own creation time, so an entry created moments after a ticket opens cannot begin before the ticket existed. Halo and ServiceNow record only the duration, so start and end do not apply to them.The start is not rounded to a clock boundary. To bill in fixed increments, tell the agent the increment you want in your custom instructions — for example “always log time in multiples of 15 minutes” — and it will choose the duration accordingly. Custom instructions control the duration, not the start time.
Closed tickets. A PSA won’t accept a time entry on a completed/closed ticket, so the agent always logs time before it closes a ticket. If a ticket does end up closed before the entry lands, Neo does not silently drop it: it reports that no time entry was recorded and does not count the failed attempt against the run’s entry budget, so the agent can reopen the ticket and add the required entry — or, if the ticket can’t be reopened, leave an internal note so a technician can add the entry manually.
How to Use
- Enable the tool in your workflow
- Configure approval requirements
- Provide custom instructions on time amounts and message format
