Changelog¶
All updates to ZAI in production are documented here.
Status: Shipped = In production | Dev = In development, awaiting testing
0.4.1 (29/04/2026) Dev¶
New Features¶
- New Dashboards: There is now 4 new dashboard views; Triaged Stats, Workflow Stats, Automation Stats and Time saved.
- Stat Dashboards Overview: Each board will allow you to see different date ranges; daily, weekly, quarterly, yearly and selectable. They all show percentages, showing the change in data. You can also compare pervious dates to show changes as well. There is an option to download a CSV of the data and you can also filter the graphs by pods and clients.
- Time Saved: Inside of the time saved dashboard you will be able to see the difference between how long it would have taken a user to complete a task compared to zai completing the task.
Improvements¶
- Navigation Updates: The main navigation sidebar now has a more sleek design and improvements to the UI.
- Data Clean Up: To create easier navigation in ConnectWise, all leaver employees have been removed.
- Dev Ops Improvements To Release Process: This will minmise downtime when releasing new updates.
Bug Fixes¶
- Security Updates: To improve the security of Zai, more application security measures have been put in place.
0.4.0 (15/04/2026) Shipped¶
New Features¶
- Autotask Actions Support: ZAI Resourcer now supports executing actions against Autotask in addition to ConnectWise. New Autotask UI endpoint, expanded integration action map, AI Suggestions and Canvas logos, and updated ZAIDC connector (v1.8.3).
- Windows Agent via IoT Hub: Switched the Windows Agent / ScreenConnect integration from Azure Service Bus to Azure IoT Hub for two-way device communication, improving reliability and scalability of remote command execution.
- Leaderboard Settings & Exclusions: New admin configuration page for the gamification leaderboard. Admins can flag users to exclude from the leaderboard count (#209), and manage leaderboard-wide settings from a dedicated page accessible via an admin-only link on the leaderboard.
- Quick Impersonation: Admins can now impersonate another user directly from the user menu in the header, making it much faster to reproduce permission/visibility issues without leaving the page.
- Manual Point Awarding (Admin): The leaderboard admin page now supports manually awarding or deducting gamification points with a reason. All manually-awarded points are listed alongside the user, reason and details for full audit history.
- Partially Completed Workflow Status: Workflows that succeed overall but have one or more failed steps now report a new "Partially Completed" status rather than being marked Success or Failed, giving a more accurate picture of execution health.
-
Workflow Designer Modular Refactor: The workflow designer canvas has been broken out from a single ~5000 line view into focused JS/CSS modules (
arrows.js,collaboration.js,conditions.js,context-menu.js,core.js,drag.js,keyboard.js,layout.js,save-validate.js,steps.js,test-mode.js,variables.js,zoom.js,ai-suggestions.js, plusworkflow-designer.css). Behaviour is unchanged but the codebase is much easier to maintain and extend. -
Roadmap Triage System: New issues submitted via the roadmap or CloudRadial webhook now go through an admin triage step before appearing publicly. Issues get a
needs-triagelabel and are added to the GitHub Project board with Triage status. Admins are notified via bell icon, Teams chat, and email. Docs- Triage Filter: Admin-only amber filter pill on the roadmap with count badge. Triage items render as a separate amber column in Mission Control and pulsing amber stars in Nebula mode.
- Triage Panel: Admins can assign issues to the correct repository (cross-repo transfer), set priority (P0/P1/P2), set size (XS-XL), approve, or reject with a reason. All actions sync to ConnectWise tickets.
- GitHub Projects V2 Integration: Issues are automatically added to the ZAI Platform Project board. Status, priority, and size fields are set via GraphQL.
-
Roadmap Drag-Drop & Context Menu: Admin users can now drag cards between Mission Control columns to change issue status. Right-click context menus provide quick access to admin actions in both Nebula and Mission Control modes.
- Drag-Drop: Drag cards between Triage, Planned, In Progress, and Shipped columns. Ghost preview follows cursor with drop target highlighting. Unassigned issues prompt for an assignee via an inline dropdown when moved to In Progress.
- Context Menu (Admin): Assign, Start Progress, Ship It, Reopen, Add Comment, View on GitHub. Triage items additionally show Assign to Repo, Set Priority, Set Size, Approve, Reject.
- Context Menu (All Users): Vote/Unvote and View on GitHub.
-
Automation Wizard: A guided 5-step wizard for creating PowerShell automation scripts, replacing the previous single-page form. Steps include Basics (name, description, target type pills), Script (CodeMirror editor with syntax highlighting), Parameters & Outputs (AI Smart Parse for automatic detection), Tags (clickable pill selector), and Review & Submit (AI security analysis with risk/concern breakdown). Docs
- AI Script Analysis: Scripts are analysed for security risks, dangerous operations, and quality concerns before submission. Results are shown during review and on the approval page.
- AI Smart Parse: Detects parameters (types, ValidateSet, ValidateRange, descriptions) and outputs from PowerShell scripts using AI. Supports both quick regex parsing and full AI-powered parsing.
- Script Output Schema: Automations can now declare output properties that subsequent workflow steps can reference, matching how Action outputs work. Outputs are captured at runtime via a wrapper and available in the workflow step parameter mapping UI.
-
Automation Approval Notifications: Automation scripts now trigger notifications through the full notification pipeline. Reviewers are notified via email and Teams when a script is submitted for review. Submitters are notified when their script is approved or rejected. Notifications appear in the header bell icon with a new Automation Reviews tab on the Pending Approvals page. Docs
- Gamification: AutomationReviewed (30 points) and AutomationApproved (20 points) activity types added to the gamification system.
-
Interactive Roadmap: Complete overhaul of the roadmap page with two visualisation modes. Docs
- Nebula View: Three coloured nebulae (Shipped, In Progress, Planned) with layered particle cloud effects. Stars represent issues with size driven by vote count and colour by type. Zoom/pan support with animated status focus transitions.
- Mission Control View: Holographic kanban with three columns, subtle grid overlay, scanline animation, and card-based layout. Supports both light and dark mode.
- Voting: Per-user tracked votes with toggle from the sidebar detail view. Vote count drives star size in Nebula mode.
- GitHub Issue Management (Admin): Admins can assign issues, change status (Start Progress, Ship It, Reopen), and add comments directly from the roadmap sidebar.
- ConnectWise Integration: Submissions create a CW ticket on the Automations board and a linked GitHub issue. Status changes are synced back as CW ticket notes.
-
Personalised Views: Multiple views now prioritise content relevant to the signed-in user.
- My Pods: Pod Index shows your assigned pods as prominent cards at the top of the page.
- My Overview (Dashboard): Home page shows personal ticket counts, pod count, and pending reviews link.
- My Profile: Quick-access link in the header user menu and Employee list header.
- My Pod's Clients: Gold star badge next to clients belonging to your pods on the Client list. Pod managers can now access the Clients page directly from the main navigation.
- Management Dashboard: Auto-selects your pod on load, highlights your pods in the sidebar with "MY POD" badge.
-
M365 Integration Actions: ZAI can now execute M365 management actions directly from the chat interface via inline action cards. The AI proposes actions based on the conversation context, and technicians approve or reject them before execution. Supported actions include reset password, reset MFA, disable/enable user, assign/remove licenses, add/remove from groups, configure mail forwarding, set out of office, convert to shared mailbox, manage mailbox permissions, and full user offboarding. A config-driven Action Registry makes it easy to add new actions. Docs
- Inline Action Cards: Proposed actions render as interactive cards in the chat with approve/reject buttons, parameter summaries, and execution status feedback.
- Offboard User: A composite action that disables the account, revokes sessions, resets MFA, removes licenses, removes from all groups, removes forwarding, and sets an out-of-office message — all in a single step.
-
M365 Query Expansion: 13 new AI tools for querying M365 data directly from the chat — MFA status, mailbox settings, OneDrive usage, sign-in activity, conditional access policies, deleted users, distribution lists, Exchange settings, mail-enabled security groups, security alerts, shared mailboxes, and user devices. Docs
-
Chat Feedback: Users can rate AI responses with thumbs up or thumbs down, with an optional text comment. Feedback is forwarded to the Resourcer for analysis and model improvement. Docs
-
Error Reporting from Chat Pod: Error screens in the ZAI chat pod (auth failures, CW API timeouts) now include a "Report Issue" button. Users can describe what they were doing when the error occurred and submit a report. Reports capture the error message, user comment, member identity, ticket ID, browser, and screen resolution. Submitted reports are viewable by admins on the Reports page in the Resourcing App.
Improvements¶
- Notifications Popover: Notification bell now opens an inline popover with recent alerts rather than redirecting straight to the Pending Approvals page. Header restyled for consistent spacing, conditional bell visibility, and right-aligned user avatar/menu.
- Workflow Designer Polish: Connection lines remain bold while the connection picker is open. Picker now appears relative to the click location for faster selection. Connections no longer redraw on card expand/collapse — expanded cards layer over them for a cleaner look. Connection panel z-index and port alignment fixes.
- Workflow Run Visibility: Workflow list now has an action button that links straight to All Workflow Runs, with standardised table format and breadcrumbs that include Workflows.
- Workflow Validation Fix: Validation now runs against the active in-memory draft, not the last saved DB state, so you see issues reflecting your current edits.
- Workflow Authorship:
CreatedBy/ModifiedByare now logged as user email addresses rather than Azure AD object IDs, and Created By is shown on the workflow view page. - Gamification Award Fixes: Fixed several issues where gamification points weren't being awarded correctly. Users who submit a workflow for review now get points when the workflow is approved.
- Sidebar Highlighting: Fixed missing sidebar highlight on the Home tab (#165) and standardised home nav highlighting.
- Board / Pod Configuration: Adjustments to the board pod configuration UI for clearer mapping of boards to pods.
- Middleware Logging: Additional logging across the ZAI middleware to make production debugging easier.
-
Custom Actions Styling: Custom Actions list, Create and Edit pages now use the standard
CardCust/cardCustSecondarystyling so headers, footers and section cards respect dark mode. -
Shared Wizard Stylesheet: All wizard CSS consolidated into a shared
wizard.cssfile. Both Automation and Workflow wizards load styles in the<head>, eliminating the flash of unstyled content on first load. - Clickable Wizard Steps: Completed step indicators are now clickable for back-navigation in all wizards. Future/incomplete steps remain non-clickable.
- Automation Scripts List Restyled: Updated to match the Workflows list with status cards (Rejected, Awaiting Review, Approved), grid icon action buttons, badge-based status indicators, and empty state handling.
- Employee List Enhanced: New Pod and Roles columns showing pod assignments and colour-coded role badges. New advanced filters for Pod and ZAI Role.
- Pod Employee Tab Improved: Role badges per employee, grid action buttons (View Employee, Reassign to Pod, Remove from Pod) with confirmation modals.
- Automation Review Page: AI script analysis displayed to reviewers with risk badges and concern list.
-
Pod Manager Client Access: Pod managers can now view and manage clients assigned to their pods. A dedicated "Clients" navigation link appears in the main menu. Non-admin pod managers see only their pod's clients; admins continue to see all clients.
-
View-Only Employee Access: All authenticated users can now view the Employees list and individual employee profiles. Previously restricted to pod managers only. Edit, delete, and impersonate actions remain pod-manager-only. Leaderboard links to employees now work for all users.
- Workflow Review for Pod Managers: Pod managers can now view workflow review pages (read-only). Approve and reject actions remain restricted to users with the Workflow Review role.
- Roadmap Visible to Managers: The roadmap is now accessible to pod managers and SDMs, not just admins. Admin-only actions (triage, issue management) are still protected.
- Workflow Approval Messages: The "not an approver" message on the Workflow Review page now shows the current approval level name and the designated approver names (e.g. "Awaiting approval from Manager Review: John Smith, Jane Doe"). If all approvers are required, this is also indicated. The generic fallback has been replaced with actionable context so reviewers understand who needs to act.
- Navigation Search Filtering: The quick-search navigation now respects user permissions — only pages you can access appear in search results.
- Controller Policy Corrections: Fixed authorisation on PredefinedTagController (was open to all, now admin-only), CustomerFormAdminController (was workflow creators, now admin-only), and ActionController (was all workflow roles, now admin-only).
- Workflow Suggestion Ranking: Workflow suggestions now use keyword matching against the ticket title, description, and tags — not just tag scores. This eliminates the previous behaviour where tickets with no matching tags received 5 random workflow suggestions. Results are ranked by relevance with name matches weighted highest.
- @Mention Tab-to-Select: Pressing Tab now selects the highlighted item in the @mention autocomplete menu. If nothing is highlighted, the first item is selected. Tab does not interfere with
/commandmenus where Enter remains the selector. - CW onLoad Conversation Reload: When the ConnectWise onLoad event delivers a different ticket ID than the initial page load, ZAI now re-fetches client/tenant context, clears stale messages, reloads conversation history, and re-joins the correct SignalR chat group — preventing duplicate messages and stale context.
- ZAIDC 1.9.5: Updated the ZAI Data Connector to v1.9.5 with broken authentication fixes.
Bug Fixes¶
- Fix employee role and pod filters applied after pagination, causing incorrect/empty results when filtering on the Employees page (#189).
- Fix pod managers receiving 401 Unauthorised when accessing workflow review pages (#169).
- Fix employee role and pod filters applied after pagination, causing incorrect/empty results when filtering on the Employees page (#189).
- Fix
IWorkflowAnalysisServicenot registered in DI, causing InvalidOperationException when accessing automations. - Fix circular dependency between
AutomationServiceandIApprovalNotificationServiceby moving notification calls to the controller. - Fix EF migration for
CachedAIAnalysisJsonattempting to add duplicateCachedAISummaryJsoncolumn on Workflows table. - Fix
GetStepOutputSchemanot returning output properties for RemoteAgent automation steps (checked for "Automation" type only, not "RemoteAgent"). - Fix missing
nameproperty in automation output schema response, causing the Insert Step Output Placeholder dropdown to show empty entries. - Fix client configuration pages being admin-only, preventing pod managers from accessing clients in their pods (#169).
- Fix how tickets are read in the Resourcing App to handle the new ticket queue/error pipeline.
- Fix scope issue in the Windows Agent IoT Hub integration.
- Fix workflow execution logging so that points are awarded to staff correctly.
- Dark mode style fix on the Scope step of the workflow wizard.
- Fix AI-suggested workflows not loading inside the wizard canvas.
- Fix DateTime values displaying with incorrect timezone offset after British Summer Time (BST) starts. EF Core now applies a global value converter that sets
DateTimeKind.Utcon allDateTimeproperties read from the database, ensuring JSON serialisation includes theZsuffix and browsers parse times correctly regardless of DST. - Fix chat feedback auth headers using
window.ZAI.auth(which doesn't exist) instead of theZAIAuthmodule-scoped global, causing 401 errors on feedback submissions. - Fix workflow approval config not resolved for pod/client-level defaults on the Workflow Review page.
GetWorkflowApprovalConfigonly queried workflow-specific configs, so workflows using inherited pod/client approval configs showed a generic "not authorized" message instead of the multi-level approval UI. The endpoint now checks theResolvedApprovalConfigIdstored at submission time, falling back to live pod/client resolution. - Fix unhandled exception in
ApproveWorkflowandRejectWorkflowwhen a multi-level approval decision fails (e.g. user not in approver list, duplicate approval). TheInvalidOperationExceptionwas not caught, returning a 500 error with a generic "Failed to approve workflow" alert. Now returns a 400 with the actual error message displayed to the user. - Fix race condition where the initial conversation history load (using a stale cookie-based ticket ID) could render messages after the real CW onLoad cleared the chat, producing duplicate message bubbles. A monotonic load token now discards stale responses.
- Fix intermittent "ConnectWise Hosted API did not initialize" error when loading the chat pod inside ConnectWise tickets. The single 5-second timeout has been replaced with 3 automatic retry attempts (5s, 7s, 10s) before showing an error. If all attempts fail, a "Try Again" button is now shown instead of a dead-end Access Denied screen.
0.3.0 (19/03/2026) Shipped¶
New Features¶
-
Conditional Branching: A new "On Condition" connection type (orange) alongside Default/Success/Failure. Connections can evaluate JSON condition expressions against step output properties, enabling decision-tree branching. Supported operators: equals, notEquals, contains, startsWith, isEmpty, isNotEmpty. Docs
- Condition Config UI: Orange connection dot on step nodes for creating conditional connections. Modal with dropdowns for source step, property path (auto-populated from step output schema), operator, and value. Arrow labels rendered on canvas at connection midpoints.
- User Prompt Output Schema: MultipleChoice, YesNo, and Approval prompt steps now expose their outputs (userResponse, respondedBy, respondedAt) for use in conditions. MultipleChoice returns defined options, YesNo returns Yes/No, Approval returns Approved/Rejected.
- Multiple Conditional Connections: A single step can have multiple On Condition connections (e.g. one per MultipleChoice option), enabling full decision-tree branching from prompt steps.
- Auto-Created Branches: Adding a YesNo prompt step automatically creates two conditional branches (Yes/No). Adding a MultipleChoice step auto-creates a branch per option.
-
Workflow Variables: A new workflow-level variable system. Variables are defined at design time with a name and default value. Steps can assign values to variables on completion (conditionally: Always/OnSuccess/OnFailure, with Append or Set mode). Variables are resolved in step parameters via
{{var.VariableName}}syntax. Variable state is persisted on the execution result. Docs- Variable Definition Panel: Define variables with name, default value, and description from the toolbar.
- Variable Assignment UI: Step editor has a Variable Assignments section with dropdowns for variable name, value, condition, and mode.
-
Lasso Multi-Select: Drag on the canvas background to draw a selection rectangle. Steps within the rectangle are selected for bulk move with arrow keys. Docs
-
Add Step from Context Menu: Right-click anywhere on the canvas to add a new step at that position. Right-click on an existing step to add a connected next step below it.
-
Skipped Step Status: Unreached steps on conditional branches that weren't taken now display as "Skipped" (grey badge) instead of "Running" in execution history.
-
Canvas Loading Indicator: A loading overlay with progress bar is shown while the canvas initialises, preventing the flash of unstyled step positions.
-
Notification Popover: The notification bell in the site header now opens a popover showing pending approvals and workflow reviews instead of navigating away. The bell is hidden when there are no notifications.
Improvements¶
- Improved Auto-Layout: The auto-layout algorithm now uses a tree-based approach that centres parent steps above their children, producing cleaner branching layouts.
- Improved Arrow Routing: Branching connections use smooth bezier fan-out curves from the parent centre. Single connections use side-joining for horizontally-adjacent steps and vertical bezier for steps above/below.
- Better New Step Positioning: New steps are placed below the lowest existing step rather than overlapping at the top-left.
- In-Place Save: Save no longer triggers a full page reload. Changes are applied in-place without losing your position on the canvas.
- Guided Save/Validate/Review Flow: The toolbar now shows a flow status message guiding users through the sequence with the next action button highlighted. A "Submit for Review" button appears inline in validation results when the workflow passes.
- Auto-Save Before Validation: Clicking Validate automatically saves unsaved changes first, ensuring validation runs against the current draft.
- Draft-Aware Validation: Validation now checks the draft state when editing a live workflow, rather than always validating the published version.
- Improved Toolbar Layout: Buttons grouped logically with dividers separating utility actions from the Save → Validate → Review sequence. Disabled buttons now clearly visible in both light and dark mode.
- Header Icon Reordering: Site header icons reordered to: notification bell, dark/light toggle, user profile (rightmost). User menu dropdown chevron removed for a cleaner look.
- Middleware Rework: The middleware that processes tickets, triaging and resource assignment has been moved to an Azure service bus based infrastructure. Along with this in the tagging database various debugging and logging tools have been added to help assist with ZAI support requests and traceability/observability.
Bug Fixes¶
- Fix user prompt response not continuing workflow execution. The RespondToPrompt endpoint required authentication which blocked inter-service calls from the ToolAgent. Fixed by locking down the endpoint down with internal API Key.
- Fix automation step output not being saved, preventing
{{StepName.Property}}placeholders from resolving. - Fix EasyMDE editor not loading on second use when step partial is reloaded via AJAX.
- Fix arrow key movement broken after multi-select due to variable scoping between IIFEs.
- Fix lasso selection being immediately cleared by the canvas click handler on mouseup.
- Fix
_currentZoom is not definederror when right-clicking canvas to open context menu. - Fix save button remaining visible after saving due to the dirty state callback not firing.
- Fix validation always checking live workflow tables instead of the draft state.
- Fix Home nav menu item not highlighted when on the root
/path. - Fix a bug where client job role overrides were ignored.
0.2.1 (26/02/2026) Shipped¶
New Features¶
-
Assignment and Approval Notifications: We've added Teams and Email notifications for when tickets are assigned or approvals requested.
- Notification Control: Ability to enforce notification settings at pod and employee levels.
-
Open Ticket Status Control: Control what tickets do and don't count towards ticket scoring in the Board Pod Configuration.
-
Teams Bot Early Preview: The ZAI Microsoft Teams bot is under preview and supports notification sending, queries and rich responses via the fluent card API.
Improvements¶
- Improved Management Dashboard View: Reduced refresh flickering, improved search and adjusted layout for better UX.
- Added workflow bulk export/import
Bug Fixes¶
- Fix workflow draft step editing bug.
- Workflow Designer Fixes - move/delete existing connections is now more reliable
- Fix workfow pod/client overrides using auto-save, same as workflow approval levels
0.2.0 (18/02/2026) Shipped¶
New Features¶
-
Workflows V2 -- We've improved the workflow builder to be packed full of new features. Docs
- New node designer: Drag, copy, paste, zoom, duplicate and delete steps in the node designer. Docs
- New test mode: Easily test workflows with forced failures and context parameters. Docs
- History and drafts: Workflow edits now store as drafts in our new revision history system. Make changes on drafts with pending approvals while keeping the old draft approved and live. Docs
- Export and import your workflows: Easily store, share and backup workflows as files. Docs
- Collaborative editing: Show who else is looking at the workflow designer, lock steps to prevent simultaneous editing, and broadcast changes in real-time. Docs
- UX: Over 30 keyboard shortcuts with shortcut guide added for power-users. Docs
- Multiple Approver Support: We now support the ability for pods to configure requirements for multi-stage approval. Docs
-
Onboarding Wizards -- New guided setup wizards for Employees and Clients. Docs
- Automatically detected: New employees and clients flagged for setup from ConnectWise sync, with support for manually adding or via webhook/link too.
- Guided: Job roles, board pod configurations, associated pods -- each required part is requested in a step-by-step wizard.
-
Custom Field Configuration -- Configure the mapping between ConnectWise custom fields and ZAI's requested fields that are used by the triage system.
-
Board Configuration Overhaul -- Redesigned board and pod configuration for greater flexibility.
- Add incoming conditions such as required title/summary regex, allowed company types, allowed statuses.
- Configure outgoing actions once triage/assignment is complete, such as locking ticket features (Workflows, Triage, or Assignment).
-
User Impersonation -- Administrators can now impersonate other users for troubleshooting and support purposes.
-
Install as Desktop App (PWA) -- The Resourcing App can now be installed as a PWA from the browser.
Improvements¶
-
Redesigned Employee, Pod, and Client Views -- These pages have been refreshed with a cleaner layout, profile pictures, tab-based navigation, and a new design for better readability.
-
Employee/Client View Enhancements -- Microsoft 365 and IT Glue details are now shown directly on the client page instead of just displaying ID numbers.
-
Line Manager Selection -- Line managers are now selected from the employee list via a searchable dropdown, establishing a formal relationship hierarchy rather than free text entry.
-
Standardised Buttons / Dropdowns -- Button styling and dropdown styling has been made consistent across all pages in the application.
-
Improved Ticket Assignment View -- The ticket assignment calculation screen now displays ticket title, company name, and error messages for better clarity on assignment calculations.
-
SAM Consent Improvements -- The consent setup process now checks for existing service principals on page load and provides clearer status feedback.
Bug Fixes¶
- Fixed an issue where pod and client whitelist/blacklist settings were not saving correctly.
- Fixed a bug preventing existing approval records from being modified.
- Fixed the searchable dropdown on the onboarding screen not positioning correctly.
- Fixed an issue with the approval configuration editor not loading properly.
- Resolved an issue where technical level scores were not being passed through correctly.
0.1.0 Shipped¶
Initial production release of ZAI.