Ticketing
Breeze includes a built-in ticketing system designed for MSP technician workflows. Tickets arrive from the customer portal, from alerts, from technicians creating them by hand, and through the API – and they all land in one queue. Open Tickets from the left sidebar to start working.
Every ticket gets a number in the form T-YYYY-NNNN (for example T-2026-0042), which appears throughout the dashboard and is the easiest way to reference a ticket with your team or a customer.
The Queue
Section titled “The Queue”The Tickets page is a split-pane workspace: the ticket list on the left, and a workbench for the selected ticket on the right. Selecting a ticket in the list opens it instantly in the workbench – no page reloads. On narrower screens, selecting a ticket opens its full page instead.
Across the top, view tabs slice the queue:
| Tab | Shows |
|---|---|
| My tickets | Open tickets assigned to you |
| Unassigned | Open tickets nobody owns yet |
| All open | Every open ticket you can see |
| Breaching soon | Open tickets whose SLA is at risk or already breached |
| Closed | Resolved and closed tickets, newest first |
| Archived | Deleted tickets, with a Restore action – only visible to Partner Admins and Org Admins (see Deleting and Restoring Tickets) |
Below the tabs, a filter bar narrows any view by organization, priority, category, and assignee, and a search box matches against ticket subjects. Each row shows the ticket number, subject, status, priority, and an SLA chip when the clock is running low.
Site-scoped technicians
Section titled “Site-scoped technicians”Organization users restricted to specific sites only see tickets whose device belongs to one of their sites. Tickets with no device attached (general, org-level requests) remain visible to every technician in the organization. Site-restricted users also can’t create tickets against — or move tickets onto — devices outside their sites.
Working a Ticket
Section titled “Working a Ticket”The workbench shows everything you need to resolve a ticket without leaving the queue:
- Status – move the ticket between New, Open, Pending, On hold, Resolved, and Closed. Resolving always asks for a resolution note, which is visible to the requester, so the customer sees what was done.
- Priority – change between Low, Normal, High, and Urgent.
- Assignee – assign or unassign the ticket. Press
ato grab the selected ticket for yourself. - Subject and description – click the subject to rename the ticket in place; the description has an Edit (or Add description) control. Changes save instantly and are recorded in the ticket’s activity.
- Category, due date, and tags – set the category from a dropdown (including No category), pick or clear a due date, and add or remove tags directly on the ticket. Every change is logged in the activity feed.
- Requester – select or change who the ticket is for, so a ticket that came in under the wrong contact (or with none) can be corrected without recreating it.
- Properties rail – requester, source, created date, due date, the reason a ticket is waiting, the resolution note, a linked device that links straight to the device’s page, and any linked alerts with one-click navigation to the alert itself.
Click the expand icon (or press Enter) to open the ticket as a full page when you need more room.
Moving a ticket to another organization
Section titled “Moving a ticket to another organization”If a ticket landed under the wrong customer, use Move to another org… in the ticket header to reassign it to a different organization. Pick the target from the dropdown and click Move. The ticket — along with its time entries, parts, and linked alerts — follows to the new organization, and the move is recorded in the activity feed and the audit log.
Because the attached device belongs to the original organization, moving the ticket detaches its device (the ticket becomes device-less; you can link a device from the new org afterward). The assignee, category, and SLA carry over unchanged.
Deleting and Restoring Tickets
Section titled “Deleting and Restoring Tickets”Click Delete, next to Move to another org… in the ticket header, to remove a ticket. A confirm dialog explains that the ticket is hidden from every queue and can be restored by an admin, then deletes it. The same Delete action is available from the bulk action bar for a batch of selected tickets.
A deleted ticket disappears immediately from every list, from stats, from the customer portal, from AI tools, and from email threading – a customer replying to an old email about a deleted ticket can’t reopen it. No notification is sent to the requester when a ticket is deleted.
Deleting and restoring both require the ticket management permission, held by Partner Admins and Org Admins (technicians and viewers can’t delete or restore). Find deleted tickets under the Archived tab and click Restore on any row to return it to the live queues. Both actions are recorded in the audit log.
Replies and Internal Notes
Section titled “Replies and Internal Notes”The composer at the bottom of every ticket has two modes:
- Reply (the default) – a public response. If the ticket came from the customer portal, your reply appears in the requester’s portal conversation.
- Internal note – visible only to your team. The composer switches to a clearly marked highlighted style with an “Internal: not visible to requester” banner, so there is no ambiguity about who will see what you are typing.
Portal users only ever see public replies. Internal notes, status changes, and assignment history stay inside the dashboard.
Press Cmd+Enter (or Ctrl+Enter) to send without leaving the keyboard.
Editing and deleting your replies
Section titled “Editing and deleting your replies”Each reply and internal note you wrote has Edit and Delete controls in its header. Editing opens the text inline with Save and Cancel; an edited entry is marked edited in the feed. Deleting asks you to confirm and leaves a small “deleted” placeholder in its place rather than removing the entry outright, so the conversation history stays intact.
You can edit or delete your own comments; technicians with ticket management permission can edit or delete anyone’s. System entries — status changes, assignments, and time logs — can’t be edited or deleted, and comments that came in from the customer portal aren’t editable from the workbench. Editing or deleting a reply does not re-notify the customer.
Canned Responses
Section titled “Canned Responses”Partners can maintain a shared library of named reply templates that technicians insert directly into the ticket composer, removing repetitive typing for common answers, procedures, and closing messages.
Managing templates
Section titled “Managing templates”Templates are managed under Settings → Ticketing. Each template has a name, a body (plain text, up to 5,000 characters), and an optional category for grouping (for example, “Billing”, “Onboarding”, “Closures”). Within a category, templates are sorted by the order you set. Creating, editing, and deleting templates requires partner scope plus MFA confirmation.
Templates are partner-wide and shared across all your customer organizations and technicians.
Inserting a canned response
Section titled “Inserting a canned response”While composing a reply or internal note, open the canned-response picker from the composer toolbar. Select a template to insert its body at the cursor position — the text is inserted, not sent. You can edit the inserted text before sending as normal.
Keyboard Shortcuts
Section titled “Keyboard Shortcuts”The queue is built to be worked without a mouse:
| Key | Action |
|---|---|
j / k |
Move down / up the list |
Enter or o |
Open the selected ticket as a full page |
a |
Assign the selected ticket to me |
r |
Focus the reply composer |
n |
Focus the internal note composer |
e |
Open the resolve form (resolution note) |
Esc |
Leave the composer / go back |
Bulk Actions
Section titled “Bulk Actions”Select tickets with the checkboxes in the list and an action bar slides up from the bottom of the pane. From there you can:
- Bulk assign – hand a batch of tickets to a technician, or unassign them.
- Bulk status – move a batch to New, Open, Pending, On hold, or Closed.
- Bulk delete – soft-delete every selected ticket at once (Partner Admins and Org Admins only; see Deleting and Restoring Tickets). A confirm dialog shows the count before anything is deleted.
You can act on up to 100 tickets at once. Resolving is intentionally excluded from bulk actions: every resolution needs a per-ticket resolution note, so tickets are resolved individually from the workbench.
Creating Tickets
Section titled “Creating Tickets”Tickets enter the queue from four directions:
- By a technician. Click Create ticket on the Tickets page, pick the organization, enter a subject and description, and optionally attach a device, category, and priority.
- From an alert. Open any alert and click its Create ticket button. The ticket is pre-filled from the alert and linked to it, so the alert shows up in the ticket’s properties rail.
- From the customer portal. End-users submit tickets through their Customer Portal, and those tickets land directly in the queue for triage.
- By email. Customers email your inbound address and their message becomes a ticket – see Email-to-Ticket below.
- Through the API, for integrations and automation.
Email-to-Ticket
Section titled “Email-to-Ticket”Breeze can turn customer emails into tickets automatically, so your help desk works entirely over email like a full PSA. Configure it under Settings → Ticketing → Inbound email.
Your inbound address
Section titled “Your inbound address”Each partner gets an inbound address – the email address customers send to. Copy it from the Inbound email card and share it with your customers (or forward your existing support mailbox to it). Mail sent to that address is converted into tickets.
The address’s local part (the bit before the @) is editable on the Inbound email card – handy if your partner was bootstrapped with an awkward auto-generated value and you want something tidy like support or tickets. It must be lowercase, URL/email-safe (letters, numbers, and hyphens), and unique across partners. Changing it does not break your old address: the previous value keeps routing to you, so addresses you’ve already published to customers and any in-flight email threads continue to work. New outbound replies are sent from the new address.
How emails become tickets
Section titled “How emails become tickets”- New tickets. An email from a recognized customer creates a new ticket, with the subject as the ticket subject and the body as the first message.
- Threading. Replies are matched back to their original ticket using the email’s reply headers or the ticket number in the subject (for example
T-2026-0042), so an ongoing conversation stays on one ticket. A reply to a resolved ticket reopens it. - Public replies thread back. When a technician sends a public reply, it reaches the customer over email, and their response threads back into the same ticket.
Autoresponder
Section titled “Autoresponder”An optional autoresponder sends customers a one-time acknowledgement when their email is received, so they know the ticket was created. It’s rate-limited to avoid mail loops and is toggled per partner on the Inbound email card.
Partners can customize the acknowledgement email’s subject and body (plain text). The body supports three merge variables: {{ticket_number}}, {{subject}}, and {{portal_url}}. Leaving either field blank keeps the existing default wording unchanged. Configure both fields under Settings → Ticketing → Inbound email.
Review queue
Section titled “Review queue”Emails that Breeze can’t automatically turn into a ticket land in a review queue instead – so unsolicited or unprocessable mail doesn’t flood the ticket queue. From there you can convert a message into a ticket (assigning it to the right organization) or dismiss it. Two kinds of mail land here:
- Any email that failed to process – for example, one with no usable sender address.
- Emails from unknown senders, if your Unknown senders setting is left on its default. See Unknown sender handling below to change that behavior.
Unknown sender handling
Section titled “Unknown sender handling”A sender is “unknown” when it isn’t a portal user, a mapped customer domain, or a reply to an existing ticket. Choose what happens to that mail under Settings → Ticketing → Inbound email, in the Unknown senders section:
| Option | Behavior |
|---|---|
| Quarantine for review (default) | Held in the Tickets Review queue for manual convert or dismiss. |
| Route to the triage organization | Auto-creates a ticket directly in a designated triage organization instead of quarantining it. This option requires a Default triage organization to already be selected above it – it stays disabled until you pick one. |
| Drop silently | No ticket, no review-queue entry, no autoresponse. Breeze still keeps an internal record of the message. Use this to keep unmapped spam out of both triage and the review queue. |
Pick the Default triage organization from the dropdown above the Unknown senders options before you can select “Route to the triage organization.”
Dropping mail that fails sender authentication
Section titled “Dropping mail that fails sender authentication”A separate checkbox on the same card, Drop mail that fails sender authentication (SPF/DKIM/DMARC), controls mail that fails those checks – independently of the Unknown senders setting above. When it’s off (the default), unverified mail is quarantined for review. When it’s on, unverified mail is dropped silently instead – no ticket, no review-queue entry, no autoresponse. This applies to all unverified senders, including a message from an otherwise-recognized customer that individually fails the check, and takes priority over whatever you’ve chosen for unknown senders.
Connecting a Microsoft 365 support mailbox
Section titled “Connecting a Microsoft 365 support mailbox”Instead of forwarding to your Breeze inbound address, you can connect a Microsoft 365 shared support mailbox (for example support@yourmsp.com) directly. Customer email to that mailbox becomes tickets, and your public replies are sent back from that same mailbox – with no MX record or forwarding-rule changes. Breeze uses an app-only connection your Microsoft Global Administrator consents to once, so it survives staff turnover (there’s no personal login tied to the mailbox). Set it up on the Microsoft 365 support mailbox card under Settings → Ticketing → Inbound Email.
- Enter the shared mailbox address and an optional display name, then click Connect. Breeze redirects you to Microsoft, where a Global Administrator grants one-time admin consent.
- Scope Breeze’s access to only this mailbox. The card shows an exact Application Access Policy snippet (a
New-DistributionGroupplusNew-ApplicationAccessPolicypair) to run in Exchange Online PowerShell as a tenant admin. Until you do this, the connection shows Needs attention, because the underlying mail permission is tenant-wide by default. - Click Re-test. Once Breeze can read the mailbox, the status flips to Connected.
Once connected, Breeze polls the mailbox every minute or two, turns new messages into tickets (threading and the review queue work exactly as above), and marks each handled message as read so your team can see what’s been picked up. Only mail that arrives after you connect is ticketed – existing inbox history is not imported. Public replies go out from the support address and thread natively in the customer’s mailbox; internal notes and technician notifications are unaffected. You can connect more than one mailbox (for example support@ and billing@). Disconnect stops polling immediately; to fully remove access, also revoke the app’s consent in your Microsoft Entra admin center.
Categories and SLAs
Section titled “Categories and SLAs”Go to Settings > Ticketing to manage ticket categories.
-
Enter a category name, pick a color, and click Add.
-
Use the categories to organize the queue – they appear in the category filter and on the create-ticket form.
-
Deactivate a category to retire it without losing the tickets already filed under it.
Categories also carry SLA targets (response and resolution times) and billing defaults. When a ticket’s resolution target is running out, an at-risk chip appears in the queue, turning to breached once the target has passed – and the Breaching soon tab collects all of them in one place.
Custom Statuses & SLA Configuration
Section titled “Custom Statuses & SLA Configuration”Go to Settings → Ticketing to configure statuses, priority labels, and SLA defaults. The page is tabbed: Statuses, Priorities, Categories, and Export.
Custom ticket statuses
Section titled “Custom ticket statuses”Every ticket status maps to one of six core states: New, Open, Pending, On Hold, Resolved, and Closed. Within each core state you can create as many custom statuses as your workflow needs – for example “Waiting on vendor” under Pending, or “Needs review” under Resolved. Custom statuses appear in the workbench status picker, grouped by their core state. Tickets that pre-date custom statuses show the core state label directly.
Statuses are partner-wide and apply across all your customer organizations. Built-in statuses cannot be deleted. Custom statuses can be deactivated (they disappear from the picker but existing tickets keep their status). Use the up/down arrows on any row to reorder statuses, which sets the order they appear in the picker.
Priority labels and partner-wide SLA defaults
Section titled “Priority labels and partner-wide SLA defaults”Under the Priorities tab you can rename each of the four priority levels (Low, Normal, High, Urgent) to match your team’s language. For each priority you can also set partner-wide default response and resolution SLA targets (in minutes). These defaults apply to every ticket that doesn’t have a more-specific override.
Per-organization SLA tiers
Section titled “Per-organization SLA tiers”In an organization’s settings, open the Ticketing tab to set per-priority SLA overrides for that customer. You can also set the organization’s default hourly rate and whether new time entries default to billable.
Time Tracking & Parts
Section titled “Time Tracking & Parts”Breeze lets technicians log time and record parts against any ticket. These records feed the billing summary on the ticket’s properties rail and the weekly Timesheet view – but are never shown in the customer portal.
Timer widget
Section titled “Timer widget”When you are working a ticket, click Start timer in the Time & Billing rail to begin tracking. A live clock appears in the top navigation bar, anchored to the ticket number, so the timer follows you across the queue. Only one timer can run per technician at a time – starting a new timer automatically stops the previous one.
Click the stop icon in the header widget to open the stop popover, where you can add a description and mark the entry as billable before saving.
Manual time entry
Section titled “Manual time entry”Click Log time in the ticket’s Time & Billing rail to open the quick-add form. Enter the number of minutes, an optional description, and whether the entry is billable, then click Save. The entry is back-dated so the end time is now and the start time is now minus the minutes you entered.
The Parts card on the ticket rail lets you record physical or consumable items used on a job. Each part has a description, quantity, unit price, and an optional cost basis for margin tracking. Parts default to billable; uncheck the box for internal-only consumables.
Timesheet
Section titled “Timesheet”Open /timesheet from the sidebar to see a week-at-a-glance view of all your time entries, grouped by day with billable totals. Use the week navigation buttons to move backwards and forwards. Technicians with a wildcard-permission admin role can switch to any other technician’s timesheet via the dropdown.
Admins can select one or more completed entries and click Approve selected to mark them approved. Approved entries become immutable for non-admins.
Billables export
Section titled “Billables export”Under Settings → Ticketing, the Billables Export card lets you download a CSV of all time entries and parts for any date range up to 366 days. The export includes each entry’s approval status, billable flag, and computed amounts – useful for invoicing or importing into external accounting tools.
Tickets on a Device
Section titled “Tickets on a Device”Every device page has a Tickets tab listing the tickets attached to that device, with status, priority, and SLA chips. It is the fastest way to check whether the machine you are about to work on already has open issues.