There’s a third kind: chat agents, which don’t fire on events at all — a person messages them. This page compares the two automatic kinds; if a human initiates the work, you want a chat agent.
The rule of thumb
Default to a workflow when Neo ships a smart action for the job. Smart actions like Ticket Triage, Dispatch Ticket, Suggest Resolution, Escalate Ticket, and Find Ticket to Merge With carry prompting and guardrails Neo has tuned across many MSPs. An agent built to do the same job inherits none of that — you’d be teaching it the same task from scratch through custom instructions, and quality typically drops. Use an agent for everything else — jobs where no smart action exists, or where runtime tool-picking is the actual value (open-ended L1 troubleshooting, multi-step Microsoft 365 ops, documentation, QA audits, scheduled cross-system reports).Decision table
Why workflows win for the first five
Neo’s smart actions are tuned across every MSP using Neo — every prompt improvement Neo ships to Ticket Triage benefits every MSP running Ticket Triage. They’re also:- Cheaper — a single deterministic call per ticket, not an LLM choosing between tools.
- More predictable — same input, same output structure, every time.
- Easier to debug — a linear trace, not a branching agent transcript.
custom_instructions, runs without Neo’s guardrails, and tends to either over-explain or under-decide.
Why agents win for everything else
For open-ended jobs, the agent’s value is picking tools at runtime:- L1 troubleshooting — read the ticket, check RMM device state, search past tickets, optionally run a script, reply to the user.
- Microsoft 365 operations — user offboarding, license reconciliation, mailbox permission audits, environment documentation.
- Documentation — write SOPs into IT Glue or Hudu, audit existing records for staleness.
- QA and audits — review past tickets or time entries against a policy.
- Scheduled reports — pull data across PSA, M365, and RMM, summarize for the team.
