Book work, run it from on-my-way to complete, send confirmations and reminders, and turn it into an invoice.
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.
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.
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.
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.
The job page has lifecycle buttons that stamp real timestamps as the work happens:
1
On my way
Marks the crew as en route. You can log a starting odometer reading, which opens a mileage trip.
2
Start job
Marks work as started and closes the driving trip (with an optional end odometer).
3
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.
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.
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.
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.
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.
There’s no separate recurring-job scheduler. Repeating work is handled by recurring services, and completing a job advances its linked recurring service.
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.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"ShineCRM Docs","description":"Operator guides and product reference for ShineCRM, the CRM for exterior cleaning businesses.","colors":{"primary":"#0B1A4A","light":"#2BA9F4","dark":"#16266B"},"logo":{"light":"https://mintcdn.com/shinecrm/S2jQGQMBV5r1WTNf/logo/icon.png?fit=max\u0026auto=format\u0026n=S2jQGQMBV5r1WTNf\u0026q=85\u0026s=e1a37cb4991a5722b4d9476f35b9d887","dark":"https://mintcdn.com/shinecrm/S2jQGQMBV5r1WTNf/logo/icon.png?fit=max\u0026auto=format\u0026n=S2jQGQMBV5r1WTNf\u0026q=85\u0026s=e1a37cb4991a5722b4d9476f35b9d887"},"favicon":"https://mintcdn.com/shinecrm/S2jQGQMBV5r1WTNf/favicon.png?fit=max\u0026auto=format\u0026n=S2jQGQMBV5r1WTNf\u0026q=85\u0026s=2ffbce21afedae13d6f3844d26424ae7","navbar":{"links":[{"href":"https://www.shinecx.com/","label":"ShineCRM"},{"href":"https://www.shinecx.com/#pricing","label":"Pricing"},{"href":"/support/contact","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.shinecx.com"}},"footer":{"socials":{}},"seo":{"organization":{"id":"https://www.shinecx.com/#organization","name":"ShineCRM","url":"https://www.shinecx.com/","logo":"https://www.shinecx.com/favicon.png","sameAs":["https://apps.apple.com/app/shinecrm/id6762241253","https://docs.shinecx.com/"]},"indexing":"navigable"},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"shinecrm","hasAudioNarration":false,"actualSubdomain":"shinecrm","customDomains":["docs.shinecx.com"],"gitSource":{"type":"github","owner":"shinecrm","repo":"shinecrm","deployBranch":"main","contentDirectory":"apps/docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae11243a9cb1c696fe4b1ef","collectionId":"05a7b419-5afc-481f-8b31-eadb304453d0","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae11243a9cb1c696fe4b1ef"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae11243a9cb1c696fe4b1ef","clientVersion":"0.0.3990","searchFilterCounts":[{"language":"default","tag":"Guides","count":42},{"language":"default","tag":"AI assistant","count":6},{"language":"default","tag":"Getting started","count":6},{"language":"default","tag":"Account","count":5},{"language":"default","tag":"Inbox \u0026 comms","count":5},{"language":"default","tag":"Jobs \u0026 scheduling","count":4},{"language":"default","tag":"Clients \u0026 CRM","count":4},{"language":"default","tag":"Estimates \u0026 services","count":4},{"language":"default","tag":"Invoices \u0026 payments","count":4},{"language":"default","tag":"Overview","count":3}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"analytics.css","content":".shine-docs-consent{border:1px solid color-mix(in srgb,currentColor 20%,transparent);border-radius:.75rem}.shine-docs-consent,.shine-docs-cookie-choice{--shine-docs-bg:var(--background, Canvas);--shine-docs-ink:var(--foreground, CanvasText);color:var(--shine-docs-ink);background:var(--shine-docs-bg);font:inherit;font-size:.875rem;line-height:1.5}.shine-docs-consent[hidden]{display:none}.shine-docs-consent{position:fixed;z-index:100;bottom:4rem;left:1rem;width:min(28rem,calc(100vw - 2rem));padding:1.25rem;box-shadow:0 .5rem 2rem color-mix(in srgb,CanvasText 12%,transparent)}.shine-docs-consent h2{font-size:1rem;font-weight:600;margin:0 0 .5rem}.shine-docs-consent p{margin:0 0 1rem}.shine-docs-consent a{text-decoration:underline;text-underline-offset:.2em}.shine-docs-consent>div{display:flex;flex-wrap:wrap;gap:.5rem}.shine-docs-consent button,.shine-docs-cookie-choice{cursor:pointer;padding:.5rem .75rem;border:1px solid color-mix(in srgb,currentColor 30%,transparent);border-radius:.5rem;transition:opacity 150ms ease-out}.shine-docs-cookie-choice{position:fixed;z-index:99;bottom:1rem;left:1rem}.shine-docs-consent button:hover,.shine-docs-cookie-choice:hover{opacity:.75}.shine-docs-consent button:focus-visible,.shine-docs-cookie-choice:focus-visible{outline:2px solid currentColor;outline-offset:3px}@media (prefers-reduced-motion:reduce){.shine-docs-consent button,.shine-docs-cookie-choice{transition:none}}"}],"page":{"pagePath":"guides/jobs","slug":"/guides/jobs","pageMetadata":{"title":"Jobs","description":"Book work, run it from on-my-way to complete, send confirmations and reminders, and turn it into an invoice.","href":"/guides/jobs"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Book work, run it from on-my-way to complete, send confirmations and reminders, and turn it into an invoice.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Note,Step,Steps}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`A job is a piece of scheduled work for a customer. Jobs are visible to `,_jsx(_components.strong,{children:`everyone on the team`}),`, including technicians, so crews can run their day from the app.`]}),`\n`,_jsx(Heading,{level:`2`,id:`the-jobs-list`,children:`The jobs list`}),`\n`,_jsxs(_components.p,{children:[`Open `,_jsx(_components.strong,{children:`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:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`List`}),`: a sortable table.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`By date`}),`: active jobs bucketed into Unscheduled, Today, Tomorrow, This week, Next week, and Later.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`The list updates live, so when a crew member changes a job on their phone, you see it on the web.`}),`\n`,_jsx(Heading,{level:`3`,id:`job-statuses`,children:`Job statuses`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Unscheduled → Scheduled → En route → In progress → Completed → Paid`}),`, plus `,_jsx(_components.strong,{children:`Cancelled`}),`. Unscheduled (no time set yet) and Paid (its invoice was paid) are set by ShineCRM automatically; you don’t pick them by hand.`]}),`\n`,_jsx(Heading,{level:`2`,id:`create-a-job`,children:`Create a job`}),`\n`,_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`New job`}),` (or start one from a contact’s `,_jsx(_components.strong,{children:`New`}),` menu). You’ll set:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`The `,_jsx(_components.strong,{children:`contact`}),` (required) and `,_jsx(_components.strong,{children:`address`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Service line items`}),` and any `,_jsx(_components.strong,{children:`discounts`}),` (whole-job or on a single service)`]}),`\n`,_jsxs(_components.li,{children:[`A `,_jsx(_components.strong,{children:`time`}),` with the schedule picker, which highlights who’s already assigned`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Employees`}),` and `,_jsx(_components.strong,{children:`vehicles`}),` (the first vehicle becomes the job’s primary)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Customer reminders`}),`, seeded from your templates`]}),`\n`,_jsx(_components.li,{children:_jsx(_components.strong,{children:`Notes`})}),`\n`]}),`\n`,_jsx(_components.p,{children:`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.`}),`\n`,_jsx(Heading,{level:`2`,id:`run-the-job`,children:`Run the job`}),`\n`,_jsx(_components.p,{children:`The job page has lifecycle buttons that stamp real timestamps as the work happens:`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`On my way`,children:_jsx(_components.p,{children:`Marks the crew as en route. You can log a starting odometer reading, which opens a mileage trip.`})}),_jsx(Step,{title:`Start job`,children:_jsx(_components.p,{children:`Marks work as started and closes the driving trip (with an optional end odometer).`})}),_jsx(Step,{title:`End job`,children:_jsx(_components.p,{children:`Stamps the actual end time and calculates the total on-site duration.`})})]}),`\n`,_jsxs(_components.p,{children:[`You can also `,_jsx(_components.strong,{children:`Mark complete`}),` to skip the sequence, `,_jsx(_components.strong,{children:`Cancel job`}),`, or `,_jsx(_components.strong,{children:`Reopen job`}),` (cancelling isn’t permanent). Everything else on the page (address, lines, discounts, schedule, notes) autosaves.`]}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`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.`})}),`\n`,_jsx(Heading,{level:`3`,id:`deleting-vs-cancelling`,children:`Deleting vs cancelling`}),`\n`,_jsxs(_components.p,{children:[`You can `,_jsx(_components.strong,{children:`delete`}),` a job only if it didn’t come from an estimate and has no invoice. Otherwise your option is `,_jsx(_components.strong,{children:`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 `,_jsx(_components.strong,{children:`not`}),` re-arm its reminders.`]}),`\n`,_jsx(Heading,{level:`2`,id:`customer-reminders`,children:`Customer reminders`}),`\n`,_jsxs(_components.p,{children:[`Each job carries reminders that go out before the scheduled start, seeded from the templates you set under `,_jsx(_components.strong,{children:`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.`]}),`\n`,_jsx(Heading,{level:`2`,id:`booking-and-cancellation-confirmations`,children:`Booking and cancellation confirmations`}),`\n`,_jsxs(_components.p,{children:[`From a scheduled job, `,_jsx(_components.strong,{children:`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.`]}),`\n`,_jsx(Heading,{level:`2`,id:`turn-a-job-into-an-invoice`,children:`Turn a job into an invoice`}),`\n`,_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`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 `,_jsx(_components.a,{href:`/guides/invoices`,children:`Invoices`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`recurring-work`,children:`Recurring work`}),`\n`,_jsxs(_components.p,{children:[`There’s no separate recurring-job scheduler. Repeating work is handled by `,_jsx(_components.a,{href:`/guides/recurring-services`,children:`recurring services`}),`, and completing a job advances its linked recurring service.`]}),`\n`,_jsx(Heading,{level:`2`,id:`frequently-asked`,children:`Frequently asked`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Why can’t I delete this job?`}),`\nJobs created from an estimate, or that already have an invoice, can only be cancelled. That protects the linked records.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Did closing the app lose my job timer?`}),`\nNo. Start and end are saved as timestamps, so the duration is correct no matter what happens to the app in between.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`A reopened job isn’t sending reminders again.`}),`\nThat’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.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Jobs","description":"Book work, run it from on-my-way to complete, send confirmations and reminders, and turn it into an invoice.","href":"/guides/jobs"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"The jobs list","slug":"the-jobs-list","depth":2,"children":[{"title":"Job statuses","slug":"job-statuses","depth":3,"children":[]}]},{"title":"Create a job","slug":"create-a-job","depth":2,"children":[]},{"title":"Run the job","slug":"run-the-job","depth":2,"children":[{"title":"Deleting vs cancelling","slug":"deleting-vs-cancelling","depth":3,"children":[]}]},{"title":"Customer reminders","slug":"customer-reminders","depth":2,"children":[]},{"title":"Booking and cancellation confirmations","slug":"booking-and-cancellation-confirmations","depth":2,"children":[]},{"title":"Turn a job into an invoice","slug":"turn-a-job-into-an-invoice","depth":2,"children":[]},{"title":"Recurring work","slug":"recurring-work","depth":2,"children":[]},{"title":"Frequently asked","slug":"frequently-asked","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/shinecrm/87b1a48dea796140/analytics.js"],"subdomain":"shinecrm","siteName":"ShineCRM Docs","title":"Jobs - ShineCRM Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-06-12T23:35:56.796Z","originalFileLocation":"guides/jobs.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Book work, run it from on-my-way to complete, send confirmations and reminders, and turn it into an invoice.\">\u003cmeta data-mint-head name=\"application-name\" content=\"ShineCRM Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/shinecrm/_r3W4rgxbG3yB12T/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/shinecrm/_r3W4rgxbG3yB12T/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/shinecrm/_r3W4rgxbG3yB12T/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/shinecrm/_r3W4rgxbG3yB12T/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/shinecrm/_r3W4rgxbG3yB12T/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/shinecrm/_r3W4rgxbG3yB12T/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/shinecrm/_r3W4rgxbG3yB12T/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/shinecrm/_r3W4rgxbG3yB12T/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/shinecrm/_r3W4rgxbG3yB12T/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Jobs - ShineCRM Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Book work, run it from on-my-way to complete, send confirmations and reminders, and turn it into an invoice.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"ShineCRM Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.shinecx.com/guides/jobs\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://shinecrm.mintlify.app/_mintlify/api/og/v2?division=Jobs+%26+scheduling\u0026amp;title=Jobs\u0026amp;description=Book+work%2C+run+it+from+on-my-way+to+complete%2C+send+confirmations+and+reminders%2C+and+turn+it+into+an+invoice.\u0026amp;theme=847e6098ac129f4ff7ba583d\u0026amp;signature=38bc0aed184150d167e9770f314998261b132dacae5fc3fcf61413d154319343\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Jobs - ShineCRM Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Book work, run it from on-my-way to complete, send confirmations and reminders, and turn it into an invoice.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://shinecrm.mintlify.app/_mintlify/api/og/v2?division=Jobs+%26+scheduling\u0026amp;title=Jobs\u0026amp;description=Book+work%2C+run+it+from+on-my-way+to+complete%2C+send+confirmations+and+reminders%2C+and+turn+it+into+an+invoice.\u0026amp;theme=847e6098ac129f4ff7ba583d\u0026amp;signature=38bc0aed184150d167e9770f314998261b132dacae5fc3fcf61413d154319343\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/shinecrm/_r3W4rgxbG3yB12T/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"ShineCRM Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0B1A4A\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.shinecx.com/guides/jobs\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/guides/jobs.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://www.shinecx.com/#organization\",\"name\":\"ShineCRM\",\"url\":\"https://www.shinecx.com/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://www.shinecx.com/favicon.png\"},\"sameAs\":[\"https://apps.apple.com/app/shinecrm/id6762241253\",\"https://docs.shinecx.com/\"]},{\"@type\":\"WebSite\",\"@id\":\"https://docs.shinecx.com#website\",\"name\":\"ShineCRM Docs\",\"url\":\"https://docs.shinecx.com\",\"publisher\":{\"@id\":\"https://www.shinecx.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.shinecx.com/guides/jobs#webpage\",\"url\":\"https://docs.shinecx.com/guides/jobs\",\"name\":\"Jobs\",\"description\":\"Book work, run it from on-my-way to complete, send confirmations and reminders, and turn it into an invoice.\",\"dateModified\":\"2026-06-12T23:35:56.796Z\",\"isPartOf\":{\"@id\":\"https://docs.shinecx.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.shinecx.com/guides/jobs#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.shinecx.com/guides/jobs#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Jobs \u0026 scheduling\",\"item\":\"https://docs.shinecx.com/guides/jobs-scheduling\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Jobs\",\"item\":\"https://docs.shinecx.com/guides/jobs\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.shinecx.com/guides/jobs#article\",\"headline\":\"Jobs\",\"name\":\"Jobs\",\"description\":\"Book work, run it from on-my-way to complete, send confirmations and reminders, and turn it into an invoice.\",\"url\":\"https://docs.shinecx.com/guides/jobs\",\"mainEntityOfPage\":{\"@id\":\"https://docs.shinecx.com/guides/jobs#webpage\"},\"dateModified\":\"2026-06-12T23:35:56.796Z\",\"publisher\":{\"@id\":\"https://www.shinecx.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.shinecx.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"ShineCRM Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"ShineCRM Docs","nav":{"global":null,"tabs":[{"tab":"Guides","groups":[{"group":"Getting started","pages":[{"title":"ShineCRM documentation","href":""},{"title":"Getting started","href":"/guides/getting-started"},{"title":"Mobile vs web dashboard","href":"/guides/platform-differences"},{"title":"Organization settings","href":"/guides/organization-settings"},{"title":"Exterior cleaning workflows","href":"/guides/exterior-cleaning-workflows"},{"title":"Comparing field service software","href":"/guides/software-comparisons"}]},{"group":"Clients \u0026 CRM","pages":[{"title":"Contacts","href":"/guides/contacts"},{"title":"Import contacts","href":"/guides/import-contacts"},{"title":"Pipeline","href":"/guides/pipeline"},{"title":"Lead form","href":"/guides/lead-form"}]},{"group":"Estimates \u0026 services","pages":[{"title":"Services","href":"/guides/services"},{"title":"Estimates","href":"/guides/estimates"},{"title":"Discounts","href":"/guides/discounts"},{"title":"Recurring services","href":"/guides/recurring-services"}]},{"group":"Invoices \u0026 payments","pages":[{"title":"Invoices","href":"/guides/invoices"},{"title":"Payments setup","href":"/guides/payments-setup"},{"title":"Taxes","href":"/guides/taxes"},{"title":"Reports","href":"/guides/reports"}]},{"group":"Jobs \u0026 scheduling","pages":[{"title":"Jobs and scheduling","description":"How jobs, Calendar, crew shifts, and recurring work fit together in ShineCRM.","href":"/guides/jobs-scheduling"},{"title":"Jobs","href":"/guides/jobs"},{"title":"Calendar","description":"See every job, event, shift, and Google busy block in one place.","href":"/guides/calendar"},{"title":"Scheduling and shifts","href":"/guides/scheduling-shifts"}]},{"group":"Team","pages":[{"title":"Team and roles","href":"/guides/team"},{"title":"Time tracking","href":"/guides/time-tracking"},{"title":"Mileage and vehicles","href":"/guides/mileage-vehicles"}]},{"group":"Inbox \u0026 comms","pages":[{"title":"Unified inbox","href":"/guides/unified-inbox"},{"title":"Calls setup","href":"/guides/calls"},{"title":"Scheduled messages","href":"/guides/scheduled-messages"},{"title":"Reviews","href":"/guides/reviews"},{"title":"Notifications","href":"/guides/notifications"}]},{"group":"AI assistant","pages":[{"title":"AI overview","href":"/guides/ai/overview"},{"title":"Suds AI","href":"/guides/ai/suds-ai"},{"title":"Incoming message suggestions","href":"/guides/ai/incoming-message-suggestions"},{"title":"Review request drafting","href":"/guides/ai/review-requests"},{"title":"Message rewriter","href":"/guides/ai/message-rewriter"},{"title":"MCP server","href":"/guides/ai/mcp-server"}]},{"group":"Customer portal","pages":[{"title":"Customer portal","href":"/guides/customer-portal"}]},{"group":"Account","pages":[{"title":"Subscription and billing","href":"/account-management/subscription"},{"title":"Export your data","href":"/account-management/export-data"},{"title":"Usage and plan limits","href":"/account-management/usage"},{"title":"Delete your account","href":"/account-management/delete-account"},{"title":"Delete some of your data","href":"/account-management/delete-data"}]}]},{"tab":"API reference","pages":[{"title":"API reference","href":"/api-reference/introduction"}]},{"tab":"Integrations","pages":[{"title":"Integrations","href":"/integrations/overview"}]},{"tab":"Support","pages":[{"title":"Support","href":"/support/contact"}]}]},"title":"Jobs - ShineCRM Docs","buildId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","deploymentId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","dynamics":[],"chunks":[]}