-
Notifications
You must be signed in to change notification settings - Fork 15
Bulk Actions
Some jobs are not one ticket at a time. Forty auto-generated alerts need closing, a departing analyst's queue needs reassigning, a morning's worth of misrouted email needs moving to the right department.
The FreeITSM inbox lets you select as many tickets as you like and act on all of them at once β using the same Ctrl and Shift keys you already use in Outlook, File Explorer and every mail client you've ever touched.
There are no checkboxes. A checkbox column would cost space on every row, forever, to serve the occasional case β and it trains you to reach for the mouse when the keyboard is quicker.
| Do this | And you get |
|---|---|
| Click a ticket | Just that one selected, opened in the reading pane β exactly as before |
| Ctrl+click | Adds that ticket to the selection, or removes it if it was already in. Everything else stays as it was |
| Shift+click | Selects the whole block from where you last plain-clicked, down (or up) to where you just clicked |
| Ctrl+Shift+click | Adds a whole block without throwing away what you had already picked |
π‘ Plain click always starts again. Once you've built up a selection, an ordinary click with no keys held clears the lot and leaves you with just the ticket you clicked. That's your escape hatch if a selection gets away from you.
Shift measures from the last ticket you plain-clicked β the anchor β not from the last row you happened to touch. So if you click ticket 3, Shift+click ticket 9, then decide that's too many and Shift+click ticket 6, you get 3 to 6. The block shrinks. It doesn't leave you stuck with 3 to 9 and force you to start over.
Ctrl+click moves the anchor to itself, so a Ctrl+click followed by a Shift+click measures from the ticket you Ctrl+clicked.
On a Mac, β does the same job as Ctrl.
You never have to touch the mouse:
| Key | Does |
|---|---|
| β / β | Move to the next ticket and select it (opening it, like a click) |
| Shift + β / β | Extend the block from the anchor |
| Ctrl + β / β | Move the cursor up and down without changing what's selected |
| Space | Add or remove the ticket the cursor is sitting on |
| Ctrl + A | Select every ticket currently listed |
| Escape | Clear the selection |
Ctrl+arrows plus Space is the keyboard's Ctrl+click β it's how you build a scattered selection of the 2nd, 7th and 15th ticket without a mouse. The cursor is drawn as an outline rather than a fill, so you can always tell "the cursor is here" apart from "this one is chosen".
Typing in the search box, a reply, or any dialog? None of these shortcuts fire β the inbox only listens when you're actually working the list.
Right-click any selected ticket and the usual menu appears, but now headed "5 tickets selected" and applying to all of them:
- Set status β close forty alerts in two clicks
- Set priority
- Set department β the misrouted-email fix
- Set type
- Assign to β hand a queue over to a colleague
β οΈ Right-clicking a ticket that is not in your selection throws the selection away and targets just that ticket. This is deliberate, and it's how Outlook behaves β it means you can never act on a set you thought you'd moved on from. If you meant to act on the group, right-click one of the highlighted ones.
Dragging any selected ticket drags the whole selection. Drop them on a department, an analyst, a status folder, or on Trash. While you drag you'll see a small stack of pages with a count on it, so it's obvious you're carrying twelve tickets and not the one under the pointer.
Whichever on-screen surface you've chosen (see below) carries Assign, Status, Priority, Department and Delete buttons, for when you'd rather not right-click.
Delete asks first, naming the count β "Move 12 tickets to the trash?" β and it's the same soft delete as deleting one ticket, so everything lands in Trash and can be restored. Dragging onto Trash does the same thing without the extra prompt, since dragging to a bin is already a deliberate act.
When you select several tickets, the reading pane can't show a single ticket any more. There's no one right answer to what should happen, so it's your choice β set it in the account menu β Preferences, under Selecting several tickets.
The reading pane becomes a list of exactly what you've picked β reference and subject for each β with the bulk actions underneath. What you're about to act on is on screen, and the actions are findable without knowing to right-click.
The reading pane carries on showing the ticket you first opened, with an amber strip across the top reminding you that an action will apply to all of them. Good if you want to read one while collecting others; the warning is there because a pane showing one ticket while an action hits five is exactly the mistake worth flagging.
A compact strip appears directly above the ticket list with the count and the actions, keeping them next to the rows they affect. The reading pane is left alone.
All three offer the same actions β only the position changes. Switch whenever you like; it applies the next time you open the inbox.
- Progress is shown while it runs. A large selection is applied in batches, and the surface counts up ("Setting status β 50/120") so a long run doesn't look like a hang.
- One failure doesn't abandon the rest. If a ticket can't be changed β someone else deleted it, say β the others still apply and you're told exactly how many failed. A partial run is never reported as a success.
- Every ticket is audited individually, with its own real previous value. A bulk change leaves the same trail as making each change by hand, so the ticket history doesn't become vaguer just because you were efficient.
- Everything else still happens. SLA clocks, notification emails, CSAT and Workflows triggers all behave exactly as they do when you change one ticket.
- Selecting is per-view. Changing folder or refreshing clears tickets that are no longer listed out of the selection β acting on a ticket you can't see is worse than losing it from the set.
- Desktop only. Phones and tablets have no Ctrl or Shift key, so multi-select doesn't apply there. Nothing changes for touch users β tapping a ticket opens it exactly as it always did. See Mobile-Friendly.
- The main inbox list. The pop-out full-screen ticket view doesn't have it.
- Up to 100 tickets per batch are sent at a time (larger selections are automatically split), which also caps how much one mistaken click can do.
- Ticket subject is not bulk-editable β deliberately. Fields that are meaningful per ticket shouldn't be set fifty at a time.
- Tickets β the inbox this lives in
- Bulk Actions β Developer Guide β how it works under the hood
- Canned responses β the other half of the day-to-day speed-ups
- Linking tickets β connecting a ticket to problems, changes and other tickets
FreeITSM β an open-source IT Service Management platform Β· github.com/edmozley/freeitsm Β· MIT licence
- Installation
- β° Scheduled tasks (cron jobs)
- Architecture
- AI Providers
- Internationalisation (i18n)
- Timezones & Time Handling
- Theming & Dark Mode
- β¨οΈ Command palette (βK)
- π Searching inside tickets
- π Attached documents
- MobileβFriendly
-
Security
- Layer 1 β which modules you can enter
- β³ π§© Module Access Control
- β³ π οΈ Module Access β Developer Guide
- Layer 2 β what you can administer
- β³ π Roles & Permissions
- β³ π οΈ Roles β Developer Guide
- β³ π€ Why capabilities are constants
- Layer 3 β the System module
- β³ π Admin Access Control
- Hardening
- β³ π Security review response 2026-08
- β³ π‘οΈ Security hardening 2026-08
- β³ π οΈ Security hardening 2026-08 β Developer Guide
- β³ π‘οΈ Round three β plain English
- β³ π οΈ Round three β Developer Guide
- Single Sign-On (SSO)
- ποΈ LDAP & Active Directory
- Browser Extension
- API Reference
-
π REST API β how it works
- β³ π« REST API: Tickets
- β³ π» REST API: Assets
- β³ π΄ REST API: Problems
- β³ π REST API: Changes
- β³ π REST API: Knowledge
- β³ β REST API: Tasks
- β³ ποΈ REST API: CMDB
- β³ π REST API: Contracts
- β³ ποΈ REST API: Calendar
- β³ πΏ REST API: Software
- β³ π¦ REST API: Service Status
- β³ βοΈ REST API: Morning Checks
- β³ π REST API: Forms
- β³ βοΈ REST API: Workflow
- β³ πΊοΈ REST API: Network Mapper
- β³ π§ Using the API docs page
- β³ π OpenAPI specification
- β³ β OpenAPI: kept correct
- β³ π οΈ Maintaining the catalogue
- Watchtower
-
Tickets
- β³ Mailbox Authentication
- β³ π€ Email send log
- β³ Basic IMAP mailboxes
- β³ Email rendering & images
- β³ SLA Management
- β³ WhatsApp channel
- β³ π¬ Web chat channel
- β³ π£ Slack channel
- β³ π Linking tickets
- β³ ποΈ Canned responses
- β³ βοΈ Limiting replies to particular senders
- β³ βοΈ Email signatures
- β³ π The public web address
- β³ π Raising a ticket for someone else
- β³ π Merging tickets
- β³ β Splitting tickets
- β³ β Selecting several tickets
- β³ π οΈ Snoozing tickets β Developer Guide
- β³ π₯ Collision detection
- β³ β±οΈ Time tracking
- Problem Management
- Tasks
- Assets
- Knowledge
- Change Management
- Calendar
- Morning Checks
- Reporting
- Software
- Forms
- Contracts
- Service Status
- π Notifications
- π¨ War Room
- Self-Service Portal
- LMS
- Process Mapper
- CMDB
- Network Mapper
- Workflows
- Issue trackers (Jira, Azure DevOps)
- System
-
Overview
- β³ π Progress tracker
- β³ Concepts & vocabulary
- β³ Email routing & mailboxes
- β³ Settings: global vs per-company
- β³ Users & self-service
- β³ Staff cross-company access
- β³ Worked examples
- β³ Pitfalls & gotchas
- β³ Scope: what it's for
- β³ π οΈ Developer Guide (make a module multi-company)
- β³ ποΈ Case study: CMDB (a linked graph)
- β³ π§ͺ Test harness (prove it's isolated)