Repeating customer commitments with cadence and next-due tracking.
A recurring service is a repeating commitment for one customer, like monthly window cleaning or a quarterly pressure wash. ShineCRM tracks each one’s cadence, when it was last done, and when it’s due next. Recurring services are owner/admin only, under Recurring services in the sidebar.
Recurring services group by customer (the default) or by service, and sort by next due date, name, or status. For a given customer, you can multi-select several of their services and turn them into a single job in one step.
Save as active. Sets it up immediately, no customer approval needed. Use this when the customer has already agreed.
Send for approval. Creates a draft estimate the customer accepts online first. Once they accept, the recurring service activates on its own.
A recurring service can also be created automatically: when a customer accepts an estimate that has a line with a repeating frequency, ShineCRM sets up the matching recurring service for you.
Set up reusable recurring-service templates under Settings then Recurring services so common plans drop into the estimate builder without rebuilding them each time.
Is this a billing engine that charges cards on a schedule?
No. A recurring service tracks the commitment and generates the jobs. You bill each visit through your normal invoice flow.How do visits get counted?
Completing the linked jobs is what advances the next-due date and fills in the visit history.
{"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/recurring-services","slug":"/guides/recurring-services","pageMetadata":{"title":"Recurring services","description":"Repeating customer commitments with cadence and next-due tracking.","href":"/guides/recurring-services"},"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: \"Repeating customer commitments with cadence and next-due tracking.\"\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,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`A recurring service is a repeating commitment for one customer, like monthly window cleaning or a quarterly pressure wash. ShineCRM tracks each one’s cadence, when it was last done, and when it’s due next. Recurring services are owner/admin only, under `,_jsx(_components.strong,{children:`Recurring services`}),` in the sidebar.`]}),`\n`,_jsx(Heading,{level:`2`,id:`the-list`,children:`The list`}),`\n`,_jsxs(_components.p,{children:[`Recurring services group by `,_jsx(_components.strong,{children:`customer`}),` (the default) or by `,_jsx(_components.strong,{children:`service`}),`, and sort by next due date, name, or status. For a given customer, you can multi-select several of their services and turn them into a single job in one step.`]}),`\n`,_jsx(Heading,{level:`2`,id:`a-recurring-service’s-page`,children:`A recurring service’s page`}),`\n`,_jsx(_components.p,{children:`Open one to see:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Its items, each with a cadence and a next-due date`}),`\n`,_jsxs(_components.li,{children:[`Linked `,_jsx(_components.strong,{children:`upcoming`}),` and `,_jsx(_components.strong,{children:`past`}),` jobs`]}),`\n`,_jsxs(_components.li,{children:[`The `,_jsx(_components.strong,{children:`completed visits`}),` so far, drawn from jobs you’ve finished`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Pause`}),`, `,_jsx(_components.strong,{children:`Resume`}),`, and `,_jsx(_components.strong,{children:`Cancel`}),` actions`]}),`\n`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Cancelling a recurring service stops future visits. The customer will not be billed for visits that haven’t happened yet.`})}),`\n`,_jsx(Heading,{level:`2`,id:`create-a-recurring-service`,children:`Create a recurring service`}),`\n`,_jsxs(_components.p,{children:[`From `,_jsx(_components.strong,{children:`New recurring service`}),` you have two paths:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Save as active.`}),` Sets it up immediately, no customer approval needed. Use this when the customer has already agreed.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Send for approval.`}),` Creates a draft estimate the customer accepts online first. Once they accept, the recurring service activates on its own.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`A recurring service can also be created `,_jsx(_components.strong,{children:`automatically`}),`: when a customer accepts an `,_jsx(_components.a,{href:`/guides/estimates`,children:`estimate`}),` that has a line with a repeating frequency, ShineCRM sets up the matching recurring service for you.`]}),`\n`,_jsx(Heading,{level:`2`,id:`statuses`,children:`Statuses`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Active`}),`, `,_jsx(_components.strong,{children:`Paused`}),`, `,_jsx(_components.strong,{children:`Pending`}),` (waiting on customer approval), `,_jsx(_components.strong,{children:`Completed`}),`, `,_jsx(_components.strong,{children:`Cancelled`}),`, and `,_jsx(_components.strong,{children:`Declined`}),` (the customer turned down the approval estimate).`]}),`\n`,_jsx(Heading,{level:`2`,id:`templates`,children:`Templates`}),`\n`,_jsxs(_components.p,{children:[`Set up reusable recurring-service templates under `,_jsx(_components.strong,{children:`Settings then Recurring services`}),` so common plans drop into the estimate builder without rebuilding them each time.`]}),`\n`,_jsx(Heading,{level:`2`,id:`frequently-asked`,children:`Frequently asked`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Is this a billing engine that charges cards on a schedule?`}),`\nNo. A recurring service tracks the commitment and generates the jobs. You bill each visit through your normal invoice flow.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`How do visits get counted?`}),`\nCompleting the linked jobs is what advances the next-due date and fills in the visit history.`]})]})}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":"Recurring services","description":"Repeating customer commitments with cadence and next-due tracking.","href":"/guides/recurring-services"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"The list","slug":"the-list","depth":2,"children":[]},{"title":"A recurring service’s page","slug":"a-recurring-service’s-page","depth":2,"children":[]},{"title":"Create a recurring service","slug":"create-a-recurring-service","depth":2,"children":[]},{"title":"Statuses","slug":"statuses","depth":2,"children":[]},{"title":"Templates","slug":"templates","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":"Recurring services - ShineCRM Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-06-12T23:35:57.167Z","originalFileLocation":"guides/recurring-services.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=\"Repeating customer commitments with cadence and next-due tracking.\">\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=\"Recurring services - ShineCRM Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Repeating customer commitments with cadence and next-due tracking.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"ShineCRM Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.shinecx.com/guides/recurring-services\">\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=Estimates+%26+services\u0026amp;title=Recurring+services\u0026amp;description=Repeating+customer+commitments+with+cadence+and+next-due+tracking.\u0026amp;theme=847e6098ac129f4ff7ba583d\u0026amp;signature=82de92ba8659d4d4663a59bd1d382b152e42886b2d95187e9f0ac44ed4b1c493\">\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=\"Recurring services - ShineCRM Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Repeating customer commitments with cadence and next-due tracking.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://shinecrm.mintlify.app/_mintlify/api/og/v2?division=Estimates+%26+services\u0026amp;title=Recurring+services\u0026amp;description=Repeating+customer+commitments+with+cadence+and+next-due+tracking.\u0026amp;theme=847e6098ac129f4ff7ba583d\u0026amp;signature=82de92ba8659d4d4663a59bd1d382b152e42886b2d95187e9f0ac44ed4b1c493\">\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/recurring-services\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/guides/recurring-services.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/recurring-services#webpage\",\"url\":\"https://docs.shinecx.com/guides/recurring-services\",\"name\":\"Recurring services\",\"description\":\"Repeating customer commitments with cadence and next-due tracking.\",\"dateModified\":\"2026-06-12T23:35:57.167Z\",\"isPartOf\":{\"@id\":\"https://docs.shinecx.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.shinecx.com/guides/recurring-services#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.shinecx.com/guides/recurring-services#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Estimates \u0026 services\",\"item\":\"https://docs.shinecx.com/guides/services\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Recurring services\",\"item\":\"https://docs.shinecx.com/guides/recurring-services\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.shinecx.com/guides/recurring-services#article\",\"headline\":\"Recurring services\",\"name\":\"Recurring services\",\"description\":\"Repeating customer commitments with cadence and next-due tracking.\",\"url\":\"https://docs.shinecx.com/guides/recurring-services\",\"mainEntityOfPage\":{\"@id\":\"https://docs.shinecx.com/guides/recurring-services#webpage\"},\"dateModified\":\"2026-06-12T23:35:57.167Z\",\"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","description":"Saved discounts you reuse, and conditional discounts that apply themselves on the customer's quote.","href":"/guides/discounts"},{"title":"Recurring services","href":"/guides/recurring-services"}]},{"group":"Invoices \u0026 payments","pages":[{"title":"Invoices","description":"Create invoices, send them, collect payment, and handle refunds.","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","href":"/guides/jobs-scheduling"},{"title":"Jobs","href":"/guides/jobs"},{"title":"Calendar","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":"Recurring services - ShineCRM Docs","buildId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","deploymentId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","dynamics":[],"chunks":[]}