Planned permissions and owner controls for connected AI assistants.
The ShineCRM MCP server is in development. This page describes the planned owner controls and access boundaries. An operator REST API is not available today.
When MCP access is released, an organization owner will manage connections from Settings, then API & MCP in the web dashboard. The connection will act within your organization and only with the permissions you grant. Connection management will not be available in the mobile app.
Reading, creating and editing records will be separate permissions. A tool appearing in a compatible client’s catalogue will not grant additional access by itself.
Read permissions will cover the record types you choose, including contacts, requests, documents, appointments and accepted Recurring services.
Contact editing will need contacts.write as well as contacts.read. Saved address changes will use the same guarded contact update.
Invoice and job editing will need documents.update plus the matching document read permission. An existing documents.write grant will not acquire those edit capabilities.
Appointment changes will need visits.write, visits.read and contacts.read.
Recurring job booking will need service_plans.book, service_plans.read, jobs.read and contacts.read.
Initial and change-proposal drafts will need the applicable document and service_plans.proposals.write permissions. Preparing a draft will not activate recurring terms.
Financial reporting will remain read-only. Separately authorized invoice edits may change an unpaid balance. The owner-only payments.write permission will record a payment already received outside ShineCRM, rather than charge a card or issue a refund.
Existing credentials will keep their existing grants. New permissions added to Full operations will apply to future grants. An owner will need to approve any additional authority explicitly.The MCP server guide explains the planned tools and exact permission combinations.
Your assistant will need to find and read the exact record before editing it. It will return the revision from that read with the update. If the record changes in the meantime, ShineCRM will reject the stale edit instead of overwriting the newer version.Omitted fields will be preserved. A supplied invoice or job line list will replace that complete list, so existing line identities will need to be retained. A notes or due-date edit will not reprice unchanged invoice lines.After an uncertain response, the assistant will need to read and reconcile the saved record before retrying. Creation operations that use an idempotency key will require the same key and identical input for a retry.
Scheduling, recurring booking and lifecycle changes can run existing customer reminders, staff notifications, Google Calendar sync and completion review requests. These effects will follow the applicable organization settings and safeguards and may use messaging or AI allowances.An unpaid invoice price edit will coordinate with existing checkout and payment activity. Older open checkout terms will be retired before they can collect a replaced price. A submitted or processing payment will need a definite outcome before a conflicting edit completes. Your customer will keep the same invoice portal link and review updated payment details when needed.Editing will not create a charge, refund, credit or write-off. Recording an already-received manual payment may send the existing standard receipt when the invoice settles.
An owner will need to accept the connected-agent acknowledgement before granting access. You will choose the scope of each connection. You will be able to revoke one connection or disable external access for the organization.
Treat connection credentials like passwords. Do not paste them into chats, spreadsheets or customer messages.
Permission to edit a record or prepare a proposal will not approve a separate send. Before asking an assistant to send an email on your behalf, approve its exact subject and body and every To, Cc and Bcc recipient.Customer SMS will use separate prepare and approve-and-queue permissions. Neither will be included in a preset. Preparing a proposal for up to 10 recipients will not queue messages. An owner-authorized second call will need to approve the exact unchanged recipients and message bodies before they are queued. Existing consent, opt-out, quiet-hours and messaging safeguards will still apply.Frequently askedWill an assistant be able to charge a card or issue a refund? No. Authorized invoice edits will be able to change an unpaid balance, and the manual payment tool will record money already received. Neither will take or return money.Will a draft proposal immediately change Recurring services? No. Existing customer acceptance will remain the activation step.What if a team member leaves? An owner will be able to revoke their related connection from Settings, then API & MCP.
{"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":"6adfefd1d471959f06fd76e5","collectionId":"7e8999b2-f817-4e93-bc06-619c1da5c73a","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adfefd1d471959f06fd76e5"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae1020904ad391b285c5e89","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":"api-reference/introduction","slug":"/api-reference/introduction","pageMetadata":{"title":"Programmatic access","description":"Planned permissions and owner controls for connected AI assistants.","href":"/api-reference/introduction"},"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: \"Planned permissions and owner controls for connected AI assistants.\"\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`,code:`code`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Note,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Note,{children:_jsx(_components.p,{children:`The ShineCRM MCP server is in development. This page describes the planned owner controls and access boundaries. An operator REST API is not available today.`})}),`\n`,_jsxs(_components.p,{children:[`When MCP access is released, an organization owner will manage connections from `,_jsx(_components.strong,{children:`Settings`}),`, then `,_jsx(_components.strong,{children:`API \u0026 MCP`}),` in the web dashboard. The connection will act within your organization and only with the permissions you grant. Connection management will not be available in the mobile app.`]}),`\n`,_jsx(Heading,{level:`2`,id:`choose-what-your-assistant-may-do`,children:`Choose what your assistant may do`}),`\n`,_jsx(_components.p,{children:`Reading, creating and editing records will be separate permissions. A tool appearing in a compatible client’s catalogue will not grant additional access by itself.`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Read permissions will cover the record types you choose, including contacts, requests, documents, appointments and accepted `,_jsx(_components.strong,{children:`Recurring services`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Contact editing will need `,_jsx(_components.code,{children:`contacts.write`}),` as well as `,_jsx(_components.code,{children:`contacts.read`}),`. Saved address changes will use the same guarded contact update.`]}),`\n`,_jsxs(_components.li,{children:[`Invoice and job editing will need `,_jsx(_components.code,{children:`documents.update`}),` plus the matching document read permission. An existing `,_jsx(_components.code,{children:`documents.write`}),` grant will not acquire those edit capabilities.`]}),`\n`,_jsxs(_components.li,{children:[`Appointment changes will need `,_jsx(_components.code,{children:`visits.write`}),`, `,_jsx(_components.code,{children:`visits.read`}),` and `,_jsx(_components.code,{children:`contacts.read`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Recurring job booking will need `,_jsx(_components.code,{children:`service_plans.book`}),`, `,_jsx(_components.code,{children:`service_plans.read`}),`, `,_jsx(_components.code,{children:`jobs.read`}),` and `,_jsx(_components.code,{children:`contacts.read`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Initial and change-proposal drafts will need the applicable document and `,_jsx(_components.code,{children:`service_plans.proposals.write`}),` permissions. Preparing a draft will not activate recurring terms.`]}),`\n`,_jsxs(_components.li,{children:[`Financial reporting will remain read-only. Separately authorized invoice edits may change an unpaid balance. The owner-only `,_jsx(_components.code,{children:`payments.write`}),` permission will record a payment already received outside ShineCRM, rather than charge a card or issue a refund.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Existing credentials will keep their existing grants. New permissions added to `,_jsx(_components.strong,{children:`Full operations`}),` will apply to future grants. An owner will need to approve any additional authority explicitly.`]}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.a,{href:`/guides/ai/mcp-server`,children:`MCP server guide`}),` explains the planned tools and exact permission combinations.`]}),`\n`,_jsx(Heading,{level:`2`,id:`review-changes-before-saving`,children:`Review changes before saving`}),`\n`,_jsx(_components.p,{children:`Your assistant will need to find and read the exact record before editing it. It will return the revision from that read with the update. If the record changes in the meantime, ShineCRM will reject the stale edit instead of overwriting the newer version.`}),`\n`,_jsx(_components.p,{children:`Omitted fields will be preserved. A supplied invoice or job line list will replace that complete list, so existing line identities will need to be retained. A notes or due-date edit will not reprice unchanged invoice lines.`}),`\n`,_jsx(_components.p,{children:`After an uncertain response, the assistant will need to read and reconcile the saved record before retrying. Creation operations that use an idempotency key will require the same key and identical input for a retry.`}),`\n`,_jsx(Heading,{level:`2`,id:`understand-the-customer-effects`,children:`Understand the customer effects`}),`\n`,_jsx(_components.p,{children:`Scheduling, recurring booking and lifecycle changes can run existing customer reminders, staff notifications, Google Calendar sync and completion review requests. These effects will follow the applicable organization settings and safeguards and may use messaging or AI allowances.`}),`\n`,_jsx(_components.p,{children:`An unpaid invoice price edit will coordinate with existing checkout and payment activity. Older open checkout terms will be retired before they can collect a replaced price. A submitted or processing payment will need a definite outcome before a conflicting edit completes. Your customer will keep the same invoice portal link and review updated payment details when needed.`}),`\n`,_jsx(_components.p,{children:`Editing will not create a charge, refund, credit or write-off. Recording an already-received manual payment may send the existing standard receipt when the invoice settles.`}),`\n`,_jsx(Heading,{level:`2`,id:`keep-access-under-your-control`,children:`Keep access under your control`}),`\n`,_jsx(_components.p,{children:`An owner will need to accept the connected-agent acknowledgement before granting access. You will choose the scope of each connection. You will be able to revoke one connection or disable external access for the organization.`}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Treat connection credentials like passwords. Do not paste them into chats, spreadsheets or customer messages.`})}),`\n`,_jsx(Heading,{level:`2`,id:`keep-sending-approval-separate`,children:`Keep sending approval separate`}),`\n`,_jsx(_components.p,{children:`Permission to edit a record or prepare a proposal will not approve a separate send. Before asking an assistant to send an email on your behalf, approve its exact subject and body and every To, Cc and Bcc recipient.`}),`\n`,_jsx(_components.p,{children:`Customer SMS will use separate prepare and approve-and-queue permissions. Neither will be included in a preset. Preparing a proposal for up to 10 recipients will not queue messages. An owner-authorized second call will need to approve the exact unchanged recipients and message bodies before they are queued. Existing consent, opt-out, quiet-hours and messaging safeguards will still apply.`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Frequently asked`})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Will an assistant be able to charge a card or issue a refund?`}),` No. Authorized invoice edits will be able to change an unpaid balance, and the manual payment tool will record money already received. Neither will take or return money.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Will a draft proposal immediately change Recurring services?`}),` No. Existing customer acceptance will remain the activation step.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`What if a team member leaves?`}),` An owner will be able to revoke their related connection from `,_jsx(_components.strong,{children:`Settings`}),`, then `,_jsx(_components.strong,{children:`API \u0026 MCP`}),`.`]})]})}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":"Programmatic access","description":"Planned permissions and owner controls for connected AI assistants.","href":"/api-reference/introduction"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Choose what your assistant may do","slug":"choose-what-your-assistant-may-do","depth":2,"children":[]},{"title":"Review changes before saving","slug":"review-changes-before-saving","depth":2,"children":[]},{"title":"Understand the customer effects","slug":"understand-the-customer-effects","depth":2,"children":[]},{"title":"Keep access under your control","slug":"keep-access-under-your-control","depth":2,"children":[]},{"title":"Keep sending approval separate","slug":"keep-sending-approval-separate","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/shinecrm/87b1a48dea796140/analytics.js"],"subdomain":"shinecrm","siteName":"ShineCRM Docs","title":"Programmatic access - ShineCRM Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-26T00:07:08.829Z","originalFileLocation":"api-reference/introduction.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=\"Planned permissions and owner controls for connected AI assistants.\">\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=\"Programmatic access - ShineCRM Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Planned permissions and owner controls for connected AI assistants.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"ShineCRM Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.shinecx.com/api-reference/introduction\">\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=Overview\u0026amp;title=Programmatic+access\u0026amp;description=Planned+permissions+and+owner+controls+for+connected+AI+assistants.\u0026amp;theme=847e6098ac129f4ff7ba583d\u0026amp;signature=a351f377b341a6d5e1efc14c87e91d278d43cc7ca5ef9a87b527332833263e83\">\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=\"Programmatic access - ShineCRM Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Planned permissions and owner controls for connected AI assistants.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://shinecrm.mintlify.app/_mintlify/api/og/v2?division=Overview\u0026amp;title=Programmatic+access\u0026amp;description=Planned+permissions+and+owner+controls+for+connected+AI+assistants.\u0026amp;theme=847e6098ac129f4ff7ba583d\u0026amp;signature=a351f377b341a6d5e1efc14c87e91d278d43cc7ca5ef9a87b527332833263e83\">\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/api-reference/introduction\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/introduction.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/api-reference/introduction#webpage\",\"url\":\"https://docs.shinecx.com/api-reference/introduction\",\"name\":\"Programmatic access\",\"description\":\"Planned permissions and owner controls for connected AI assistants.\",\"dateModified\":\"2026-10-26T00:07:08.829Z\",\"isPartOf\":{\"@id\":\"https://docs.shinecx.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.shinecx.com/api-reference/introduction#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.shinecx.com/api-reference/introduction#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"ShineCRM Docs\",\"item\":\"https://docs.shinecx.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Programmatic access\",\"item\":\"https://docs.shinecx.com/api-reference/introduction\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.shinecx.com/api-reference/introduction#article\",\"headline\":\"Programmatic access\",\"name\":\"Programmatic access\",\"description\":\"Planned permissions and owner controls for connected AI assistants.\",\"url\":\"https://docs.shinecx.com/api-reference/introduction\",\"mainEntityOfPage\":{\"@id\":\"https://docs.shinecx.com/api-reference/introduction#webpage\"},\"dateModified\":\"2026-10-26T00:07:08.829Z\",\"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","pages":[{"title":"Guides","href":""}]},{"tab":"API reference","groups":[{"group":"Overview","pages":[{"title":"Programmatic access","href":"/api-reference/introduction"}]}]},{"tab":"Integrations","pages":[{"title":"Integrations","href":"/integrations/overview"}]},{"tab":"Support","pages":[{"title":"Support","href":"/support/contact"}]}]},"title":"Programmatic access - ShineCRM Docs","buildId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","deploymentId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","dynamics":[],"chunks":[]}