This connector is in open beta. You can freely enable it in your account.
The Moodle LMS integration allows you to sync LMS data between Moodle and your application through Kombo’s unified API. The tool slug for this connector is moodle.
Skills are sourced from Moodle competencies. Each competency within a competency framework is mapped to a skill.
Field
Notes
id
remote_id
changed_at
remote_deleted_at
name
remote_created_at
Courses
Field
Notes
id
remote_id
changed_at
remote_deleted_at
origin_id
remote_created_at
Course Revisions
Field
Notes
id
remote_id
changed_at
remote_deleted_at
course_id
title
description
status
remote_created_at
Course Progressions
Field
Notes
id
remote_id
changed_at
remote_deleted_at
user_id
course_revision_id
status
Moodle distinguishes between ‘complete pass’ and ‘complete fail’ (activity completed but grade below passing threshold) – both are currently unified to COMPLETED.
completed_at
Revision skills
Field
Notes
course_revision_id
skill_id
id
changed_at
remote_deleted_at
Upsert courses
Input Field
Notes
items.origin_id
items.course.type
items.course.title
items.course.description
items.course.languages
Deactivate course
This action sets the course visibility to hidden in Moodle. The course will not be visible to students but can be restored later.
Input Field
Notes
course_id
Enroll user in course
By default, the user will be enrolled in the course with a role ID 5, which is “Student” by default.
Input Field
Notes
user_id
course_revision_id
Complete course
Completion is set by overriding all activity completion statuses in the course. If the course has completion criteria requiring all activities to be complete, this will mark the course as complete. The score is applied to all activities that have grade items configured in the course gradebook. Moodle aggregates activity grades into the course total automatically. Scoring requires the course to have at least one graded activity – courses without grade items cannot receive a score.
Input Field
Notes
course_progression_id
completed_at
score
Feature
Notes
API Passthrough
Scope Testing
Per Model Tests
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Kombo","colors":{"primary":"#14b8a6","light":"#5eead4","dark":"#15B8A6"},"logo":{"light":"https://mintcdn.com/kombo/5G-BTSylUTnMNzUN/logo/light.svg?fit=max\u0026auto=format\u0026n=5G-BTSylUTnMNzUN\u0026q=85\u0026s=e63a5882dfad565ffad086e946e31625","dark":"https://mintcdn.com/kombo/BvlFKneaD6eycZI3/logo/dark.svg?fit=max\u0026auto=format\u0026n=BvlFKneaD6eycZI3\u0026q=85\u0026s=c326174907f14ee7bef0e17d62708eba"},"favicon":"https://mintcdn.com/kombo/2lUmYlLqJZfpPMTz/favicon.svg?fit=max\u0026auto=format\u0026n=2lUmYlLqJZfpPMTz\u0026q=85\u0026s=06bfda04e248fb862b34c4e972d4b1a8","api":{"mdx":{"auth":{"method":"bearer"},"server":"https://api.kombo.dev/v1"}},"navbar":{"links":[{"href":"https://app.kombo.dev","label":"Dashboard"}],"primary":{"type":"button","label":"Get a demo","href":"https://www.kombo.dev/demo"}},"footer":{"socials":{"website":"https://www.kombo.dev/","linkedin":"https://www.linkedin.com/company/kombo-api/about"}},"seo":{"indexing":"all"},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"kombo","hasAudioNarration":false,"actualSubdomain":"kombo","customDomains":["docs.kombo.dev"],"gitSource":{"type":"github","owner":"kombohq","repo":"docs-prod","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aea19cafb19e826efc55aab","collectionId":"1787a950-b026-4c81-b33e-a7f53b4345d1","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aea19cafb19e826efc55aab"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aea19cafb19e826efc55aab","clientVersion":"0.0.4067","searchFilterCounts":[{"language":"default","tag":"Developer documentation","count":696},{"language":"default","tag":"General","count":336},{"language":"default","tag":"Available Connectors","count":259},{"language":"default","tag":"HRIS","count":240},{"language":"default","tag":"ATS","count":238},{"language":"default","tag":"Features","count":114},{"language":"default","tag":"ATS Assessment \u0026 Background Check","count":90},{"language":"default","tag":"LMS","count":88},{"language":"default","tag":"Guides","count":75},{"language":"default","tag":"General API Reference","count":56}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[],"googleFontsInlined":false},"customCss":[{"filePath":"styles.css","content":"img[src^=\"https://storage.googleapis.com/kombo-assets/integrations/\"]{background-color:transparent!important}[data-name=\"frame\"] img{max-height:40vh}a[id]{scroll-margin-top:var(--scroll-mt)}"}],"page":{"pagePath":"lms/connectors/moodle","slug":"/lms/connectors/moodle","pageMetadata":{"title":"Moodle LMS Integration","description":"Moodle connector for Kombo's LMS API","sidebarTitle":"Moodle","icon":"https://storage.googleapis.com/kombo-assets/integrations/moodle/icon.svg","href":"/lms/connectors/moodle"},"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: \"Moodle connector for Kombo’s LMS API\"\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={code:`code`,li:`li`,p:`p`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,Card,CardGroup,Heading,Note,Tab,Table,Tabs}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);return _jsxs(_Fragment,{children:[_jsx(Note,{children:`This connector is in open beta. You can freely enable it in your account.`}),`\n`,_jsxs(_components.p,{children:[`The Moodle LMS integration allows you to sync LMS data between Moodle and your application through Kombo’s unified API. The tool slug for this connector is `,_jsx(_components.code,{children:`moodle`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`guides-and-resources`,children:`Guides and Resources`}),`\n`,_jsx(CardGroup,{cols:2,children:_jsx(Card,{title:`Connection Setup Guide`,icon:`link`,href:`https://help.kombo.dev/hc/en-us/articles/44938777668881-Moodle-How-do-I-link-my-account`,children:_jsx(_components.p,{children:`Step-by-step instructions to connect your Moodle account to Kombo.`})})}),`\n`,_jsx(Heading,{level:`2`,id:`general-notes`,children:`General Notes`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`This integration has only been tested with Moodle 5.x. Other versions may work but are not officially supported.`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`supported-features-\u0026-coverage`,children:`Supported Features \u0026 Coverage`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Models`,id:`models`,children:[_jsx(Accordion,{title:`Users`,id:`users`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Notes`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`id`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`remote_id`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`changed_at`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`remote_deleted_at`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`first_name`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`last_name`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`work_email`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`status`}),_jsx(_components.td,{})]})]})]})}),_jsxs(Accordion,{title:`Skills`,id:`skills`,children:[_jsx(Note,{children:_jsx(_components.p,{children:`Skills are sourced from Moodle competencies. Each competency within a competency framework is mapped to a skill.`})}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Notes`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`id`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`remote_id`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`changed_at`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`remote_deleted_at`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`name`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`remote_created_at`}),_jsx(_components.td,{})]})]})]})]}),_jsx(Accordion,{title:`Courses`,id:`courses`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Notes`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`id`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`remote_id`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`changed_at`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`remote_deleted_at`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`origin_id`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`remote_created_at`}),_jsx(_components.td,{})]})]})]})}),_jsx(Accordion,{title:`Course Revisions`,id:`course-revisions`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Notes`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`id`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`remote_id`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`changed_at`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`remote_deleted_at`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`course_id`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`title`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`description`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`status`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`remote_created_at`}),_jsx(_components.td,{})]})]})]})}),_jsx(Accordion,{title:`Course Progressions`,id:`course-progressions`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Notes`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`id`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`remote_id`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`changed_at`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`remote_deleted_at`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`user_id`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`course_revision_id`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`status`}),_jsxs(_components.td,{children:[`Moodle distinguishes between ‘complete pass’ and ‘complete fail’ (activity completed but grade below passing threshold) – both are currently unified to `,_jsx(_components.code,{children:`COMPLETED`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`completed_at`}),_jsx(_components.td,{})]})]})]})}),_jsx(Accordion,{title:`Revision skills`,id:`revision-skills`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Notes`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`course_revision_id`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`skill_id`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`id`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`changed_at`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`remote_deleted_at`}),_jsx(_components.td,{})]})]})]})})]}),_jsxs(Tab,{title:`Actions`,id:`actions`,children:[_jsx(Accordion,{title:`Upsert courses`,id:`upsert-courses`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Input Field`}),_jsx(_components.th,{children:`Notes`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`items.origin_id`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`items.course.type`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`items.course.title`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`items.course.description`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`items.course.languages`}),_jsx(_components.td,{})]})]})]})}),_jsxs(Accordion,{title:`Deactivate course`,id:`deactivate-course`,children:[_jsx(Note,{children:_jsx(_components.p,{children:`This action sets the course visibility to hidden in Moodle. The course will not be visible to students but can be restored later.`})}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Input Field`}),_jsx(_components.th,{children:`Notes`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`course_id`}),_jsx(_components.td,{})]})})]})]}),_jsxs(Accordion,{title:`Enroll user in course`,id:`enroll-user-in-course`,children:[_jsx(Note,{children:_jsx(_components.p,{children:`By default, the user will be enrolled in the course with a role ID 5, which is “Student” by default.`})}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Input Field`}),_jsx(_components.th,{children:`Notes`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`user_id`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`course_revision_id`}),_jsx(_components.td,{})]})]})]})]}),_jsxs(Accordion,{title:`Complete course`,id:`complete-course`,children:[_jsx(Note,{children:_jsx(_components.p,{children:`Completion is set by overriding all activity completion statuses in the course. If the course has completion criteria requiring all activities to be complete, this will mark the course as complete. The score is applied to all activities that have grade items configured in the course gradebook. Moodle aggregates activity grades into the course total automatically. Scoring requires the course to have at least one graded activity – courses without grade items cannot receive a score.`})}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Input Field`}),_jsx(_components.th,{children:`Notes`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`course_progression_id`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`completed_at`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`score`}),_jsx(_components.td,{})]})]})]})]})]}),_jsx(Tab,{title:`Features`,id:`features`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Feature`}),_jsx(_components.th,{children:`Notes`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`API Passthrough`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Scope Testing`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Per Model Tests`}),_jsx(_components.td,{})]})]})]})})]})]})}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":"Moodle LMS Integration","description":"Moodle connector for Kombo's LMS API","sidebarTitle":"Moodle","icon":"https://storage.googleapis.com/kombo-assets/integrations/moodle/icon.svg","href":"/lms/connectors/moodle"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Guides and Resources","slug":"guides-and-resources","depth":2,"children":[]},{"title":"General Notes","slug":"general-notes","depth":2,"children":[]},{"title":"Supported Features \u0026 Coverage","slug":"supported-features-\u0026-coverage","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/kombo/807f792f5d0ef37a/rb2b.js","/_mintlify/custom/kombo/6fdcec7d895f83f2/auto-expand-response-fields.js"],"subdomain":"kombo","siteName":"Kombo","title":"Moodle LMS Integration - Kombo","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-08T13:42:29.932Z","originalFileLocation":"lms/connectors/moodle.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=\"Moodle connector for Kombo\u0026#x27;s LMS API\">\u003cmeta data-mint-head name=\"application-name\" content=\"Kombo\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/kombo/wSCKBGtwRd2fRaqL/_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/kombo/wSCKBGtwRd2fRaqL/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/kombo/wSCKBGtwRd2fRaqL/_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/kombo/wSCKBGtwRd2fRaqL/_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/kombo/wSCKBGtwRd2fRaqL/_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/kombo/wSCKBGtwRd2fRaqL/_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/kombo/wSCKBGtwRd2fRaqL/_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/kombo/wSCKBGtwRd2fRaqL/_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/kombo/wSCKBGtwRd2fRaqL/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Moodle LMS Integration - Kombo\">\u003cmeta data-mint-head property=\"og:description\" content=\"Moodle connector for Kombo\u0026#x27;s LMS API\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Kombo\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.kombo.dev/lms/connectors/moodle\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://kombo.mintlify.app/_mintlify/api/og/v2?division=Available+Connectors\u0026amp;title=Moodle+LMS+Integration\u0026amp;description=Moodle+connector+for+Kombo%27s+LMS+API\u0026amp;theme=6aaa982de16023004d39177d\u0026amp;signature=92fd8c60a9319cef203122d619a6674dbf5e4fc6ccf3a8feb8a522b58de21e05\">\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=\"Moodle LMS Integration - Kombo\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Moodle connector for Kombo\u0026#x27;s LMS API\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://kombo.mintlify.app/_mintlify/api/og/v2?division=Available+Connectors\u0026amp;title=Moodle+LMS+Integration\u0026amp;description=Moodle+connector+for+Kombo%27s+LMS+API\u0026amp;theme=6aaa982de16023004d39177d\u0026amp;signature=92fd8c60a9319cef203122d619a6674dbf5e4fc6ccf3a8feb8a522b58de21e05\">\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/kombo/wSCKBGtwRd2fRaqL/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Kombo\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#14b8a6\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.kombo.dev/lms/connectors/moodle\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/lms/connectors/moodle.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.kombo.dev/#organization\",\"name\":\"Kombo\",\"url\":\"https://docs.kombo.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/kombo/5G-BTSylUTnMNzUN/logo/light.svg?fit=max\u0026auto=format\u0026n=5G-BTSylUTnMNzUN\u0026q=85\u0026s=e63a5882dfad565ffad086e946e31625\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.kombo.dev#website\",\"name\":\"Kombo\",\"url\":\"https://docs.kombo.dev\",\"publisher\":{\"@id\":\"https://docs.kombo.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.kombo.dev/lms/connectors/moodle#webpage\",\"url\":\"https://docs.kombo.dev/lms/connectors/moodle\",\"name\":\"Moodle LMS Integration\",\"description\":\"Moodle connector for Kombo's LMS API\",\"dateModified\":\"2026-10-08T13:42:29.932Z\",\"isPartOf\":{\"@id\":\"https://docs.kombo.dev#website\"},\"breadcrumb\":{\"@id\":\"https://docs.kombo.dev/lms/connectors/moodle#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.kombo.dev/lms/connectors/moodle#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"General\",\"item\":\"https://docs.kombo.dev/lms/introduction\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Available Connectors\",\"item\":\"https://docs.kombo.dev/lms/connectors\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Moodle LMS Integration\",\"item\":\"https://docs.kombo.dev/lms/connectors/moodle\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.kombo.dev/lms/connectors/moodle#article\",\"headline\":\"Moodle LMS Integration\",\"name\":\"Moodle LMS Integration\",\"description\":\"Moodle connector for Kombo's LMS API\",\"url\":\"https://docs.kombo.dev/lms/connectors/moodle\",\"mainEntityOfPage\":{\"@id\":\"https://docs.kombo.dev/lms/connectors/moodle#webpage\"},\"dateModified\":\"2026-10-08T13:42:29.932Z\",\"publisher\":{\"@id\":\"https://docs.kombo.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.kombo.dev#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Kombo\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Kombo","nav":{"global":null,"tabs":[{"tab":"Developer documentation","icon":"code","anchors":[{"anchor":"Overview","pages":[{"title":"Overview","href":"/introduction"}]},{"anchor":"HRIS","icon":"users","pages":[{"title":"HRIS","href":"/hris/introduction"}]},{"anchor":"LMS","icon":"graduation-cap","groups":[{"group":"General","icon":"circle-info","pages":[{"title":"Introduction","icon":"book-open","href":"/lms/introduction"},{"group":"Getting started","icon":"signs-post","pages":[{"title":"Overview","icon":"rocket","href":"/lms/getting-started"},{"title":"Sandbox Integrations","icon":"flask","href":"/lms/getting-started/sandbox-integrations"},{"title":"Creating Integrations","icon":"link","href":"/lms/getting-started/create-integrations"},{"title":"Authentication","icon":"key","href":"/lms/getting-started/authentication"},{"title":"Querying the API","icon":"magnifying-glass","href":"/lms/getting-started/querying-api"},{"title":"Fetching Data","icon":"download","href":"/lms/getting-started/fetching-data"}]},{"group":"Implementation guides","icon":"user-magnifying-glass","pages":[{"title":"Setup","icon":"wrench","href":"/lms/implementation-guide/setup"},{"title":"Connection setup","icon":"link","href":"/lms/implementation-guide/connection-setup"},{"title":"Content providers","icon":"book-open-reader","href":"/lms/implementation-guide/content-providers"},{"title":"SSO and identity matching","icon":"id-card","href":"/lms/implementation-guide/sso-and-identity-matching"},{"title":"Talent management","icon":"chart-user","href":"/lms/implementation-guide/talent-management"}]},{"group":"Available Connectors","icon":"plug","pages":[{"title":"Available LMS Connectors","sidebarTitle":"Overview","icon":"grid-2","href":"/lms/connectors"},{"title":"360Learning LMS Integration","sidebarTitle":"360Learning","icon":"https://storage.googleapis.com/kombo-assets/integrations/360learning/icon.svg","href":"/lms/connectors/360learning"},{"title":"Cornerstone OnDemand LMS Integration","sidebarTitle":"Cornerstone OnDemand","icon":"https://storage.googleapis.com/kombo-assets/integrations/cornerstoneondemand/icon.svg","href":"/lms/connectors/cornerstoneondemand"},{"title":"Coursera LMS Integration","sidebarTitle":"Coursera","icon":"https://storage.googleapis.com/kombo-assets/integrations/coursera/icon.svg","href":"/lms/connectors/coursera"},{"title":"Docebo LMS Integration","sidebarTitle":"Docebo","icon":"https://storage.googleapis.com/kombo-assets/integrations/docebo/icon.svg","href":"/lms/connectors/docebo"},{"title":"Kombo Sandbox LMS Integration","sidebarTitle":"Kombo Sandbox","icon":"https://storage.googleapis.com/kombo-assets/integrations/sandbox/icon.svg","href":"/lms/connectors/sandbox"},{"title":"LinkedIn Learning LMS Integration","description":"LinkedIn Learning connector for Kombo's LMS API","sidebarTitle":"LinkedIn Learning","icon":"https://storage.googleapis.com/kombo-assets/integrations/linkedinlearning/icon.svg","href":"/lms/connectors/linkedinlearning"},{"title":"Moodle LMS Integration","sidebarTitle":"Moodle","icon":"https://storage.googleapis.com/kombo-assets/integrations/moodle/icon.svg","href":"/lms/connectors/moodle"},{"title":"SAP SuccessFactors LMS Integration","description":"SAP SuccessFactors connector for Kombo's LMS API","sidebarTitle":"SAP SuccessFactors","icon":"https://storage.googleapis.com/kombo-assets/integrations/successfactors/icon.svg","href":"/lms/connectors/successfactors"},{"title":"TalentLMS LMS Integration","sidebarTitle":"TalentLMS","icon":"https://storage.googleapis.com/kombo-assets/integrations/talentlms/icon.svg","href":"/lms/connectors/talentlms"},{"title":"Udemy Business LMS Integration","sidebarTitle":"Udemy Business","icon":"https://storage.googleapis.com/kombo-assets/integrations/udemy/icon.svg","href":"/lms/connectors/udemy"},{"title":"Workday LMS Integration","sidebarTitle":"Workday","icon":"https://storage.googleapis.com/kombo-assets/integrations/workday/icon.svg","href":"/lms/connectors/workday"}]},{"title":"Important Changes","icon":"bell","href":"/lms/important-changes"}]},{"group":"Features","icon":"cubes","pages":[{"title":"Data Explorer","icon":"table","href":"/lms/features/data-explorer"},{"title":"Setup Flow","icon":"sliders","href":"/lms/features/setup-flow/introduction"},{"title":"Custom Fields","icon":"square-plus","href":"/lms/features/custom-fields"},{"title":"Advanced Mappings","icon":"brackets-curly","href":"/lms/features/advanced-mappings"},{"group":"Remapping","icon":"shuffle","pages":[{"title":"Introduction","icon":"shuffle","href":"/lms/features/remapping/introduction"},{"title":"Remapping simple fields","icon":"sliders","href":"/lms/features/remapping/simple-remapping"},{"title":"Remapping enum fields","icon":"list-check","href":"/lms/features/remapping/enum-remapping"},{"title":"Remapping date fields","icon":"calendar-days","href":"/lms/features/remapping/date-remapping"},{"title":"Remapping address fields","icon":"map","href":"/lms/features/remapping/struct-remapping"},{"title":"Remapping reference fields","icon":"link","href":"/lms/features/remapping/reference-remapping"},{"title":"Remapping array fields","icon":"brackets-curly","href":"/lms/features/remapping/array-remapping"},{"title":"Kombo default fallback","icon":"rotate-left","href":"/lms/features/remapping/kombo-default-fallback"}]},{"title":"Logs","icon":"scroll","href":"/lms/features/logs"},{"title":"Issues","icon":"triangle-exclamation","href":"/lms/features/issues"},{"title":"Issue types","icon":"triangle-exclamation","href":"/lms/features/issue-types"},{"title":"Deletion Policy","icon":"trash","href":"/lms/features/deletion-policy"},{"title":"Passthrough API","icon":"right-left","href":"/lms/features/passthrough-api"},{"title":"Komboman","icon":"terminal","href":"/lms/features/komboman"},{"title":"Extend write endpoints","icon":"wand-magic-sparkles","href":"/lms/features/remote-fields"},{"title":"Scopes","icon":"bullseye","href":"/lms/features/scopes"},{"title":"Audit Logs","icon":"clipboard-list","href":"/lms/features/audit-logs"}]},{"group":"Guides","icon":"book-open","pages":[{"group":"Kombo Connect","icon":"link","pages":[{"title":"Introduction","icon":"link","href":"/lms/guides/connect/introduction"},{"title":"Manual setup","icon":"wrench","href":"/lms/guides/connect/manual-setup"},{"title":"Magic links","icon":"wand-magic-sparkles","href":"/lms/guides/connect/magic-links"},{"title":"Embedded flow","icon":"puzzle-piece","href":"/lms/guides/connect/embedded-flow"},{"title":"Reconnecting an integration","icon":"arrow-rotate-right","href":"/lms/guides/connect/reconnection"}]},{"title":"How Kombo Syncs Data","icon":"arrows-rotate","href":"/lms/guides/sync"},{"title":"Error Handling","icon":"bug-slash","href":"/guides/errors"},{"title":"Concurrency Limiting","icon":"gauge-max","href":"/lms/guides/concurrency-limiting"},{"title":"Async Endpoints","icon":"clock","href":"/lms/guides/async-endpoints"},{"title":"Webhooks","icon":"bolt","href":"/lms/guides/webhooks"},{"title":"Upstream webhooks","icon":"cloud-arrow-down","href":"/lms/guides/upstream-webhooks"},{"title":"Integration States","icon":"traffic-light","href":"/lms/guides/integration-states"},{"title":"Implementing New Tools","icon":"toolbox","href":"/lms/guides/implementing-new-tools"},{"title":"Environments","icon":"building","href":"/lms/guides/environments"},{"title":"Partner Credentials","icon":"handshake","href":"/lms/guides/partner-credentials"},{"title":"Static IPs","icon":"shield-check","href":"/lms/guides/static-ips"},{"group":"Troubleshooting","icon":"bug","pages":[{"title":"How to troubleshoot issues with Kombo","icon":"life-ring","href":"/lms/guides/debugging/introduction"},{"title":"Troubleshoot connection flow problems","icon":"link-slash","href":"/lms/guides/debugging/debug-connection-flow"},{"title":"Investigate failing actions","icon":"bolt","href":"/lms/guides/debugging/investigate-failing-actions"},{"title":"Diagnosing missing or incorrect data","icon":"magnifying-glass","href":"/lms/guides/debugging/debug-data-issues"}]}]},{"group":"LMS API Reference","icon":"book","pages":[{"group":"Users","icon":"users","pages":[{"title":"Get users","openapi":"GET /lms/users","href":"/lms/v1/get-users"}]},{"group":"Skills","icon":"star","pages":[{"title":"Get skills","openapi":"GET /lms/skills","href":"/lms/v1/get-skills"}]},{"group":"Courses","icon":"book-open","pages":[{"title":"Get courses","openapi":"GET /lms/courses","href":"/lms/v1/get-courses"},{"title":"Upsert courses","openapi":"POST /lms/courses/bulk","href":"/lms/v1/post-courses-bulk"},{"title":"Get status of “Upsert courses” task","openapi":"GET /lms/courses/bulk/{task_id}","href":"/lms/v1/get-courses-bulk-task-id"},{"title":"Deactivate course","openapi":"POST /lms/courses/{course_id}/deactivate","href":"/lms/v1/post-courses-course-id-deactivate"}]},{"group":"Progress","icon":"chart-line","pages":[{"title":"Get course progressions","openapi":"GET /lms/course-progressions","href":"/lms/v1/get-course-progressions"},{"title":"Enroll user in course","openapi":"POST /lms/course-progressions","href":"/lms/v1/post-course-progressions"},{"title":"Complete course","openapi":"POST /lms/course-progressions/{course_progression_id}/complete","href":"/lms/v1/post-course-progressions-course-progression-id-complete"}]}]},{"group":"General API Reference","pages":[{"group":"Kombo Connect","icon":"link","pages":[{"title":"Create connection link","openapi":"POST /connect/create-link","href":"/lms/v1/post-connect-create-link"},{"title":"Get integration by token","openapi":"GET /connect/integration-by-token/{token}","href":"/lms/v1/get-connect-integration-by-token-token"},{"title":"Activate integration (optional)","openapi":"POST /connect/activate-integration","href":"/lms/v1/post-connect-activate-integration"},{"title":"Create reconnection link","openapi":"POST /integrations/{integration_id}/relink","href":"/lms/v1/post-integrations-integration-id-relink"},{"title":"Create Setup Flow link","openapi":"POST /integrations/{integration_id}/setup-link","href":"/lms/v1/post-integrations-integration-id-setup-link"},{"title":"Get tools","openapi":"GET /tools/{category}","href":"/lms/v1/get-tools-category"}]},{"group":"Integrations","icon":"plug","pages":[{"title":"Get integration details","openapi":"GET /integrations/{integration_id}","href":"/lms/v1/get-integrations-integration-id"},{"title":"Set integration enabled","openapi":"PUT /integrations/{integration_id}/enabled","href":"/lms/v1/put-integrations-integration-id-enabled"},{"title":"Delete integration","openapi":"DELETE /integrations/{integration_id}","href":"/lms/v1/delete-integrations-integration-id"},{"title":"Trigger sync","openapi":"POST /force-sync","href":"/lms/v1/post-force-sync"}]},{"group":"Filtering","icon":"filter","pages":[{"title":"Create provisioning setup link (deprecated)","openapi":"POST /hris/provisioning-groups/{group_id}/setup-links","href":"/lms/v1/post-hris-provisioning-groups-group-id-setup-links"}]},{"group":"Custom Fields","icon":"square-plus","pages":[{"title":"Get custom fields with current mappings","openapi":"GET /integrations/{integration_id}/custom-fields","href":"/lms/v1/get-integrations-integration-id-custom-fields"}]},{"group":"Other","icon":"ellipsis","pages":[{"title":"Check API key","openapi":"GET /check-api-key","href":"/lms/v1/get-check-api-key"},{"title":"Send passthrough request","openapi":"POST /passthrough/{tool}/{api}","href":"/lms/v1/post-passthrough-tool-api"}]}]}]},{"anchor":"ATS","icon":"briefcase","pages":[{"title":"ATS","href":"/ats/introduction"}]},{"anchor":"ATS Assessment \u0026 Background Check","icon":"ballot-check","pages":[{"title":"ATS Assessment \u0026 Background Check","href":"/assessment/introduction"}]},{"anchor":"AI Apply","icon":"browser","pages":[{"title":"AI Apply","href":"/ai-apply/introduction"}]},{"anchor":"Changelog","icon":"book","href":"https://changelog.kombo.dev"},{"anchor":"Status","icon":"wave-pulse","href":"https://status.kombo.dev"}]},{"tab":"Help Center","icon":"life-ring","pages":[{"title":"Help Center","href":"/help-center"}]}]},"basePath":"","title":"Moodle LMS Integration - Kombo","buildId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","deploymentId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","dynamics":[],"chunks":[]}