Features

Tickets

Tickets are the core of Servelo. Each ticket represents a service request or job, tracks its lifecycle from open to closed, and can carry comments, photos, charges, and quotes.

Creating a ticket

Go to Tickets and click New Ticket. Required fields are title and client. All other fields are optional.

FieldDescription
TitleShort description of the job (required)
ClientThe client this ticket belongs to (required)
DescriptionFull details of the request
Work TypeCategory of work, e.g. Hardware, Networking, Software. Managed in Settings
Assigned toThe technician responsible for the job
AssetA device from the client's asset list to associate with this job. Appears after a client is selected
Scheduled dateWhen the job is planned. Setting a date automatically moves the ticket to Scheduled status. Triggers Google Calendar and/or Outlook Calendar sync if the technician has connected their calendar
Due dateOptional deadline for the ticket. Tickets past their due date appear in the overdue count on the dashboard
ChargeAmount collected from the client for this job. Used in the P&L summary and revenue tracking
Payment MethodHow the client paid: Cash, Credit Card, Check, Zelle, etc.
Hours WorkedTime spent on the job. Shown in dashboard stats and exports
Miles DrivenDistance traveled in miles. Combined with your MPG and gas price (configured in Tickets > Settings) to calculate fuel cost. Use the Calculate button to get round-trip mileage from your business address to the client's address
Lead feeReferral or lead fee paid to a third party, separate from the charge. Deducted in the P&L summary
Payment feeCredit card or processor fee. Deducted in the P&L summary
Job costsOne or more out-of-pocket costs for the job: parking, tolls, supplies, subcontractor fees, etc. Each row has a label and an amount. Deducted in P&L. Costs can be auto-added as expense entries when the ticket is marked paid (configure in Tickets > Settings)
StatusCurrent state: open, in progress, scheduled, on hold, closed
PriorityLow, normal, high, or urgent

Ticket statuses

StatusMeaning
OpenNew or unstarted. Counts toward the technician's open workload
In ProgressActively being worked on
ScheduledHas a scheduled date and is waiting for that date
On HoldPaused. Waiting on parts, approval, or the client
ClosedWork is complete. The ticket is locked โ€” all fields are read-only and the Save button is hidden. Use Re-open Ticket to resume editing.

Closing a ticket

Click Close Ticket in the reply area to open the close modal. The modal collects final job details before locking the ticket:

FieldNotes
Closing commentRequired. Choose Internal (staff only) or Public (client sees it). A public comment triggers a client notification email.
Work TypeRequired. Must be selected before the ticket can be closed. If the ticket already has a work type it is pre-filled. Work type is saved to the ticket on close.
Hours, Miles, FeesOptional final values. Pre-filled from whatever was already on the ticket. In the Miles Driven field, click โ†” Round trip to calculate the round-trip distance from your start location to the client's address automatically. Requires a start location set in My Account and an address on the client record.
Collected at closeEnter an amount to log a revenue entry and mark the ticket paid in one step.
Payment MethodOptional. Recorded alongside the revenue entry.

Two close actions are available: Mark as paid & Close (creates a revenue entry) and Close without marking paid. Both are disabled until a Work Type is selected and a closing comment is written.

Re-opening a ticket

When a ticket is closed, a Re-open Ticket button appears in the banner where the reply area normally is. Clicking it sets the status back to Open and unlocks all fields for editing. There is no confirmation step โ€” the ticket is re-opened immediately.

Comments and communication

All team members can add internal comments to any ticket. Comments are visible to anyone with access to the ticket in the app.

When a comment is posted with Notify Client checked, it triggers an email notification to the client. The client can reply directly by email, the reply is threaded back to the ticket automatically. See Email Integration.

Photos and attachments

Photos can be uploaded to a ticket from the ticket detail page. Up to 10 files per upload, 10 MB each. Supported formats: JPEG, PNG, GIF, WebP, and PDF. Photos are stored in S3 and accessible via time-limited signed URLs. Photos are also visible to the client in the customer portal.

โ„น๏ธ Photos attached by clients via the portal appear on the ticket just like internal uploads.

Documents and e-signing

Any ticket can have PDF documents attached for client review and e-signature. This is separate from the photo attachment system and is designed for contracts, liability waivers, scope-of-work agreements, and similar documents.

Uploading a document

  1. Open the ticket and scroll to the Documents section
  2. Click Upload Document and select a PDF from your device
  3. The document is stored securely and listed under the ticket

Sending a document for signing

  1. After uploading, click Send for Signing next to the document
  2. Servelo emails the client a unique signing link
  3. The client opens the link, reviews the PDF, types their full name, draws their signature, and submits
  4. The signature, signer name, IP address, and timestamp are recorded
  5. The ticket updates to show the document as signed
โ„น๏ธ Document signing on tickets uses the client's email address on file. Make sure the client record has a valid email before sending.

Device entry step

If the document being signed contains a device table (created by including a | # | Device Type | table in the document), the client signing experience adds a step before the signature. The client is prompted to enter up to 5 devices โ€” type, make/model, and serial number โ€” before reviewing and signing. Servelo fills in the table automatically so the final signed PDF contains the completed device list. Documents without a device table go straight to the signature step as usual.

Provider counter-signing

After a client signs a ticket document, an admin can add a counter-signature to create a fully executed record. Open the ticket, find the signed document in the Documents section, and click Counter-sign. Type your name and draw your signature in the panel that appears. The counter-signature is timestamped and recorded in the audit trail alongside the client's signature, and the finalized PDF is embedded in the ticket record.

For reusable agreement templates (service agreements, terms of service, etc.) that you want to attach to quotes for signing, see Digital signatures on quotes.

Ticket settings

Admins can access ticket-specific settings from the Settings tab on the Tickets page.

SettingDescription
Ticket NumberingSet the starting number and zero-padding for ticket IDs. Locks once any ticket exists; use Reset numbering to jump the counter forward.
Auto-add job costs to expensesWhen on, each job cost row on a ticket creates an expense entry automatically when the ticket is marked paid. Leave off if costs arrive via bank import.
Vehicle MPGYour vehicle's average fuel efficiency. Used with the gas price to calculate fuel cost per ticket.
Gas Price ($/gal)Current fuel price. Use the refresh button to pull the national average from the EIA.

Ticket numbers

Each ticket is assigned a sequential number (e.g. #0042) at creation. The starting number and zero-padding can be configured under Tickets > Settings > Ticket Numbering. Ticket numbers are stable and can be used to look up tickets from email subjects or reference in conversations with clients.

Calendar sync

Technicians who connect their Google Calendar or Microsoft Outlook Calendar via My Account will have scheduled tickets synced automatically. When a ticket's scheduled date is set or updated, a calendar event is created or updated. When a ticket is closed or its scheduled date is removed, the event is deleted.

Both Google and Outlook are supported simultaneously. Calendar sync is per-user. Each technician manages their own connection independently.

Assets on tickets

Any asset from the ticket's client can be linked to a ticket, so it's always clear which device the job is about. The asset (name, make, model, serial) appears in the ticket detail and is included when the ticket is exported or emailed.

From the ticket detail you can also run a device scan: click Scan on the linked asset to generate a PowerShell one-liner. Run it on that machine and Servelo auto-fills the OS, CPU, RAM, storage, GPU, hostname, and IP address directly into the asset record. No software needs to be installed on the client machine.

AI Job Planner

Every ticket has a built-in AI Job Planner, accessible from the ticket detail page. Click โœฆ AI Job Planner to open a persistent chat panel where you can ask follow-up questions, build a game plan, or draft a customer reply, all in the context of the current job.

The AI already has the full ticket details, client profile, client history, and any assets linked to the customer. You don't need to describe the job from scratch.

FeatureHow it works
Persistent conversationThe conversation is saved per ticket. Close the panel and reopen it later to continue where you left off.
Voice inputTap the microphone icon next to the text box to dictate your message hands-free. The mic turns red while listening. Speech is transcribed and appended to any text already in the box. Works in Chrome, Edge, and most Chromium-based browsers. Not available in Firefox or Safari.
Customer ReplyIf the AI includes a suggested customer reply, a "Use as reply" button appears. Click it to drop the text straight into the reply box.
Game PlanAsk for a game plan and the AI returns a structured step-by-step procedure. A "Copy game plan" button lets you grab it to clipboard.
Clear conversationUse the Clear button in the planner header to wipe the conversation and start fresh for the same ticket.

Actions the AI can take

The AI Job Planner can do more than answer questions. It can take direct actions on the ticket. When it proposes an action, a confirmation card appears before anything is changed. Review the details and click Confirm to apply, or Cancel to skip it.

ActionWhat it does
Add assetCreates a new asset record linked to the client and pre-fills make, model, type, and notes from the conversation.
Update ticketChanges ticket fields such as title, status, priority, scheduled date, charge, miles driven, or work type without leaving the chat.
Create quoteGenerates a draft quote with line items, quantities, and prices. The quote is attached to the ticket immediately.
Add job costLogs a parts or materials cost entry on the ticket (description, amount, optional vendor).
Post commentAdds an internal note or customer-visible comment to the ticket thread. Each AI Job Planner response also has a Post as internal note button that saves that specific response directly to the ticket comments.
Create follow-up ticketOpens a new linked ticket for a separate issue or return visit, pre-filled with the same client and relevant context.
โ„น๏ธ To use Anthropic Claude as the AI provider instead of the default, add your Anthropic API key under Settings > Integrations > AI Provider. Without a key the planner falls back to the built-in Groq model automatically.

Pinned tickets

Pin any ticket to keep it visible on the Dashboard regardless of its status. Pinned tickets appear in a dedicated Pinned Tickets panel at the top of the Dashboard, making it easy to track tickets you're actively watching without searching or filtering.

To pin a ticket, open the ticket detail page and click the pin icon in the top-right action strip. Click it again to unpin. Pins are per-user; each team member manages their own pinned list independently.

Quotes on tickets

A quote can be attached to any ticket. The quote is a line-item estimate that can be emailed to the client for acceptance or signature. See Quotes for the full flow.

P&L Summary

Each ticket shows an estimated profit and loss summary at the bottom of the Details panel once a charge or costs are entered. This is for internal reference only and is not shown to the client.

LineSource
Gross RevenueThe Charge field on the ticket
Equipment / PartsTotal of all reimbursed expenses linked to this ticket (see Reimbursed Expenses)
Customer depositIf the ticket has a linked accepted quote with a deposit, the deposit amount is shown as a credit that offsets the equipment cost, since the client pre-funded that portion
Lead FeeThe Lead Fee field on the ticket
Payment FeeThe Payment Fee field on the ticket
Job CostsEach row from the Job Costs section, listed individually
Est. FuelCalculated from miles driven, MPG, and gas price settings
Est. P&LGross Revenue + deposit credit − all cost lines above. Informational only

The P&L summary only appears when at least one of charge, expenses, fees, or mileage has a value. It does not affect invoices or revenue records.

Duplicating a ticket

Duplicate a ticket to quickly create a new one pre-filled with the same client, description, work type, priority, charge rate, notes, and job cost line items. This is useful for recurring visits with the same client where the work is similar each time.

To duplicate from the ticket list, open the โ‹ฎ menu on any row and choose Duplicate. To duplicate from a ticket detail page, click the Duplicate button in the top-right action strip.

The new ticket opens immediately with status set to Open and the scheduled date blank โ€” set the date for the next visit and save. Fields that are specific to the original job (hours worked, miles driven, P&L amounts) are not carried over.

Trash

Deleted tickets are moved to Trash, not immediately erased. Tickets in Trash can be restored or permanently deleted. Admins can view and manage Trash from the Trash item in the sidebar. Permanently deleted tickets have their S3 attachments removed as well.

Exporting tickets

Click Export on the Tickets list page to download all visible tickets as a CSV. The export respects your current filters (status, date, assignee, etc.), so filter first to get exactly the slice you want. Exported columns include ticket number, title, status, priority, assigned technician, client, scheduled date, charge, and timestamps.

Who can do what

ActionAdminTechnicianViewer
Create ticketYesYesNo
Edit ticketYesYesNo
Add commentYesYesNo
Upload photoYesYesNo
Close ticketYesYesNo
Duplicate ticketYesYesNo
Delete ticketYesNoNo
View all ticketsYesYesYes