Skip to content

Integrations

Overview

Integrations covers the mechanisms through which Open edX connects to external systems — LTI (Learning Tools Interoperability), SCORM, webhooks, enterprise system connectors, and API-based integrations with HR, CRM, and other institutional tools.

LTI is the primary standards-based integration protocol and Open edX is both a consumer (embedding external tools in courses) and a provider (offering courses as LTI content to external platforms).

Current State (2026)

  • LTI Consumer: xblock-lti-consumer supports LTI 1.1 and LTI 1.3; allows embedding external tools as XBlocks in course content
  • LTI Provider: Open edX can serve as an LTI provider (exposing courses to other LMS platforms); built into edx-platform
  • Webhooks: openedx-webhooks provides outbound webhooks for platform events (enrollment, completion, etc.)
  • Enterprise integrations: enterprise-integrated-channels connects to SAP SuccessFactors, Degreed, Canvas, Cornerstone, and other enterprise systems
  • Event bus: event-bus-kafka / event-bus-redis enables event-driven integration with external systems via Open edX Events

Architecture

  • LTI Consumer XBlock: xblock-lti-consumer renders as a content block; manages OAuth2 (LTI 1.1) or OIDC (LTI 1.3) handshake; handles deep linking
  • LTI Provider: edx-platform implements the LTI provider protocol; serves course content to external consumers
  • Webhooks: Configurable outbound HTTP POST to external URLs on platform events; payload defined per event type
  • Enterprise channels: Per-integration Django modules in enterprise-integrated-channels; polling-based sync for learner progress data
  • Event bus: Kafka or Redis Streams event bus carries Open edX Events (OEP-41) to external consumers

Relevant Repositories

RepositoryRole in This FeatureActivity LevelNotes
openedx/xblock-lti-consumerLTI 1.1 and 1.3 consumer XBlockHighMost-used integration
openedx/openedx-webhooksOutbound webhook systemLowEvent-driven integration
openedx/enterprise-integrated-channelsEnterprise system connectorsMediumHR/LMS sync
openedx/event-bus-kafkaKafka event bus backendMediumAsync integration
openedx/event-bus-redisRedis Streams event bus backendMediumLighter-weight alt
openedx/openedx-platformLTI provider, API endpoints for integrationHighCore integration surface

Recent Changes

  • LTI 1.3 support maturation in xblock-lti-consumer
  • Event bus becoming the preferred integration mechanism for async workflows

History

Origin

  • Year introduced: ~2013–2014 (LTI support added early; enterprise integrations came with B2B growth)
  • Initial implementation: LTI 1.1 consumer as an XBlock; basic outbound API for integration
  • Context: Educational institutions required interoperability with their existing systems; LTI was the emerging standard

Key Milestones

YearMilestoneTeams / People Involved
~2013–2014LTI 1.1 consumer XBlock addedUnknown
~2016–2017Enterprise integrated channels developmentUnknown
~2019–2020LTI 1.3 support addedUnknown
~2021–2022Event bus (Kafka/Redis) for async integrationUnknown

People Who Shaped This Area

  • Engineering: Unknown — open question for interview
  • Product: Unknown — open question for interview
  • Design: Unknown — open question for interview

Open Questions

  • [ ] When was LTI support first added and who drove the implementation?
  • [ ] Which enterprise integrated channels were built first and for which customers?
  • [ ] How does the LTI 1.3 OIDC flow work in xblock-lti-consumer?
  • [ ] What drove the decision to build event-bus-kafka vs. using existing messaging solutions?
  • [ ] What are the most common integration patterns in production Open edX deployments?

Schema Education — Internal Research