Skip to content

Changelog

All updates to ZAI in production are documented here.

Status: Shipped = In production | Dev = In development, awaiting testing


0.6.0 (Planned) Dev

Development release — planned

This is a major release currently in development across several feature branches and awaiting testing. Everything below is subject to change before it ships to production. Items are documented now so you can see what's coming.

This release bundles seven streams of work: an in-app AI assistant, automatic availability sync from your HR system and Microsoft Shifts, new pod-management dashboards, remote command execution against endpoints from inside a workflow, and a broad performance and navigation overhaul.

New Features

  • Ask ZAI — in-app AI assistant: A conversational assistant that searches your own ZAI data and answers in plain English. Open it from the Ask ZAI button in the home search box, or from anywhere in the app with the slide-out drawer (Ctrl+K / Cmd+K). Ask ZAI is read-only — it finds and explains, it never creates, edits, or deletes anything. Docs
    • Searches across your platform: Pages (respecting your permissions), workflows, automations, employees and their skills, tickets, the help docs, and your statistics — all from one question. Every result is a real clickable link generated from your data, never a fabricated URL.
    • Explains decisions: Ask "why was ticket 12345 assigned to Jane?" and get a plain-English summary of the assignment score and the top factors behind it.
    • Suggested prompts: Starter questions appear when you open the assistant, so you always have somewhere to begin.
  • HR Sync — HiBob integration: ZAI can now connect to HiBob and keep employee profiles and leave up to date automatically, so you manage the data once in your HR system instead of in two places. Docs
    • Profile sync: Job title, office/site, and line manager (including the reporting chain) are written to ZAI from HiBob on a configurable schedule (default: daily). Missing job roles and offices are created automatically.
    • Leave sync: Approved time-off from HiBob's Who's Out feed flows into ZAI's availability model and feeds straight into ticket assignment. Cancelled leave is removed automatically on the next sync.
    • Field ownership: Fields owned by HR become read-only on the employee form when sync is enabled, and the lock is enforced server-side — no more double entry or drift.
    • Provider-agnostic: HiBob is the first provider on a generic HR platform layer, so other HR systems can be added in future without changing how availability is calculated.
  • Microsoft Shifts schedule sync: ZAI can poll your Microsoft Teams Shifts rotas via Microsoft Graph and use the published schedule as the live source of truth for who is on shift. Docs
    • Live availability: After each sync, on-shift status is pushed to the Resource Scheduling view in real time over SignalR — cards flip on and off as the rota changes, no refresh needed.
    • Time-off aware: Published time-off blocks mark an employee unavailable automatically, taking priority over a scheduled shift.
    • Graceful fallback: Employees not yet covered by Shifts (or whose data has gone stale) fall back to their weekly schedule template, so availability is never left blank. You can adopt Shifts team by team.
  • Resource Scheduling dashboard: A new multi-pod board for pod managers showing every employee's availability across all pods at a glance, grouped into Available, Scheduled Away, and Unavailable. Filter by pod, right-click a card to change status instantly, drag between columns, or set a future availability window inline. Docs
  • Ticket Assignment Calculator — live PSA ticket picker: Pick any open ticket from your connected PSA (ConnectWise, Autotask, or HaloPSA) and see exactly who ZAI would assign it to and why — without actually assigning it. Search by ticket number, title, or company; results load inline. Ideal for verifying your assignment configuration before it runs for real. Docs
  • Remote endpoint execution in workflows: A workflow Automation step can now run a PowerShell script directly on a managed endpoint without a technician opening a session by hand. Pick the target machine from a live list and ZAI dispatches the command over whichever transport reaches it. Docs
    • Multi-transport dispatch: ZAI routes execution over an existing ScreenConnect session or the Windows Agent (Azure IoT Hub), choosing automatically based on how the chosen machine is reachable.
    • Endpoint discovery: The picker queries ScreenConnect and IoT Hub together and merges them into one per-client list — machine name, online status, logged-in user, and transport — deduplicated by machine.

Improvements

  • Navigation — instant page transitions: Pages now load without a full browser reload. The sidebar and shell stay put while only the content swaps, so moving between sections feels noticeably faster.
  • Home dashboard refresh: The home overview now includes an Active Tickets card (with actionable and stale counts) alongside Employees, Pods, Automations, and Windows Agents, with cards animating in on load.
  • Faster employee search: Employee search and filtering (name, office, job role, onboarding status) now runs entirely in the database instead of loading the full employee list into memory first — a noticeable speed-up on larger tenants.
  • Faster sign-in and profile loads: Employee lookups by email now use a dedicated index and skip unnecessary change-tracking, so pages that depend on the current user load more quickly.
  • More resilient database access: All databases now retry automatically on transient Azure SQL faults (idle-connection drops, brief throttling), so short-lived connectivity blips resolve silently instead of surfacing an error. Saves for workflows, access lists, triage configuration, and onboarding are wrapped in the same retry strategy.
  • ScreenConnect online-status reliability: Online status now combines guest connectivity, active connections, and a recency window on the last heartbeat, instead of only counting active connections — a connected-but-idle agent is no longer reported as offline.
  • ScreenConnect permission handling: A "needs permission" response from ScreenConnect is now treated as a terminal authorisation error rather than an expired session, so ZAI no longer re-authenticates in a loop and trips ScreenConnect's operation-limit guard.
  • ConnectWise connector v2 compatibility: The in/out board availability feature now uses the updated ConnectWise connector interface, and boards named "team" are recognised alongside "pod". Requires ZAI External Data Connector 3.3.0 or later.
  • Ticket Queue — activity summary: The Queue page now shows a breakdown of active pipeline stages (Triage, Patch, Resourcing) and a Recent Activity table of the most recently active tickets, and is searchable via the shared PSA ticket picker.

Bug Fixes

  • Saturday availability: Fixed the weekly schedule template's Saturday check, which compared the shift end time twice instead of the start time — employees who work Saturdays were incorrectly shown as off-shift.

0.5.0 (20/05/2026) Shipped

New Features

  • Customer Forms — landing page & sections: /CustomerForms is now a nav-card landing (Forms, All Submissions, Webhooks) instead of opening straight into the forms list. Breadcrumbs in sub-pages drill back through Forms → form name → page. Docs
  • Cloud Radial form import — auto-configure: Import a CR catalog item into a ZAI form in one click. The import generates the form's fields from CR's questions, provisions a webhook integration with auto-derived field mapping (using JSONPath predicate filters against Ticket.Questions[]), and writes the webhook URL + thank-you iframe back to CR. End-user submissions on CR now flow to ZAI and trigger the linked workflow automatically. Docs
    • Status iframe: CR's thank-you page now embeds a live status iframe that polls workflow progress every 3 seconds. Correlated via CR's @TicketId template token, no per-submission templating needed on the CR side.
    • Workflow field mapping UI: CR-imported forms get a new mapping card on their Edit page — pick which form field provides each workflow step parameter, with a fuzzy-name Suggest button and a required-but-unmapped warning badge.
  • Webhook integrations — rewrite: The form-level Webhooks page is now a card grid with a 3-step drawer wizard (Source preset → Sample payload → Field mapping), per-webhook Activity drawer (last 100 calls, test/live filter, payload preview), and a Test Send modal that runs payloads through the live pipeline as IsTestRun. Built-in presets for Cloud Radial, Halo PSA, and Power Automate (generic). Docs
    • Capture mode: One-shot capture URL (10-min TTL) you paste into the remote system. Trigger one test submission and the wizard auto-fills the sample payload textarea, discovering all available JSON paths.
    • JSONPath predicate filters: The path extractor now supports $.foo[?(@.Id=='X')].bar style filters and numeric array indices alongside dot notation. Essential for CR's Questions[] payload shape.
    • Activity log: Every webhook call (live or test) records source IP, status, error message, and payload (capped at 32 KB). Keeps the latest 100 per integration.
  • All Submissions view: Cross-form submissions list at /CustomerForms/AllSubmissions. Shows form column, full filter set, and quick Scheduled badge. Per-form /CustomerForms/Submissions/{id} route now shares the same view.
  • All Webhooks view: Cross-form webhook integration list at /CustomerForms/AllWebhooks. Shows form name, integration name, preset, active state, last received, and last status with a deep-link to the per-form Webhooks page for editing.
  • M365 Onboard User From Template action: New composite M365 action that creates a new user and copies selected settings from a chosen template user. Granular per-area toggles (copy_licenses, copy_security_groups, copy_m365_groups, copy_distribution_groups, copy_manager, copy_job_title, copy_department, copy_office_location, copy_company_name, copy_address, copy_usage_location) plus a master copy_all switch. Dynamic groups are skipped automatically, errors per section are collected so the new user lands in the best possible state.
  • Workflow Runs — unified view: Automation/WorkflowRuns/{id} and Automation/AllWorkflowRuns collapsed into a single route. Workflow-scoped mode shows Run / Export / Compare buttons and selection checkboxes; cross-workflow mode adds Workflow + Client + Ticket columns. Old /AllWorkflowRuns URL stays as a 302 redirect.
  • Ability to download csv Workflow table: There is an option to export a csv file of the current workflow table, this export also allows for any current filters to be carried across for any refined views that are needed.
  • Test Workflows: There is now the option to test workflows, this allows you to connect to the test tenant.
  • New Triage Configuration system: The steps ZAI takes upon receiving a ticket is now fully dynamically driven via a phase & step editor. Default and custom fields can be triaged with custom instructions and conditions, along with the dynamic ability to post notes & run workflows upon tickets being received.
  • New Assignment Configuration Step: You can use your custom triage configuration's variables in the new dynamic assignment score editor. Each triage configuration can have its own custom tailored equation along with mock+live ticket testing against the assignment scoring equations.

Improvements

  • Tables — dark mode consistency: WorkflowRuns, AllWorkflowRuns, Forms, Submissions, and AllWebhooks now use the project's shared data-table-enhanced styling. Row hover and selection states work correctly in both themes; the broken bg-light/table-active combination that left selected rows unreadable in dark mode is gone.
  • Tables — standardised row actions: Form/workflow/run name cells are plain text (no hyperlinks); the only way to open an item is via the icon-button group on the right of each row (now consistently using the _GridActions partial). Row-click navigation removed for predictability.
  • Nav cards — loading state: Clicking a nav card on a landing page now swaps the chevron for a spinner and dims the card while the next page loads. Helpful for pages with slower first paint. Shared JS extracted to ~/js/nav-card.js so both /Automation and /CustomerForms landings use the same code.
  • Customer Form Wizard — searchable dropdowns: The Access step's Client and Pod pickers now use the project's .searchable-select component, matching every other dropdown in the app. Type to filter, much faster on tenants with many clients/pods.
  • ConnectWise notes — accept-header drift: The ZAI External Data Connector no longer serialises a deprecated noteType field that recent ConnectWise API versions reject. EDC bumped to 1.9.10 (consumer apps will pick this up via dotnet restore).
  • Ticket Assignment Report: Once tickets are assigned, a ticket assignment report is generated as-at which can be used to cross-reference who was assigned and why for each ticket.

Bug Fixes

  • Direct form submissions losing tenant/ticket: Removed auto-created hidden tenant_id/ticket_id form fields on CR imports — they were silently dropped at render time (the form renderer skips hidden fields with no default value), breaking direct /f/<slug> submissions. The submission pipeline now also passes through any fieldValues entries that don't have a backing form field, so webhook-injected context values still reach the workflow.
  • Cloud Radial PATCH — payload-shape errors: Multiple fixes for the CR catalog write-back: unwrapping CR's { data, success, message } response envelope, retyping catalogUsage from string to int (CR returns the enum as a number), making bool fields nullable so null from CR doesn't blow up deserialisation, and switching from full-body PUT to RFC 6902 JSON PATCH to avoid resetting unrelated fields.
  • WorkflowRuns table — invisible selected rows in dark mode: Replaced Bootstrap's table-active (light-mode-only) with the project's themed .selected class, applied via the data-table-enhanced shell. Selected rows now stay readable when the cursor moves away.
  • Form save dropping required fields: The Edit POST handler now preserves FieldName and Label on each form field when the payload omits them (e.g. when reordering fields without re-posting the full record), instead of writing NULL into the NOT NULL columns.
  • CR auto-config token casing: Fixed the iframe URL template to use @TicketId (CR's documented token name with this exact casing) so the PSA ticket id resolves at render time instead of being shown literally.
  • Webhook UI — Add button silently broken on empty state: When a form had no existing webhook integrations, the antiforgery token lookup was scoped to a div that didn't yet exist, throwing on page load and preventing the Add button from working. Lookup is now document-scoped.

0.4.1 (29/04/2026) Shipped

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, plus workflow-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-triage label 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/ModifiedBy are 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 / cardCustSecondary styling so headers, footers and section cards respect dark mode.

  • Shared Wizard Stylesheet: All wizard CSS consolidated into a shared wizard.css file. 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 /command menus 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 IWorkflowAnalysisService not registered in DI, causing InvalidOperationException when accessing automations.
  • Fix circular dependency between AutomationService and IApprovalNotificationService by moving notification calls to the controller.
  • Fix EF migration for CachedAIAnalysisJson attempting to add duplicate CachedAISummaryJson column on Workflows table.
  • Fix GetStepOutputSchema not returning output properties for RemoteAgent automation steps (checked for "Automation" type only, not "RemoteAgent").
  • Fix missing name property 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.Utc on all DateTime properties read from the database, ensuring JSON serialisation includes the Z suffix and browsers parse times correctly regardless of DST.
  • Fix chat feedback auth headers using window.ZAI.auth (which doesn't exist) instead of the ZAIAuth module-scoped global, causing 401 errors on feedback submissions.
  • Fix workflow approval config not resolved for pod/client-level defaults on the Workflow Review page. GetWorkflowApprovalConfig only 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 the ResolvedApprovalConfigId stored at submission time, falling back to live pod/client resolution.
  • Fix unhandled exception in ApproveWorkflow and RejectWorkflow when a multi-level approval decision fails (e.g. user not in approver list, duplicate approval). The InvalidOperationException was 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 defined error 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.