A job is a piece of scheduled work for a customer. Jobs are visible to everyone on the team, including technicians, so crews can run their day from the app.
The jobs list
Open Jobs in the sidebar. Tiles across the top show total, scheduled, in progress, and completed. Search by number, address, or contact, filter by status, and switch between two views:
- List: a sortable table.
- By date: active jobs bucketed into Unscheduled, Today, Tomorrow, This week, Next week, and Later.
The list updates live, so when a crew member changes a job on their phone, you see it on the web.
Job statuses
Unscheduled → Scheduled → En route → In progress → Completed → Paid, plus Cancelled. Unscheduled (no time set yet) and Paid (its invoice was paid) are set by ShineCRM automatically; you don’t pick them by hand.
Create a job
Click New job (or start one from a contact’s New menu). You’ll set:
- The contact (required) and address
- Service line items and any discounts (whole-job or on a single service)
- A time with the schedule picker, which highlights who’s already assigned
- Employees and vehicles (the first vehicle becomes the job’s primary)
- Customer reminders, seeded from your templates
- Notes
Pricing is calculated on the server, so the saved totals match the preview exactly. When you save, the job is pushed to each assigned person’s Google Calendar if they’ve connected one.
Run the job
The job page has lifecycle buttons that stamp real timestamps as the work happens:
On my way
Marks the crew as en route. You can log a starting odometer reading, which opens a mileage trip.
Start job
Marks work as started and closes the driving trip (with an optional end odometer).
End job
Stamps the actual end time and calculates the total on-site duration.
You can also Mark complete to skip the sequence, Cancel job, or Reopen job (cancelling isn’t permanent). Everything else on the page (address, lines, discounts, schedule, notes) autosaves.
Times are recorded as timestamps, not a running stopwatch, so closing the app loses nothing. The duration is calculated from when you started and ended.
Deleting vs cancelling
You can delete a job only if it didn’t come from an estimate and has no invoice. Otherwise your option is Cancel job, which keeps the record. Cancelling also stops pending reminder texts, removes the Google Calendar event, and frees the source estimate to be converted again. Reopening a cancelled job restores its calendar event but does not re-arm its reminders.
Customer reminders
Each job carries reminders that go out before the scheduled start, seeded from the templates you set under Settings then Jobs. Set the timing in minutes, hours, or days, and add custom one-off reminders. ShineCRM picks the channel per reminder: text first if the customer has a phone and hasn’t opted out, with email as a fallback. Reminders only send for a job with a future start time and a reachable customer, and the page warns you when one would be skipped.
Booking and cancellation confirmations
From a scheduled job, Send confirmation opens a composer pre-filled from your templates, with an editable email subject and body and a text body. Choose email, text, or both. Nothing sends until you click. Cancelling a job offers the same composer as a cancellation notice. ShineCRM tracks and shows when a confirmation was sent.
Turn a job into an invoice
Click Create invoice on the job to bill the work. ShineCRM keeps this to one active invoice per job, so you can’t accidentally double-bill. See Invoices.
Recurring work
There’s no separate recurring-job scheduler. Repeating work is handled by recurring services, and completing a job advances its linked recurring service.
Frequently asked
Why can’t I delete this job?
Jobs created from an estimate, or that already have an invoice, can only be cancelled. That protects the linked records.
Did closing the app lose my job timer?
No. Start and end are saved as timestamps, so the duration is correct no matter what happens to the app in between.
A reopened job isn’t sending reminders again.
That’s by design. Reopening restores the calendar event but doesn’t re-arm reminders. Add or re-enable them on the job if you need them.