Weekly roundup

September 20, 2026

Week of September 14, 2026

Setting a shop up is now something you can do by describing it. AI Chat will create a department, build its weekly shifts and breaks, add the crew, set holidays and special working hours, and put together a project and the inspection form your crew needs. It reads what you already have, shows you the changes it proposes, and waits for your approval before writing any of them, under the permissions you already hold.

Press Cmd+K, or Ctrl+K on Windows, from anywhere and start typing to find any order, component or route by its name, its number or a tag on it. A few letters from each word is enough, in any order.

Worker class puts Hourly, Salary or Temporary on everyone's profile, and it decides one thing: who is included when hours go to payroll. Agency labour and salaried staff still check into builds, their hours still land on the project, and they stay in Timesheets and in project costs. Timesheets labels anyone whose hours will not reach the export and says why. Everyone starts as Hourly, so nothing moves until you choose otherwise.

Production dashboards gained a Trends tab, which answers whether a finished order is taking fewer hours than it used to. The running average across the run is the line to read, with the hours each stage costs you on a typical order underneath it. The bin gained a search: every tab lists your whole archive, sorts by the date a row was archived, and finds one order among hundreds without you scrolling to it first. And forms you hand to a client or an auditor can carry your own document control header, with your logo, a document number, the revision and an approval block, set up once in Settings.

The rest is Logistics and the phone. Logistics lists show an edit straight away and stop reloading one another, Planning offers the truck only where a phase can ship, and you can send somebody on to their next stage or clear out a location's materials without going back to a desk.

New · AI · Settings · Planning

Set up departments and crews through AI Chat

Ask AI Chat to create a department, configure weekly shifts and breaks, add workers, and organize optional teams. Chat reads the current configuration and shows the proposed changes for approval before applying them.

Setup actions use your existing permissions. Changing a worker's shift within one department preserves their assignments in other departments. Worker creation and team membership changes report which people were updated and which still need attention if a batch stops partway through.

Once the department and crew are ready, continue into route creation through the existing chat flow.

New · Orders · Planning · Build

Find any order, component or route with Cmd+K

Press Cmd+K, or Ctrl+K on Windows, from anywhere in BuildingSwell and start typing. Orders, components and routes come back by name, by number, or by any tag on them, ranked so the thing you meant is first. You don't need whole words: a few letters from each word, in any order, is enough, so "sth rl" finds South Rail Bracket. Type an order number and that order is the top row, not the twelve orders that mention it.

Results appear as you type rather than after it. The palette narrows what it already has on the keystroke itself and remembers what you searched, so backspacing and retyping costs nothing. Arrow keys move, Enter opens, and Cmd/Ctrl+Enter opens in a new tab. With the box empty it offers what you open most, and typing a page name jumps you straight there.

You only ever see what you are allowed to see: the same permissions, shop and project access that govern every other list govern this one, and archived work stays out of the way.

Ask us to turn Global search on for your organisation.

New · Settings · Timesheets · Integrations

Say who belongs in your payroll export

Every person now has a Worker class on their profile: Hourly, Salary, or Temporary. It sits under Status when you add or edit someone, and it decides one thing only, which people are included when hours are sent to your payroll system.

Everyone tracks time the same way whatever their class. They check into builds, their hours land on the project, and they stay in Timesheets and in project costs. Agency labour and salaried staff can be on the floor and counted against the job without their hours going out with the payroll run.

Existing people are all set to Hourly, and so is anyone new, so nothing changes until you choose otherwise. The People list carries a Class column, so you can see the whole roster at a glance.

Timesheets labels anyone whose hours will not reach the export, and says why. A class you do not export reads Not in payroll export, and so does someone who has left, whose hours go out with the off-cycle run instead. Somebody with no employee ID yet reads No employee ID, because their hours have nothing to match against until you add one. People set to inactive read Absences not reported: the hours they log still export, only the days they were scheduled and did not clock in are left out. Hover any label for the detail.

Open any session and it shows the class that person held when they clocked in, so changing someone's class later does not rewrite what their past work says.

Worker class describes how someone is paid and engaged, for your own reporting. It is not an employment or tax classification, and it is separate from the union code, which still carries apprentice, journeyman and lead.

New · Insights

A Trends tab that shows whether orders are getting faster

Your production dashboard has a new Trends tab. It answers one question: is a finished order taking less time than it used to?

The main chart plots the hours booked against each completed order, in the order they closed out, with a running average across the whole run. The average line is the one to read. A single order swings on one bad shift, but the average falling means the crew is getting quicker, and the average flattening means the run has settled.

A Hours Saved per Order figure sits above it. That's how many fewer hours a recent order takes than an early one, comparing the most recent fifth of the run against the earliest fifth so one unusual order doesn't look like a trend. It needs twenty finished orders before it will show you anything, because below that a "fifth" is one or two orders and the number swings wildly.

Underneath, two views of your stages side by side. Hours by Stage shows where the run's time actually went, as a share. Avg Hours per Stage shows what each stage costs you on a typical order, which is a different question and often a different answer: a stage can be a big share of the total simply because every order has one. Click a bar to trace that stage on its own.

The table lists every completed order with its hours, grouped by the order it came in, so a release of ten reads together with its total. Clear the grouping control on the table for the flat list.

It counts finished orders only. An order still on the floor hasn't booked all its hours yet, so including it would look like a sudden speed-up that never happened.

Elsewhere on the dashboard

Hours has a new Crew on Completed Stages table. Every stage finished in the range, and who booked hours to it. Expand a stage to see the crew. It shows hours rather than a count of stages on purpose: a stage is usually two to six people, so the hours are what add up honestly.

Next to it, a Completed, No Hours figure counts the stages that were signed off with nothing booked against them. That's not automatically a problem, since time can be booked to the order instead, but it's the number that tells you whether stages are being ticked without being timed.

Plan vs Actual hides projects that didn't move. A project shows if it booked hours or completed something inside your date range. The figures themselves are unchanged, since planned and spent are whole-budget numbers, but a quiet project no longer pads the list.

The cost code widgets work again. The weekly cost code table and the two cost code charts had been coming up empty. That was a failing request behind the scenes, not missing data, and it's fixed.

With them showing, one more thing was wrong: cost codes have only been recorded since June, so every hour before that was landing in the same Unknown pile as genuinely uncoded work, and the coded share read far worse than reality. Those are now two separate buckets, and the percentage only counts hours that could have carried a code. The union code view is gone entirely, since nobody's sessions carried one, and the duplicate Hours by Cost Code chart is gone too.

Production rate reads properly again. It was measuring against a planned figure that only exists when a route is broken into steps, so it came up empty. It now uses the estimate set on the stage itself. Stages whose estimate is wildly out of step with the time logged against them are left out, so one bad number cannot swing a whole week.

Four KPI cards now click through to the tab that explains them, joining Orders Completed on Plan vs Actual. Variance to estimate has been dropped from the Hours tab, since Plan vs Actual already covers variance properly.

Tables are taller across every tab, and a table grouped by name now sorts in the order you'd expect, so order 9 comes before order 10 instead of after it.

The date filter also gained This Year and Last Year.

New · AI · Forms · Planning

Set up projects and QC forms through AI Chat

You can ask AI Chat to create a project or change its details, then describe the inspection form your crew needs. Chat can build a new form with text answers, checklists, tables, photos, and signatures.

Review the proposed questions before saving the draft, then approve publishing separately when it is ready. Chat uses your existing permissions. Revisions to previously published forms are still managed in the form editor.

New · AI · Settings · Planning

Set department holidays and hours through AI Chat

Ask AI Chat to set holidays, shutdowns, or special working hours for your departments. Review the dates and hours before saving, then have chat check the resulting calendar.

Existing overlapping entries are reported for review, so you can see which departments were updated and which still need attention.

New · Forms · Settings

Put your own document control header on the forms you issue

Forms you hand to a client or an auditor can now carry your document control header: your logo and company name, a document number, the title, the revision, an effective date, and a prepared / reviewed / approved block. It is on the form entry preview, the printed template, and the downloaded PDF.

Set it up once in Settings, Company, Forms, Document control header. A live preview sits beside the form, so you can see the finished document while you build it. Each metadata row and each approval line can be switched on or off and relabelled to match the wording your quality system already uses, and an approval line can either name a person or fill itself in with whoever created or reviewed the entry.

Each form carries its own document number, built from the form's code and the year its revision took effect. It stays the same on every entry made on that form, because it identifies the form itself rather than any one entry. If your quality system already assigns numbers, put the one you use on the form.

The header also carries the entry's own number, so a printed sheet says both which form it is and which filled-in copy you are holding. That number comes from form entry numbering, so you need that switched on to see it.

One form can depart from the company setting. Open a draft form, choose Document control from its menu, and set its own document number, title or revision. The drawer shows what the company default would give for each, and anything you leave blank keeps using it. A live form's document control is frozen: issue a new version to change it, the way a controlled document is meant to change. Turn on Bump revision when a template is republished and publishing a new version advances that form's revision for you.

Leave the header switched off and your forms print exactly as they do today.

Improved · Settings

Find anything you have archived, and put it back

Every tab of the bin now lists your whole archive. Scroll and the rest arrives, however much of it there is. Each tab has a search box that looks through everything you have archived rather than the rows currently on screen, so you can find one order among hundreds without scrolling to it first.

The newest archive is at the top, and the key columns sort. On Orders that is when it was archived, its name, its ID, its project and who archived it. Sorting reorders the whole archive, not just what you can see.

The date under "Archived on" is the date the row was archived. It used to show when the row last changed. Rows you archived before we started recording that date show a dash instead, and they sit at the top of the list.

Teams, people, shifts, departments, stages and categories work this way too. Archived categories are now a plain searchable list with the parent shown beside each one, rather than a tree you have to open.

Improved · Routes · Orders

Tidy a crowded route whiteboard with one click

The route whiteboard has a new Arrange button. Click it and the stages and phases line up left to right in dependency order: each one sits to the right of the work it waits on, parallel branches stack in rows, and anything with no dependencies is set out in a grid underneath. The new positions are saved, so the board looks the same next time you open it.

Routes and orders created through the API or an integration arrive with no positions, so their nodes used to land on top of each other and had to be dragged apart one by one. When nodes overlap, the Arrange button is highlighted to point you at it.

Arrange works on any whiteboard, not only a crowded one. It keeps your top-to-bottom order between branches where it can, and you can still drag any node afterwards.

Improved · Orders · Mobile

Clear out materials that have left a location

Once a material had been stored somewhere, that spot kept listing it forever, even at zero, with no way to tidy it up. You can now clear those out from the Storage tab.

Storage lists every material each location holds, including the ones at zero. At the end of a material's row, the trash button takes it off that location. It only appears when that material is at exactly zero, so nothing on the shelf can be removed by mistake. To clear a whole bin at once, use Remove empty on the location's row, which covers the bin itself and not the locations inside it.

Each row also has Make default, which sets where that material normally lives, and the current default is marked Default. If you remove the default location's entry, the material has no default until you set a new one.

A material stays listed at a location until someone removes it, so a location's page and the Storage tab always agree, and nothing disappears on its own just because it hit zero. When you want a shorter list, the Warehouse tab of a location has a Hide out of stock tick box.

Nothing in your history is deleted, and a removed material shows up again the moment some is added back, whether through receiving, a transfer or Add material.

Hide empty locations on Storage is now a button at the top and works on your phone too. The same goes for other links and options that sit beside a search box, such as Open in Locations settings on a project's Locations tab, which now shows on your phone.

Maintenance · Delivery · Planning

Planning shows the truck only where a phase can ship

The truck icon on a Planning phase used to follow the phase's name in the Rules Engine, while the "Add to delivery" action followed the phase itself. Flagging a template after an order existed showed a truck the row could not act on.

The icon now reads the same flag as the action. To make an existing order's phase deliverable, turn on Delivery phase in that phase's drawer.

Maintenance · Orders · Routes

A component picks up its route's cycle time and duration

Set a component's or a phase's Route on an order and it now shows that route's cycle time and duration, and the stages that come with the route carry their own times too. The order's totals count that work along with everything else. Before, the two fields stayed at 0m once the route was applied, and saving an older component from its drawer, even without touching the Route, could zero it and its stages the same way.

Picking the route as you add the component works the same way. On a route template, clearing a component's route still puts its times back to zero.

Maintenance · Orders

Recording a produced part no longer needs a default location

When you mark parts as produced from an order's Materials & Production tab, Building Swell now works out where the finished part goes: the place the last run of that step put it, the part's default location, or the one location that already holds it. Before, a part with no default location refused to record and the only sign was "Some rows failed". When it still can't tell, the message now names the part so you know which one needs a location.

On the same tab, the Assign at list in Add line indents steps under their stage, so it reads the way the table is grouped.

Add to pick list now asks where the materials are staged when it creates a new list, so the list no longer arrives with staging Not set. Leave it empty and the picker chooses where each line lands when they pick it. When you add to a list that already exists, the same field still sets staging for just those lines.

Creating a pick list from the Pick Lists page no longer fills the staging location in for you when your shop has only one. Staging is where this order's materials go, which changes from job to job, so it is always yours to pick.

Maintenance · Insights

Owner Assigned, QC Form Use and Rework Form Use show their real figures

On the Department OKR Scorecard, Owner Assigned %, QC Form Use % and Rework Form Use % now read the work behind them on every department tab. All three had been showing 0%.

Rework Form Use has a wrinkle worth knowing about. A rework form raised by a trigger, rather than filled in on a stage by hand, doesn't carry a phase of its own, so it never reached the department it belonged to. Those forms now follow the work they were raised against, which means rework already on file shows up on the tab that did the work.

Rework Form Use also counts a different way. It reads as the share of reworked stages that have a form against them, instead of a count of forms, so a stage with three forms on it counts once. A department can no longer come out above 100%.

On the drill-down behind these cards, the Assigned column now sits beside the order's phase and status rather than out at the far right, so you can see who is on a job while you are reading the rest of its row.

Improved · Integrations

A Smartsheet status now belongs to its own row

On a sheet whose rows are the phases and components of a job, each row's status now describes that row. Set a component to In Progress and only that component moves; mark a later phase complete and the earlier ones stay exactly where the sheet says they are. Two phases can be under way at once, two components under one phase can sit at different stages, and a finished phase no longer drags everything above it to complete.

Rows with work nested under them take their state from that work, so their status is written by BuildingSwell rather than read from the sheet. That makes the sheet's own shape the thing that decides which cells you fill in: the bottom rows are yours, the rows above them report.

Because each row stands on its own, the words a status can mean are the same ones you see on a deliverable: To Do, Started, On Hold, or Done, each on its own or in a stage. Map your own wording onto those in the connection's Status section. A status in a stage asks for the department and the stage, and picking the stage fills in its department. Anything still pointing at a phase of the order is left alone and listed in the sync activity, so you can see what to re-map.

A row mapped to Started now reads Started in BuildingSwell even before any work is recorded on it, and its start date is stamped. Deliverables can be started the same way from the progress API.

Moving a row backwards on the sheet now moves it backwards in BuildingSwell. If both sides changed since the last sync, the connection's two-way setting decides which side keeps its status; a pull-only connection always takes the sheet.

Sheets synced as a flat list of orders work exactly as before.

Maintenance · Routes

Edit a stage template straight from the route editor

A stage on the route whiteboard now carries a pencil, and the Edit stage drawer an Edit stage template button. Either one opens the stage itself, with its name, description, capacity and cost code, without leaving the route. Because a stage is a template, the change reaches every route built on it, so the button first shows how many routes that is, and the stage nodes in all of them pick up the new name right away. Orders already out on the floor keep the names they were created with.

If you open a stage before choosing which one it is, the drawer now offers the same picker, so you can choose or create the stage right there instead of finding a bare "New stage" with nothing to do.

Before this, the name on a stage could only be changed by leaving the route, finding the stage under Rules Engine → Stages, and editing it there. A rename made there never reached the routes using the stage.

Maintenance · Orders

Completing a step records the materials it used

When you complete a step that uses materials, Mark used now takes them from the same place the order's Materials & Production tab does: the staging spot they were picked to, the material's default location, or the one location that holds it. If the usage still can't be recorded, the window stays open and says why, and the step shows Usage not recorded until someone records it.

On Materials & Production, Allocate updates the Allocated column straight away and lists any materials the order is now short on. A material that is only partly placed on stages shows the rest as its own order-level row, so the planned figures add up. Archiving an order updates reserved and available figures on Parts right away.

An order's Stage locations tab and a route's Locations tab now list stages in route order, the same order as the order's Completion tab.

On Materials & Production, selecting several materials and choosing Add to pick list adds all of them. On a pick list, when a pick can't be recorded, the message says what went wrong and the quantity you typed stays in place so you can try again.

Maintenance · Insights

Active design packages lists only the design work still open

On the Department OKR Scorecard, the Design tab's Active Design Packages card and the table under it now count only the design phases a team still has to work: the ones to do, in progress, or in rework. A package whose design is finished drops out, even while the order runs on through fabrication, and a package sitting in waiting stays out until somebody picks it up.

Until now the list counted every design phase on an order that hadn't been delivered yet, so design that was already done sat in the count beside live work.

Each row names the order and the route it runs on, so a package that runs design on more than one route reads as two pieces of work instead of a repeated line. The table shows how far each design phase has got and how many days past due it is, most overdue first.

Design Ready %, Design Phase OTD % and Form Pass Rate % still read every design phase on an open package, finished ones included, so the rates keep their meaning. Click any of the four cards to see the records behind the number.

Maintenance · Documents · Orders · Mobile

Pages that showed an error now open

A document's Linked to tab, the BOM rollup, the order link on a BOM line, the inventory picker and a pick list's orders all open normally. Each of them could show Something went wrong on this page in place of the view.

Three things behave on a phone that did not. Logistics in Schedule view pans sideways, so the delivery list and the timeline beside it are both reachable. The menu button on a table row opens its menu in front of the drawer it sits in rather than behind it. And the full-screen messages (not found, server unavailable, an expired invitation) fit the screen instead of running off the edge.

Table view and every desktop layout are unchanged. The Logistics view you were last in is remembered per person, so if you use Schedule on a laptop you land in it on a phone too.

Maintenance · Settings

The user list shows each person once, however far you scroll

Settings → Users now lists everyone exactly once, in name order, and keeps that order as you scroll to the end of a long roster. Searching narrows the list to the people whose name or email matches what you typed.

Before this, scrolling past the first screenful could repeat someone who was already listed while leaving someone else out, and those repeated rows stayed up for a moment after you started typing in the search box.

Every long list in the app loads a screenful at a time the same way, so they all hold their order as you scroll now.

Maintenance · Insights

Completions count the item you finished, not the package it came in

Completions used to count the whole order. If an order holds ten items and your crew finished seven of them, that read as nothing finished, because the order only counts once the last item lands. A week of real work could show a two.

Completions now count each thing for the work it holds. Where an order is broken into individual pieces, each piece counts on its own. Where an order carries work directly as well, that work counts too, so an order holding three of its own steps plus one broken-out piece shows up as both. Phases work the same way. Nothing about your setup has to change for this.

The same page now counts stages completed rather than tasks. A task count moved with how many line items somebody put in a stage, so a stage built from twenty small steps buried one built from a single sign-off, and the number said more about how the route was written than about what got done. A stage is the thing your team signs off, so that's what gets counted.

Completed Stages opens up. Start at a phase, open a stage, and you get the individual items that stage was finished on, each with its date, its crew and its hours. The completions list does the same from the other direction: project, then order, then the items inside it, with each item's own estimate against its actual hours.

Exports follow what you see. Exporting a grouped table used to give you a flat list with no sign of which phase, stage or item each row belonged to. Now every row carries its full path, and the whole list comes out, not just the parts you had expanded.

The date filter gained Last Week, meaning the previous Monday through Sunday. That's a fixed week you can compare against, rather than the last seven days counting back from today.

Variance to estimate moved from Completions over to Hours. Completions is about how much you finished, and hours belong with the rest of the hours.

Maintenance · Integrations

Ask the API for exactly the fields you want

When an integration asks the API for specific fields, it now gets those fields and nothing else. Ask for a record's ID, name and identifier, and those three come back. An integration that doesn't name any fields still gets whole records, the same as before.

The fields to return, sort by, or group by can be listed all at once, separated by commas, or one at a time. Both ways mean the same thing. Values the app works out for a record, such as a deliverable's alert type, can be asked for alongside the fields it stores.

Filtering on several values works the same way: list them all at once, or one at a time. Listing them one at a time is how to match a value that has a comma in it.

Maintenance · Build · Mobile

Send people to their next stage from a phone

Finish a stage on a phone and the app asks where the crew goes next. Tapping Select stage now opens the list of stages for the order you picked, so the whole reassignment can be done from the phone.

Until now that list stayed hidden behind the window on a phone, so the last step had to wait for a tablet or a desktop.

The picker works the same way it does on a bigger screen. Search by stage name or ID, and stages that are already done are greyed out.

The same thing was happening to pickers and menus opened from inside any window or side panel on a phone: attaching a document, starting a form, choosing which stages to follow, and the column and settings menus on a table inside a panel. Those all open on top now too.

Maintenance · Settings · Integrations

API keys follow the permissions you can grant

When you create or edit an API key, its permissions must stay within your own access, including shop and project restrictions. Managing keys requires the corresponding API key permission in your role.

Roles already granted API Keys access can now use those permissions without being organization admins. Use Use my permissions in the key editor to copy your existing restrictions before removing actions the key does not need.

Order notes also follow your access to the order. Viewing a note requires permission to view its order, and adding, editing, or deleting a note requires permission to edit that order.

Notes remain readable in a read-only editor when you cannot edit their order.

Maintenance · Delivery

Lists show changes right away

Opening or refreshing a list right after someone saves a change now shows that change. This includes delivery groups on the Logistics board.

Maintenance · Delivery

Logistics lists stop reloading each other

On the Logistics board, changing the filters on one list now reloads only that list. The other list keeps what it's showing.