September 2026 Changelog
Covering releases from 1 to 30 September 2026. First published on 14 September and extended to cover the whole month.
September was an integrations and approvals month. Most of the work went into failures that used to happen quietly: a PSA push that reported success while losing its structure, a company search that ignored what you typed, an approval level that parked a project in nobody’s queue, and an approval left waiting on someone who no longer has an account.
Three larger changes landed this month. The redesigned Settings became the default, the unified approval workflow finished rolling out, and most project pages moved onto one shared layout.
The unified approval workflow is on for every account
On 9 September the unified approval workflow became the default for every account, which completes the account-by-account rollout described in the Summer 2026 update. Nothing is required from you.
Two fixes came with it. Approving a step that was created before your account moved to the unified workflow no longer fails with an error. And on a project priced in a currency other than your account default, approval triggers now convert only money amounts, such as contract revenue or contract cost, into the default currency. Measures that are not money, such as total effort or business unit, were being converted too, so a trigger set to a business unit could not match on those projects.
Approvals no longer stall on a misconfigured level or a departed approver
Three ways a project could end up waiting forever are fixed.
On accounts using the unified approval workflow, an approval level with no approver who covers the project’s line of business is now skipped, and the workflow moves to the next level that applies or approves the project if none do. Previously that level was still selected and the step was built with no approvers at all, so it sat in nobody’s queue and could never be completed.
Archiving a user who was set up as a service approver or an approval-level approver now actually removes those assignments. That cleanup had silently never run, so a line of business could be left gated to a user who no longer existed, which meant nobody at all, site admins included, could approve services in that line.
If a user is removed while an approval is already pending on them, that requirement is now downgraded so another approver can complete the step, instead of the step waiting permanently on a signature that can never come.
Settings V2 is now the default
Since 8 September the redesigned Settings pages are the default. Some accounts still use the previous design. Until the previous design is retired, a user with the User Preferences permission at Manage level can switch back with the Settings V2 toggle under User Profile > Preferences, and an administrator can switch the account back under Settings > Account > Account Preferences > Features. The account choice applies to everyone who has not set their own.
Edit pages in Settings now keep their tabs inside the page card, under the title, and Cancel and Save stay in the header as you move between tabs. This applies to Lines of Business, Surveys, Rate Tables, Webhook Subscriptions, Clients, Business Units, Vendors and Document Templates. Save is hidden on tabs that are lists. Adding or editing a row on a list tab, such as an approver on a line of business, a resource rate, a survey lookup or calculation, or a client contact, opens a panel on the right with its own Cancel and Save. A client’s contacts, and on accounts with Terms and Conditions its Terms & Conditions, are now tabs of the client’s edit page rather than separate pages.
The Project Governance form under Settings > Governance shows your governance user defined fields again and saves them. Choosing Filter by Line of Business now offers a working Select Category list, where the form previously showed a disabled box.
Project pages share one layout
Most project pages now use the same layout as Settings: the page content sits in a bordered card on a grey background, with the title and the page’s buttons in the card header. This covers Project Overview, Solution Summary and Responsibilities, Contacts, Locations, Notes, Resources, Travel and Expenses, Vendor Quotes, Governance, Payment Credits and the pricing pages. Selecting rows in a list shows a small “N Selected” control with a delete button.
A few things moved. Project Overview no longer has a Back button. On Payment Credits the total is a line under the table instead of a row inside it, and it appears only once a credit exists. Travel and Expenses and Vendor Quotes show their subtotal right-aligned under the table, and the Vendor Quotes subtotal now uses the project’s currency symbol. On Professional Service Pricing, the available tabs (By LOB, By Phase, By Service, By Location) sit under the header.
Some pages also got fixes along the way. Solution Summary and Responsibilities reloads the project each time you open it, so it no longer shows stale text after an edit made elsewhere. Project Overview shows the current service locations after you add or remove them on the Locations page. On the project Governance page, a failed delete or reorder now shows the reason instead of looking like it worked, and a project with no governance items no longer shows an error.
The Merge Data page is rebuilt
View Merge Fields and View Merge Fields V2, in the gear menu beside the project name, now open a searchable page with a V1/V2 switch at the top right. Type at least two characters to search keys and values. Expand all and Collapse all open or close the whole tree, and clicking a value copies its template path.
Opening the page takes the Merge Data permission at View level, and users without it do not see the menu items. If someone who writes templates on your account uses a role without this permission, add View for Merge Data to that role under Settings > Users & Groups > Roles.
Cost and profit in V2 merge data
V2 merge data now carries cost and profit beside the revenue figures, so a template no longer has to work out professional services cost by subtraction. Subtraction gave the wrong answer on projects with hardware, with a cost-side pricing adjustment, or with expenses outside every line of business. Existing fields keep their values.
project_pricing.professional_servicesgainscost,cost_adjustmentandprofit, which matchrevenuein whether hardware is included, andps_revenue,ps_costandps_profit, which never include hardware.project_pricing.project_governanceandproject_pricing.travel_and_expensegainprofit, on the section and on each item. Governance items also gainhourly_rateandhourly_cost.- Resource rows in
project_pricing.resourcesgaincostandprofit. The total row gainsservice_cost,pm_cost,expense_cost,material_cost,cost_adjustment,total_cost,total_profit, and a blendedhourly_rateandhourly_costfor labor.
Push to PSA opens faster, and says when a list is not ready
Push to PSA no longer calls your PSA tool on every page load. Boards, statuses, priorities, templates and template tickets now come from a cache that refreshes daily, so the form renders immediately instead of waiting on ConnectWise, HaloPSA or Autotask to answer.
The lists that cannot be cached, because they depend on what you just picked or typed, now load in the browser after the page has already drawn: company search, available projects, project phases and project tickets. Company search also goes through the ScopeStack API directly, which matters if your PSA instance restricts access by IP address.
When a cached list has not been populated yet, the form now says so rather than showing an empty dropdown with no explanation. Later in the month that message was split in two, so a list that was empty when it was last refreshed says so, with the refresh date, instead of telling you to wait for a cache that will not change.
Bulk approving catalog services tells you what you can approve
On the Professional Services and Managed Services catalog pages under Settings > Content, selecting several pending services and clicking Approve now shows which of them you can approve and which you cannot, listed by name, and submits only the approvable ones. Previously the whole batch went in together and came back with a single unexplained failure.
A refused approval now shows the reason the server gave rather than a generic message, and a batch where a later service failed is no longer reported as a complete success. The rule for who may approve what has not changed.
Save as Standard asks for what a standard requires
Save as Standard in the current project editor failed on accounts with a required service-level user defined field, such as a delivery type, because the editor has nowhere to fill one in. It now takes each required value from the standard or the service where one exists, then from the field’s default. Where there is no default, the Save as Standard dialog lists the missing fields under “Standard services require the following:”, and Save stays disabled until each has a value. Subservices now take the parent’s values instead of being dropped, a failed save shows the reason, and Update Existing Standard no longer reports success when the update failed.
Preferred rate table and currency are back on the user profile
Preferred Rate Table and Preferred Currency are back under Start Page on User Profile > Personal Info and on a user’s edit page in Settings, when the account has more than one to choose from. A preferred rate table set before these fields were removed from the screen kept pre-selecting the rate table for that user’s new projects, and a preferred currency kept setting the currency their account totals display in, with no way to see or clear either. Choose Use account default to clear one.
Guided Project Creation is off for now
The multi-step guided flow behind Create New Project is currently switched off for every account, so Create New Project opens the standard project form. The Guided Project Creation toggle under Settings > Account > Account Preferences has no effect while it is off.
A confirmation before making a user a service account
Converting a user to a service account now asks first. Convert to Service User in the Users list gear menu opens a “Convert to Service Account” dialog, and choosing Service on a user’s edit form opens “Change to Service Account”. Both explain that a service account can use the API but cannot sign in to the application. On the edit form, the user type stays as it was until you click Continue.
Early access
- Push to PSA V2. On the redesigned Push to PSA screen, starting a new push now pre-fills the Company field with the PSA company already mapped to the project’s client, so most pushes need no typing there. A separate fix restores the Submit and Resubmit buttons, which were not appearing for any user regardless of their PSA permissions. Later in the month, creating a new ConnectWise project without choosing a project template no longer fails partway through, after the ConnectWise project had already been created without its phases or tickets. Resubmitting a push that was set to create a new project, with no CRM opportunity behind it, now creates a new project in the PSA rather than reusing the one recorded from the earlier attempt. If the earlier attempt already created a project, it stays in the PSA, so check for it before resubmitting or you can end up with two.
- Duplicate Project. Duplication now honors more of what you choose. Project expenses can be included; contacts, attachments and notes are now actually copied when selected, where previously the checkboxes had no effect; and the client, payment term, rate table, business unit, sales executive, presales engineer and CRM opportunity you pick for the new project are applied instead of silently inheriting the original’s. Duplication is available to a limited set of accounts while we finish it.
- Site Navigation V2. Users who can reach more than one account can now switch accounts from the sidebar’s user menu, with a searchable list and a marker on the account you are in. A crash that blanked the page when opening certain slide-out panels under the new navigation is also fixed. Later in the month the user menu gained Ask Support, reloading or opening a link to most project pages keeps the new navigation instead of dropping back to the old one, and the sidebar remembers whether you collapsed it.
- Service Hours Feedback. Compares the hours you estimate with the hours your team records in your PSA. On accounts that push projects to ConnectWise, Autotask or HaloPSA, Settings > Content > Professional Services gains a Review tab listing services whose delivered hours consistently run over or under their estimate, with the hours involved and a confidence figure. A Project Review page lists delivered projects and compares estimated and actual hours for each service. Figures are recalculated weekly from time recorded against projects pushed to your PSA. An administrator can switch it on under Settings > Account > Account Preferences > Features.
- Adaptive Governance. A governance item can carry Minimum Hours, a floor its calculated hours never go below. A percentage-based item can also carry Level of Effort Adjustments: an ordered list of rules on the hours in scope and the project’s pricing model, where the first rule that matches replaces the base percentage, and a rule at 0% leaves the item off that project. Switch it on under Features, as above.
- Approved Services Management. When someone edits a catalog service and the edit is waiting for approval, projects, surveys and blueprints keep offering the last approved version instead of hiding the service, and Refresh on a project service copies from the approved version when there is one. A service that has never been approved is left out of those lists. Switch it on for the whole account under Settings > Account > Account Preferences > Features, rather than only for yourself: switched on for one user, the pages show approved versions while services added to projects, Refresh and applied surveys still use the live catalog.
- Release Project Blueprints V2. Fixes to the new blueprint editor. Blueprints apply with the catalog’s hours and quantities wherever the blueprint did not set its own, where they previously applied at zero. A professional services blueprint applies its full set of services under the right phases. Applying a blueprint no longer blanks the project’s executive summary and solution summary, and it now applies the blueprint’s rate table and payment term. Adding or removing services on a blueprint made in the older editor converts it instead of failing, and the services list no longer shows deleted or out-of-date services after a save. With Approved Services Management also on, the service picker lists approved versions and marks a blueprint service that has none as “Not in approved catalog”.
For integrators
- A public API v2 reference. ScopeStack now publishes a curated v2 reference at
/docs/v2/swagger, alongside the v1 document that has always been there, and the API docs page lets you choose between them. It covers the project and catalog resources ScopeStack supports for third-party integration and leaves out the endpoints that exist only for the application itself. Until now there was no published way to tell which v2 endpoints were meant for you to build against. - Approved services in the v2 reference.
GET /v2/approved-servicesandGET /v2/approved-subservicesare now documented, and return the most recently approved version of each service./v2/approved-servicesaccepts the same filters as/v2/services, and/v2/approved-subservicesacceptsfilter[service]. Separately,GET /v2/services?filter[ids]=returned a server error and now filters. - Download project documents over MCP. An AI assistant connected to your account through the ScopeStack MCP can now list and download a project’s generated documents directly. Since 16 September the download link is returned only when the assistant asks for
response_format: "detailed", andscopestack_list_project_itemshas adocumentstype for assistants whose client cannot read MCP resources. - Estimate accuracy over MCP. New MCP tools return a project’s delivery rollup and estimate-versus-actual data, for post-mortem and reporting use.
- Project dates over MCP. Project results returned to an assistant now include
submitted_atandapproved_at, and project searches acceptcreated_after,created_before,approved_afterandapproved_before.approved_atis set only when the approval workflow completes, so it is empty on a project whose status was set directly. - Service approvers can be read with their line of business.
GETon the service-approvers resource with?include=line-of-businessreturned a server error; the relationship was mapped incorrectly. It now returns the line of business. - Webhook payloads now carry the right content type. The
Content-Typeheader on outgoing webhook deliveries was misspelled internally, so payloads went out asapplication/x-www-form-urlencodedrather thanapplication/vnd.api+json. Receivers that parse JSON based on the content type may have been falling back to a raw body. It is now correct on every delivery. - Multiple subscriptions to the same event now deliver independently. If an account had more than one webhook subscription for the same event type, a duplicate check scoped too broadly could stop one of them receiving deliveries. Each subscription is now tracked separately.
- Fewer server errors.
?include=resourceon project resources and?include=roleson users now return data,GET /blueprints/:id/servicesno longer fails on its default state filter, and?include=works on v1 line of business approvals. The integrated products and project download types endpoints return 401 rather than 500 on an expired token. Setting a computed field such ascustom-hourson a v2 project service returns 400, and a project governancerateof 10 or more returns a validation error, where both returned 500. - Removed teammates in API results. V2 merge data returned by the API, and the
collaborator.idandteam.idproject filters, no longer include teammates who were removed from a project. A removed teammate who edits the project again is restored. - Creating a line of business no longer needs an account relationship. The v1 and v2 create calls now assign your account.
- The account
psa?attribute. On v1 and v2 accounts,psa?now means the account has a PSA integration that is switched on, not merely a connection to a tool that can act as a PSA.
Fixes
- Document content in phase order. On documents generated from a V2 template, service-level content such as deliverables and out-of-scope language could appear out of order, with a short phase spliced into the middle of an earlier one. Service ordering is tracked per phase, and the document query now accounts for that, so generated documents follow the order shown in the project editor.
- Phase reordering no longer reports a save that did not happen. In the project services editor, a user without permission to manage phases could drag a phase into a new order and see a success message, while the change was rejected and reverted on reload. The drag handle is now disabled for those users, and a genuine failure to save a reorder, rename or delete now shows the reason the server gave. A failed reorder also reloads the phase list.
- Project creation wizard. The step tracker no longer shows a duplicated Project step, and its progress fill lands on the current step instead of overshooting. Its grey background no longer follows you onto the next page you visit.
- Duplicating a project with an unassigned subservice. Duplication failed outright if any subservice had no resource assigned, showing “Could not save project.” with nothing after it. It now completes and leaves the resource unset on the copy, matching the original.
- ConnectWise company sync now applies its filters. The recurring sync that pulls ConnectWise companies in as clients, and the company search on the PSA push form, were both sending their filter conditions in a form ConnectWise ignored, so every call fetched the entire company list regardless of the search term or the recently-updated window. Both now filter as intended, which should noticeably reduce sync volume on larger ConnectWise accounts. A timezone error in the recently-updated window is fixed alongside it.
- Autotask company search. Text typed into the company picker was dropped before the request reached Autotask, so every active company came back no matter what you searched for. It now filters on what you type.
- HaloPSA milestones are no longer lost silently. If HaloPSA failed to create a project’s milestones during a push, ScopeStack still reported success, leaving a flat project in HaloPSA with no phase structure and no sign anything had gone wrong. A push now re-reads the project afterwards and reports an error if the phases did not take.
- HaloPSA project templates. This picker filtered on a fixed ticket-type id, so a HaloPSA instance that numbers its project type differently saw an empty picker, and one with several project types saw only a subset. Templates are now classified using each instance’s own ticket-type configuration.
- HaloPSA lists past the first 50 records. HaloPSA returns only its first page unless asked otherwise, and gives no indication a list was cut short. Company pickers, a project’s existing tickets, and available projects were all capped at 50. All three now fetch additional pages.
- Salesforce and Dynamics connections report a dead authorization. When the OAuth grant behind a Salesforce or Microsoft Dynamics connection is revoked or expires, the connection now moves into an error state on the next sync, and records the reason. Previously it kept reporting Connected while every scheduled sync failed in the background. Re-enabling a disabled Dynamics connection also re-checks the stored credential rather than trusting it.
- An approver added to a level mid-flight. On accounts using the unified approval workflow, adding an approver to an approval level after a step already existed could leave that step permanently incompletable. Completion no longer requires an individual signature from a newly configured approver who was not included on the existing step.
- Push to PSA appears only when PSA is switched on. An account with a PSA connection whose PSA option was never switched on was offered Push To PSA, which led to a form of empty dropdowns. The button now appears only when PSA is switched on for the connection under Settings > Connected Apps. A project that was already pushed keeps its PSA tab, which explains that PSA is off and shows the project it was pushed to.
- Failed ConnectWise pushes leave a trace. A push that failed partway, timed out or got an unreadable error back could leave nothing in the integration log. A failed push now shows “Could not create PSA project.” with the reason on the project’s PSA page and adds a line to the integration log, and reads from ConnectWise are logged too, with the number of records returned.
- ConnectWise product search. A search term containing an accented character, an en dash or a percent sign returned an error. It now searches.
- Scheduled CRM and PSA syncs follow the connection’s settings. Scheduled opportunity syncs now run only for connections with the CRM option switched on, and client syncs from a PSA only for connections with the PSA option switched on. A connection used only for products is no longer swept.
- Plan Settings keep your choices. A billing subscription change reset the Surveys, Approval Workflow and Partner Services toggles under Settings > Account > Account Preferences to the plan’s defaults, so an account that had turned Approval Workflow off got it back. Choices you have made are now kept.
- Account Preferences save what you set. The Project Resource from Resource Rates toggle never actually saved, and saving that page could clear other stored account settings. Both are fixed.
- Account logo upload. Uploading an account logo failed. It works again.
- Adding a line of business. Saving a new line of business on the redesigned Lines of Business page returned “account - must exist”. It now saves.
- Survey editor. Adding, editing and reordering questions and sections in a survey now saves, and the survey’s Thank You message loads and saves.
- Settings forms show why a save failed. Failed saves on the Phase, Project Governance and User Defined Field forms now show the reason, where they used to do nothing. Creating a phase no longer fails, the lists refresh after you add, edit, archive, restore, delete or reorder an item, and reopening an edit form shows what you saved. A governance item allocated by category now requires the category, and a user defined field name may contain only letters, numbers and underscores.
- New rate table on a single-currency account. Creating a rate table could fail on an account with one currency, because the form sent no currency. The form now waits for the currency, and a rate table created without one takes the account default.
- Merge tags in the rich text editor. The editor could rewrite a tag such as
{{project.printed_on.to_short_date}}into a form that no longer worked, when a link or formatting covered part of the tag or when the tag contained an underscore. One broken tag in a text block could stop merge data loading for every project on the account. Tags are now saved exactly as typed, and formatting that covers only part of a tag is removed. - Expenses with no phase. A travel or expense line with no phase is spread across phases by each phase’s share of effort. The share belonging to services with no phase was dropped from cost, revenue and contract totals. It is now counted.
- Governance in the Project Pricing spreadsheet. The Pricing by Service block on the Professional Services worksheet now includes governance items aligned to a service category, with their revenue, cost and profit.
- Customize Table on the projects list. The Customize Table panel now counts the width of the column you are adding against the 12-space limit, so you can no longer pick columns that run past it. Reordering columns no longer drops unchecked columns from the saved view.
- Opening a project from another account. A link to a project in another account you belong to showed an error page. It now takes you to your projects list and tells you which account the project is in and how to switch.
- Adding a user whose email differs only in case. Adding an existing ScopeStack user by an email typed in different capitals or with extra spaces failed with a request for your password. It now adds them, and re-saving a user’s own email in different capitals is no longer treated as an email change.
- Adding standards to a project. On a project’s Add Standards page, a service that failed to apply used to send you back to the editor with a short message, and the reason was lost. Each service now applies on its own. If any fail, you stay on the page with a list of the services that could not be added and why, services already added drop out of the selection so a retry cannot add them twice, and a Go to project button takes you on when you are done.
- Edit Team search. Searching the Available Users list from a later page showed an empty page. Searching now returns to the first page.
Getting Help
Have questions about any of these? Our Support Team is here to help.
📧 support@scopestack.io 📚 Visit our Help Center
New to ScopeStack?
ScopeStack automates scoping, pricing, and SOW generation for IT services teams. See how it fits your process.