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
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
LTI 1.1 consumer XBlock added
Enterprise integrated channels development
LTI 1.3 support added
Event bus (Kafka/Redis) for async integration
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?