Skip to content

๐Ÿ“„ Release Notes โ€” v1.4.0 - The Growth Engine

Latest

Choose a tag to compare

@NatalliaBukhtsik NatalliaBukhtsik released this 06 Aug 18:56

๐Ÿ“„ Release Notes โ€” v1.4.0

Codename: Growth Engine
Release Date: 2026-08-06

[www.nineminds.com/alga-psa](http://www.nineminds.com/alga-psa)


๐Ÿš€ New

  • ๐ŸŽฏ Sales Opportunities. AlgaPSA now includes an MSP-focused sales pipeline. Track deals from identified to won/lost, work a personal daily queue of next actions, and get auto-generated deal suggestions from renewals, T&M-to-contract conversions, whitespace gaps, and aging assets โ€” with pipeline reports and a dashboard snapshot. Pro adds forecasting, a pipeline meeting mode, commitments, QBR packs, and an AI Assistant that drafts follow-up emails in your own voice.

  • ๐Ÿ’ต Project Billing. Projects gain a Billing view alongside Kanban and List. A guided wizard sets up fixed-price milestones, Time-&-Materials budget caps, deposits, and progress billing, with budget-vs-actual tracking right on the project. The Invoicing Hub adds a Project Billing review tab with bulk approve/hold, and clients see a read-only billing summary in the portal.

  • ๐Ÿงฎ Contract Simulator. Price a contract before it ever bills. Every contract gains a Simulate tab: edit the scenario and its activity assumptions in place, then run 3, 6, or 12 billing periods โ€” future or historical โ€” and read the invoices it would produce line by line, with a structured explanation behind every amount and a comparison against the untouched live contract. Assumptions can be pre-filled from recent averages or replayed from a historical window. Fixed fees, hourly, usage, buckets, products, licenses, discounts, adjustments, proration, mixed cadences, and tax all run through the same charge engine production billing uses, so a simulation can't drift from the real invoice โ€” and nothing is written: no billing records, no invoice numbers, no events. Also available from the contract wizard before you save, and from contract templates. Pro, behind a feature flag.

  • ๐Ÿชช SCIM User Provisioning. Microsoft Entra can now drive internal-user lifecycle over SCIM 2.0. Deactivating someone in Entra deactivates them in AlgaPSA and revokes their sessions immediately, and all connection actions are audit-logged. Pro, behind a feature flag.

  • ๐Ÿ” Client Portal SSO. Client portal users can now sign in with their own Microsoft accounts. Each mapped Entra tenant is scoped to a single client, and an Entra access group decides who gets portal access โ€” land in the group and a portal user is provisioned; lose it and the account is deactivated. Provisioning runs built-in or workflow-managed (or off), set per tenant mapping over a workspace default, with a default portal role assigned on creation โ€” and Alga warns you when the group you've chosen is broad enough to hand your entire directory a seat. Internal and client auto-linking are now separate switches, and invitations can pre-link an Entra identity so the user never sets a password. Custom portal domains sign in through the same path. Pro.

  • ๐Ÿ“ˆ Employee Utilization Report + Work Schedules. A new Pro-tier report shows worked hours against capacity per user. Backing it, user details gains a per-weekday working-hours editor, and technicians can edit their own hours without admin permission.

  • โœ‰๏ธ Email Invitations for Team Members. Invite internal team members by email โ€” from the onboarding wizard or Settings > Users โ€” so new users set their own password. Pending invitations reserve license seats, and admins can view and revoke them.


โœจ Improved

  • ๐ŸชŸ Microsoft Entra Operations Console. The Identity screen is now a guided setup wizard until the first sync, then a permanent operations console with Overview, Sync & schedule, Clients, History, and Connection tabs. Preview a sync without writing anything, pilot a single client before running the rest, rotate a credential in place, and export the connection record as audit evidence.

  • ๐Ÿ“ง Microsoft 365 Email, End to End. Connecting a Microsoft mailbox is now a guided setup: let Alga create and register the Entra app for you, use the platform-managed app on hosted plans, or paste credentials you registered yourself. The automated path provisions the app registration, service principal, secret, and callbacks, then asks for tenant-administrator consent on exactly the permissions it declares โ€” nothing broader. Once a mailbox is connected it can also send: pick it in Outbound Email and ticket replies and notifications go out through Microsoft Graph, saved to the mailbox's Sent Items, with reply-threading headers preserved. Outbound sending through Microsoft 365 is Pro.

  • โธ๏ธ Pause an Inbound Inbox. Inbound mailboxes can now be manually paused and resumed โ€” pausing tears down the provider subscription so nothing is delivered, and resuming re-establishes it. Tenant suspension pauses inbound email automatically and restores it on resume.

  • ๐Ÿ“จ Polling-Only Microsoft Inbound Email. Inbound Microsoft email can now run on polling alone, without webhook delivery โ€” useful for on-premise and restricted-network setups.

  • ๐Ÿ’ณ Billing Credits, Reworked. A client's available credit is now derived from live credit tracking instead of a cached balance, so the figure on the client, the report, and the invoice can no longer drift apart. In the client portal, credit notes and prepayments are labelled as such โ€” they no longer show up as pending or overdue invoices, and they're no longer payable โ€” and a new Available Credit card shows the balance along with where each credit came from and when it expires. Clients whose credit is held in your accounting system can be annotated with an external-credit note, so a prepaid client isn't shown as delinquent while the bookkeeper applies it.

  • ๐Ÿงพ Quote Revisions. Sent, rejected, expired, cancelled, and accepted quotes can now be revised. Revising supersedes the original and opens a linked draft with line items and activity history copied across, so the version chain stays intact โ€” and an accepted quote keeps its conversion actions.

  • ๐Ÿ“ฅ QuickBooks Product & Service Import. The QuickBooks Online wizard gains a Products & Services step that imports QBO items into the Alga service catalog. A preview shows the whole plan โ€” what will be created, updated, linked, or skipped โ€” before anything is written, and one bad row no longer stops the batch. QuickBooks owns name, rate, SKU, description, cost, and active status; billing method, unit of measure, and service type stay yours. Behind a feature flag.

  • ๐Ÿ”ข Consolidated Numbering Settings. Credit notes, sales orders, and opportunities get their own auto-numbering, and all billing-document numbering now lives in a single Numbering settings tab.

  • ๐Ÿ”— Editable Contract Lines. Contract line services can now be edited after creation.

  • ๐Ÿ“… Portal Appointments Can Be Turned Off. A workspace switch removes client-portal appointments entirely โ€” navigation, dashboard controls, the booking panel, and the pages themselves โ€” while tickets, projects, service requests, and devices carry on as normal. Direct appointment links redirect to the dashboard and booking requests are refused server-side. Portals that already use appointments keep them.


๐Ÿž Fixes

  • Fixed NinjaOne client mapping failing to match organizations due to inconsistent client-type casing.

  • Fixed Level.io RMM sync failing for machines reporting fractional RAM (e.g. 15.74 GB).

  • Fixed quote tax and template issues: dates and template bindings no longer drift, and currency renders in the tenant's configured currency instead of a hardcoded "$".

  • Fixed contract errors: recurring periods no longer regenerate past the contract end, draft contracts are no longer misclassified as "Terminated," and wizard validation errors show real messages instead of raw 500s.

  • Fixed ticket close: the resolution and close state now persist correctly, and draft images are retained when a close fails.

  • Fixed the invoice designer deleting an entire block on Backspace inside a text field, and Escape clearing the selection mid-edit.

  • Fixed invoice batch email/PDF so a later failure no longer re-marks completed invoices as failed, and surfaced manual invoice-generation failures instead of failing silently.

  • Fixed /api/v1/clients returning duplicate rows for clients with multiple locations, and rich-text content rendering an internal error placeholder.

  • Fixed ticket status filtering to accept a plain status name, not just a UUID.

  • Fixed API ticket reassignment (PUT /api/v1/tickets/{id}/assignment) failing with "Invalid reference" when the ticket had additional agents.

  • Fixed settings sub-tab deep links breaking the settings route.

  • Fixed the client picker's tag filter missing on some dropdowns.

  • Fixed stale "Failed to find Server Action" errors from parked tabs after a deploy.

  • Fixed permission-denied messages when adding a contact to show the real reason instead of a generic error.

  • Fixed email log pagination snapping back to the first page.

  • Fixed products-by-id API routes (GET/PUT/DELETE /api/v1/products/{id}) that never worked due to a mis-registered RBAC resource.

  • Fixed SLA timers running on tickets created directly in a closed or pause-configured status โ€” the creation status is now evaluated up front, and affected tickets have been corrected.

  • Fixed Microsoft 365 inbound subscriptions failing to renew when the requested expiry exceeded Microsoft's limit, and IMAP mailboxes showing a stale "Disconnected" state after a successful resync.

  • Fixed sign-in through a custom client-portal domain looping back to the login page, and SSO failures showing an empty error box.

  • Fixed outbound sender identity: ticket-routing and ordinary notification senders are now configured separately, and a blank notification display name falls back to your company name instead of going out empty โ€” including the support contact shown on portal invitations.

  • Fixed three v1 API regressions: contract list and detail queries failing, client create/update silently dropping the default currency, and quote endpoints gated on a permission that didn't exist.

  • Fixed recurring billing matching billed service periods by date instead of by record, which could re-bill a period that had already been invoiced.

  • Fixed onboarding progress deadlocking against itself and losing the step you were on.

  • Fixed updating a project created from a template failing on its budgeted hours.

  • Fixed the contract Billing tab triggering a full-page reload when switching sub-tabs.

  • Fixed missing Portuguese (and other locale) email and notification templates.

  • Fixed deleting the last ITIL board leaving orphaned ITIL priorities, categories, and SLA targets behind.

  • Fixed the Teams add-on link leading to a dead end.

  • Appliance / self-host: fixed the trial banner product name, SMTP settings silently discarding input, the container-inspect tool, claim-code redemption, license-activation errors hiding behind "app is still starting," portal custom domains behind a double proxy, a stalled in-progress install state permanently blocking further updates after a control-plane restart, and app-channel updates tripping the liveness check and killing the control plane mid-update.


๐ŸŽจ UX & Polish

  • ๐Ÿฑ Asset Detail Bento Layout. Asset pages follow the same bento approach as tickets, contacts, and the client command center: a hero band plus a single merged timeline where tickets, record changes, maintenance, reboots, and patch scans share one filtered spine. Heavier panels move to a focus drawer, editing happens in place, and /edit deep links still work.

  • ๐Ÿ—‚๏ธ Asset Lists That Show State. Both asset lists gain composite cells: Agent shows reachability and staleness, Patching shows pending/failed over scan age, and Coverage shows warranty over record status. The old narrow columns remain available in the column picker.

  • ๐ŸŽจ Configurable Client-Portal Hero. Choose the client portal's welcome-banner style โ€” a primary shade ramp or a primary-to-secondary gradient โ€” with a live preview and auto-adjusting text contrast.

  • ๐Ÿ“… Consistent Date Pickers Everywhere. Every raw native date input across the app now uses the shared date/time picker, for consistent theming and locale-aware display.

  • โœ… Close-Ticket Resolution Popup. Closing a ticket now prompts for a resolution in a rich-text editor, with an option to suppress close notifications.

  • ๐Ÿ”Ž Searchable Ticket Category Picker. The category selector when logging a ticket is now searchable.

  • โŒจ๏ธ Expanded Keyboard Shortcuts. Page-scope shortcuts, a help dialog, vim-style navigation, quick create, go-to navigation, and a working save shortcut inside drawer forms.

  • ๐Ÿ’ฌ Comment Author Type. Ticket comments now distinguish MSP agent replies from client-portal replies.


๐Ÿ” Stability & Security

  • Enforced seat and license limits on the new team-invitation flow.

  • Made QuickBooks Online sync safer: finalize is blocked when an invoice would fail QBO export, customer auto-provisioning is off by default, and unmappable credits/payments surface as exceptions.

  • Improved Microsoft email sync reliability, and the background job runner now backs off when Temporal is unavailable instead of looping into out-of-memory failures.

  • Closed an authorization bypass in report execution that could let a low-privileged user read protected reports, including tenant-wide billing metrics.

  • Running raw Tactical RMM commands from a workflow now requires an explicit RMM permission, so a workflow can't borrow stored RMM credentials to run arbitrary commands on endpoints.

  • The extension UI is now served with Content-Security-Policy and no-sniff headers.

  • Cleared 194 dependency advisories across every manifest in the repository.


๐Ÿ“Š Dev & Infra

  • Workflow Authoring API. Added draft validate and simulate endpoints plus machine-readable authoring-guide and trigger-event registries, so natural-language and designer authoring verify against real stored events.

  • CI Journey Gate. Added a tier-1 end-to-end journey gate (contractโ†’invoice, emailโ†’ticket, invoiceโ†’payment, portalโ†’ticket, approvalโ†’billing) plus pixel-golden document-render suites, and re-armed unit-test gates.

  • Documentation. Corrected the developer setup guide after a fresh-machine test, added an email-template variable reference, and documented workflow authoring.


๐Ÿ“ฑ Mobile App โ€” v1.4.0 (build 29)

  • ๐Ÿ“ท Inventory (scan-first). A new Inventory section opens on a Today view โ€” what's low, what's arriving, what's in transit, which counts are open โ€” with barcode scanning one tap away. Receive stock (including serialized units), run blind cycle counts, make adjustments, receive purchase-order lines, and accept transfers; unrecognized barcodes can become a new product on the spot.

  • ๐ŸŽฏ Opportunities. Work the sales pipeline from your phone: a Pipeline view and deal detail where the next action is the screen's single primary button. Calling a contact offers to log the call with elapsed minutes prefilled, and follow-ups, losses, and wins all post from the app.

  • ๐Ÿงฐ Field Asset Actions. Scanning a device opens a full asset detail screen โ€” identity, warranty, client, and location โ€” where a tech can link it to a ticket, open a new one, record maintenance, add notes, and see RMM-discovered installed software.

Full Changelog: v1.3.0...v1.4.0