diff --git a/classes/log/store.php b/classes/log/store.php
index a79e842804c24cb5ce10a4a1b5555d10ad4bd35d..c35e33a17ab4d7b3d1decc04cd27fc94f4afe8b6 100755
--- a/classes/log/store.php
+++ b/classes/log/store.php
@@ -104,6 +104,8 @@ class store extends php_obj implements log_writer {
                 'send_short_course_id' => $this->get_config('shortcourseid', false),
                 'send_course_and_module_idnumber' => $this->get_config('sendidnumber', false),
                 'send_username' => $this->get_config('send_username', false),
+                'send_jisc_data' => $this->get_config('send_jisc_data', false),
+                'session_id' => sesskey(),
                 'plugin_url' => 'https://github.com/xAPI-vle/moodle-logstore_xapi',
                 'plugin_version' => $plugin->release,
                 'repo' => new \src\transformer\repos\MoodleRepository($DB),
diff --git a/lang/en/logstore_xapi.php b/lang/en/logstore_xapi.php
index e922c8e9af3f31931c53e202c9b6decbb44b5855..6cb759044738522ea3e678999cbbd48ca81fd55d 100644
--- a/lang/en/logstore_xapi.php
+++ b/lang/en/logstore_xapi.php
@@ -43,6 +43,8 @@ $string['mbox'] = 'Identify users by email';
 $string['mbox_desc'] = 'Statements will identify users with their email (mbox) when this box is ticked.';
 $string['send_username'] = 'Identify users by id';
 $string['send_username_desc'] = 'Statements will identify users with their username when this box is ticked, but only if identifying users by email is disabled.';
+$string['send_jisc_data'] = 'Adds JISC data to statements';
+$string['send_jisc_data_desc'] = 'Statements will contain data required by JISC.';
 $string['shortcourseid'] = 'Send short course name';
 $string['shortcourseid_desc'] = 'Statements will contain the shortname for a course as a short course id extension';
 $string['sendidnumber'] = 'Send course and activity ID number';
diff --git a/settings.php b/settings.php
index 011cc9a8cbb9c521825a98a54eb1028dc87bcb76..b287a557271a42efc1cb654187df292b10d55faa 100644
--- a/settings.php
+++ b/settings.php
@@ -59,6 +59,10 @@ if ($hassiteconfig) {
         get_string('send_username', 'logstore_xapi'),
         get_string('send_username_desc', 'logstore_xapi'), 0));
 
+    $settings->add(new admin_setting_configcheckbox('logstore_xapi/send_jisc_data',
+        get_string('send_jisc_data', 'logstore_xapi'),
+        get_string('send_jisc_data_desc', 'logstore_xapi'), 0));
+
     $settings->add(new admin_setting_configcheckbox('logstore_xapi/sendresponsechoices',
        get_string('send_response_choices', 'logstore_xapi'),
        get_string('send_response_choices_desc', 'logstore_xapi'), 0));
diff --git a/src/transformer/events/all/course_module_viewed.php b/src/transformer/events/all/course_module_viewed.php
index edb802fcbab7015033b9c1baa7d1f452f57f7bdb..c588b328e1e8530bfd8d75e46158d7f9bd3a90e0 100644
--- a/src/transformer/events/all/course_module_viewed.php
+++ b/src/transformer/events/all/course_module_viewed.php
@@ -44,9 +44,7 @@ function course_module_viewed(array $config, \stdClass $event) {
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/events/core/course_completed.php b/src/transformer/events/core/course_completed.php
index 8323b2353dd626f17aa881f073905bd3e59481ef..e0b29057930cac4027f43e43595e69b3c76c8335 100644
--- a/src/transformer/events/core/course_completed.php
+++ b/src/transformer/events/core/course_completed.php
@@ -39,9 +39,7 @@ function course_completed(array $config, \stdClass $event) {
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config)
diff --git a/src/transformer/events/core/course_module_completion_updated.php b/src/transformer/events/core/course_module_completion_updated.php
index e1d8c3f17a2ab8ee6c94f1a11cdcf624773d21de..c869d85eb4c35ef43ed75dd0d36c2210442de694 100644
--- a/src/transformer/events/core/course_module_completion_updated.php
+++ b/src/transformer/events/core/course_module_completion_updated.php
@@ -47,9 +47,7 @@ function course_module_completion_updated(array $config, \stdClass $event) {
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/events/core/course_viewed.php b/src/transformer/events/core/course_viewed.php
index e9a8554616350916fa4a8bde64017aa39066eab9..51ecd149492ebf4ebe7c73e679080f0836c1615c 100644
--- a/src/transformer/events/core/course_viewed.php
+++ b/src/transformer/events/core/course_viewed.php
@@ -39,9 +39,7 @@ function course_viewed(array $config, \stdClass $event) {
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config)
diff --git a/src/transformer/events/core/user_created.php b/src/transformer/events/core/user_created.php
index cce18cadd85f6854e6dac14833243a02be7aa6f4..611fcb0208649dccc9bd000e02481309443d27b0 100644
--- a/src/transformer/events/core/user_created.php
+++ b/src/transformer/events/core/user_created.php
@@ -38,9 +38,7 @@ function user_created(array $config, \stdClass $event) {
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, null),
             'contextActivities' => [
                 'category' => [
                     utils\get_activity\source($config)
diff --git a/src/transformer/events/core/user_enrolment_created.php b/src/transformer/events/core/user_enrolment_created.php
index 5bed801345f262f749d87ba330bdfebe761f8638..222ed63a56069b160033c4bad7c42bf7b067f441 100644
--- a/src/transformer/events/core/user_enrolment_created.php
+++ b/src/transformer/events/core/user_enrolment_created.php
@@ -39,9 +39,7 @@ function user_enrolment_created(array $config, \stdClass $event) {
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config)
diff --git a/src/transformer/events/core/user_loggedin.php b/src/transformer/events/core/user_loggedin.php
index 04e2643183a2ed340da756ecda55c352068cc661..dd95747b69f1de748e7e2a32749b3fd56672b82f 100644
--- a/src/transformer/events/core/user_loggedin.php
+++ b/src/transformer/events/core/user_loggedin.php
@@ -38,9 +38,7 @@ function user_loggedin(array $config, \stdClass $event) {
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, null),
             'contextActivities' => [
                 'category' => [
                     utils\get_activity\source($config)
diff --git a/src/transformer/events/core/user_loggedout.php b/src/transformer/events/core/user_loggedout.php
index 31d3da236035b4abaf4d6a6604c7f46508bbe88d..2ea42fbadacb72824ab9beeed9eded7a1935308d 100644
--- a/src/transformer/events/core/user_loggedout.php
+++ b/src/transformer/events/core/user_loggedout.php
@@ -38,9 +38,7 @@ function user_loggedout(array $config, \stdClass $event) {
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, null),
             'contextActivities' => [
                 'category' => [
                     utils\get_activity\source($config)
diff --git a/src/transformer/events/mod_assign/assignment_graded.php b/src/transformer/events/mod_assign/assignment_graded.php
index ec5d17151fdb5e9cc9308cb3f49c3ad6bfed8ade..47a84810eebd4cf4a7b9819c6eea21b4c175476e 100644
--- a/src/transformer/events/mod_assign/assignment_graded.php
+++ b/src/transformer/events/mod_assign/assignment_graded.php
@@ -76,9 +76,7 @@ function assignment_graded(array $config, \stdClass $event) {
             'instructor' => utils\get_user($config, $instructor),
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/events/mod_assign/assignment_submitted.php b/src/transformer/events/mod_assign/assignment_submitted.php
index f404d72b7c8228a8888f762e9f5315946f7cb7fe..f752663924b05aa22dfe2b4b07af5bc55d7226b8 100644
--- a/src/transformer/events/mod_assign/assignment_submitted.php
+++ b/src/transformer/events/mod_assign/assignment_submitted.php
@@ -41,9 +41,7 @@ function assignment_submitted(array $config, \stdClass $event) {
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/events/mod_book/chapter_viewed.php b/src/transformer/events/mod_book/chapter_viewed.php
index 87dcc209072cf7406dd261a50dfa9e22958807ec..1a2dd71f632e407003515d45c3568eef8a4b0c09 100644
--- a/src/transformer/events/mod_book/chapter_viewed.php
+++ b/src/transformer/events/mod_book/chapter_viewed.php
@@ -40,9 +40,7 @@ function chapter_viewed(array $config, \stdClass $event) {
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/events/mod_book/course_module_viewed.php b/src/transformer/events/mod_book/course_module_viewed.php
index 9e419a82fec23ef087ba4dc0f6a016c558b61cc9..ea175080790be4a8cb40be50a9fca6c3255e7d49 100644
--- a/src/transformer/events/mod_book/course_module_viewed.php
+++ b/src/transformer/events/mod_book/course_module_viewed.php
@@ -44,9 +44,7 @@ function course_module_viewed(array $config, \stdClass $event) {
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/events/mod_chat/course_module_viewed.php b/src/transformer/events/mod_chat/course_module_viewed.php
index 304b762bce0220e3ed9e9f22ddfc67d0b2258f09..87ca326ecc3664858f41a37e274ad4069ba78ce7 100644
--- a/src/transformer/events/mod_chat/course_module_viewed.php
+++ b/src/transformer/events/mod_chat/course_module_viewed.php
@@ -44,9 +44,7 @@ function course_module_viewed(array $config, \stdClass $event) {
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/events/mod_facetoface/cancel_booking.php b/src/transformer/events/mod_facetoface/cancel_booking.php
index c9861614bbc8a41560345a3acfd59319f4b89722..2fed96e407081dd7ec1b3a5cba505befcac21173 100644
--- a/src/transformer/events/mod_facetoface/cancel_booking.php
+++ b/src/transformer/events/mod_facetoface/cancel_booking.php
@@ -44,9 +44,7 @@ function cancel_booking(array $config, \stdClass $event) {
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/events/mod_facetoface/course_module_viewed.php b/src/transformer/events/mod_facetoface/course_module_viewed.php
index 68402051985e71b278448ee5fdd3c3c41b2fb5c6..48de22f25090051cde2d4f3ae91308c27f317e13 100644
--- a/src/transformer/events/mod_facetoface/course_module_viewed.php
+++ b/src/transformer/events/mod_facetoface/course_module_viewed.php
@@ -44,9 +44,7 @@ function course_module_viewed(array $config, \stdClass $event) {
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/events/mod_facetoface/signup_success.php b/src/transformer/events/mod_facetoface/signup_success.php
index 5c0d876d102cad0cf6c1a3fc3ac9a577d11cb331..32e75e8e777970937461c92ace6b34d319a40460 100644
--- a/src/transformer/events/mod_facetoface/signup_success.php
+++ b/src/transformer/events/mod_facetoface/signup_success.php
@@ -44,9 +44,7 @@ function signup_success(array $config, \stdClass $event) {
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/events/mod_facetoface/take_attendance.php b/src/transformer/events/mod_facetoface/take_attendance.php
index dc3da221ccd93133d24139beefea2fd1f2f58a3a..521ae75c71390c79687b352337b13f0a8f2f44f1 100644
--- a/src/transformer/events/mod_facetoface/take_attendance.php
+++ b/src/transformer/events/mod_facetoface/take_attendance.php
@@ -61,9 +61,7 @@ function take_attendance(array $config, \stdClass $event) {
                         'platform' => $config['source_name'],
                         'language' => $lang,
                         'instructor' => utils\get_user($config, $user),
-                        'extensions' => [
-                            utils\INFO_EXTENSION => utils\get_info($config, $event),
-                        ],
+                        'extensions' => utils\extensions\base($config, $event, $course),
                         'contextActivities' => [
                             'grouping' => [
                                 utils\get_activity\site($config),
diff --git a/src/transformer/events/mod_feedback/course_module_viewed.php b/src/transformer/events/mod_feedback/course_module_viewed.php
index 7ba6b5cd9d15ac30a89f3ef7d30da61f1cc35e2c..0b33e0f0ed64fcb3d8dcce9ac004823d4efcb545 100644
--- a/src/transformer/events/mod_feedback/course_module_viewed.php
+++ b/src/transformer/events/mod_feedback/course_module_viewed.php
@@ -39,9 +39,7 @@ function course_module_viewed(array $config, \stdClass $event) {
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/events/mod_feedback/item_answered/multichoice.php b/src/transformer/events/mod_feedback/item_answered/multichoice.php
index bf8a1b8896b5545b297763e08e11c4555aff70bf..5cc9235275513ba2eeb54ab53e45fac76d473638 100644
--- a/src/transformer/events/mod_feedback/item_answered/multichoice.php
+++ b/src/transformer/events/mod_feedback/item_answered/multichoice.php
@@ -58,9 +58,7 @@ function multichoice(array $config, \stdClass $event, \stdClass $feedbackvalue,
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/events/mod_feedback/item_answered/multichoicerated.php b/src/transformer/events/mod_feedback/item_answered/multichoicerated.php
index e8703d81ce4303eff8a823872ebdbaa3ef7402ce..d08e12c6477c6214fd46ed96c106db81f25fb1f4 100644
--- a/src/transformer/events/mod_feedback/item_answered/multichoicerated.php
+++ b/src/transformer/events/mod_feedback/item_answered/multichoicerated.php
@@ -69,9 +69,7 @@ function multichoicerated(array $config, \stdClass $event, \stdClass $feedbackva
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/events/mod_feedback/item_answered/numerical.php b/src/transformer/events/mod_feedback/item_answered/numerical.php
index 19dc94d9e0f47f468f0ea8770d935fe549594238..c46551d19541175425805cec0267803597d4ccb9 100644
--- a/src/transformer/events/mod_feedback/item_answered/numerical.php
+++ b/src/transformer/events/mod_feedback/item_answered/numerical.php
@@ -56,9 +56,7 @@ function numerical(array $config, \stdClass $event, \stdClass $feedbackvalue, \s
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/events/mod_feedback/item_answered/textarea.php b/src/transformer/events/mod_feedback/item_answered/textarea.php
index d92cc4897dde1724af36e75a79c6a5ab56fb9f47..0c0b0a0b2f844b534c9ce339b46fc22a4de4d81b 100644
--- a/src/transformer/events/mod_feedback/item_answered/textarea.php
+++ b/src/transformer/events/mod_feedback/item_answered/textarea.php
@@ -53,9 +53,7 @@ function textarea(array $config, \stdClass $event, \stdClass $feedbackvalue, \st
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/events/mod_feedback/item_answered/textfield.php b/src/transformer/events/mod_feedback/item_answered/textfield.php
index 451e19559b15e622372142c5f3da74fa31fdec1f..2ab539dfe38b7cad6b4a12d9c2e8ba966ab66d72 100644
--- a/src/transformer/events/mod_feedback/item_answered/textfield.php
+++ b/src/transformer/events/mod_feedback/item_answered/textfield.php
@@ -53,9 +53,7 @@ function textfield(array $config, \stdClass $event, \stdClass $feedbackvalue, \s
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/events/mod_feedback/response_submitted/response_submitted.php b/src/transformer/events/mod_feedback/response_submitted/response_submitted.php
index 403f33d604ab3fdfecd52ee2a989b9fb6c983907..0d4cd2edf9db6866c16020bacdde30379a5e06f4 100644
--- a/src/transformer/events/mod_feedback/response_submitted/response_submitted.php
+++ b/src/transformer/events/mod_feedback/response_submitted/response_submitted.php
@@ -41,9 +41,7 @@ function response_submitted(array $config, \stdClass $event) {
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/events/mod_forum/course_module_viewed.php b/src/transformer/events/mod_forum/course_module_viewed.php
index dd0cb85bb03a0b7dafc70eda6da2c939c790a93d..b5d887831f4aa363e4363254c6691fcb94b9fba6 100644
--- a/src/transformer/events/mod_forum/course_module_viewed.php
+++ b/src/transformer/events/mod_forum/course_module_viewed.php
@@ -39,9 +39,7 @@ function course_module_viewed(array $config, \stdClass $event) {
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/events/mod_forum/discussion_viewed.php b/src/transformer/events/mod_forum/discussion_viewed.php
index 0530553e4948fe7a5941afbc65508c97aaecaae6..b3c753b9f957aef4f053906f4335c2c1ccadb5c8 100644
--- a/src/transformer/events/mod_forum/discussion_viewed.php
+++ b/src/transformer/events/mod_forum/discussion_viewed.php
@@ -40,9 +40,7 @@ function discussion_viewed(array $config, \stdClass $event) {
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/events/mod_forum/user_report_viewed.php b/src/transformer/events/mod_forum/user_report_viewed.php
index fbbf4539660881fc895183b9b572cccb833603d2..19170d504a7cae7ed6ecf6a1e33336548e74a3a0 100644
--- a/src/transformer/events/mod_forum/user_report_viewed.php
+++ b/src/transformer/events/mod_forum/user_report_viewed.php
@@ -48,9 +48,7 @@ function user_report_viewed(array $config, \stdClass $event) {
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/events/mod_lesson/course_module_viewed.php b/src/transformer/events/mod_lesson/course_module_viewed.php
index 72163db2aac7e51c818834508ed664b7de4f6e1c..af7c5bac4e9f43a7dd43ee7409998f65b0d7e89e 100644
--- a/src/transformer/events/mod_lesson/course_module_viewed.php
+++ b/src/transformer/events/mod_lesson/course_module_viewed.php
@@ -44,9 +44,7 @@ function course_module_viewed(array $config, \stdClass $event) {
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/events/mod_page/course_module_viewed.php b/src/transformer/events/mod_page/course_module_viewed.php
index 2bf7540db791fc51cc8064473d5ddd3635d37054..11400be2d54ce2fea55519550100eae9e8e99118 100644
--- a/src/transformer/events/mod_page/course_module_viewed.php
+++ b/src/transformer/events/mod_page/course_module_viewed.php
@@ -44,9 +44,7 @@ function course_module_viewed(array $config, \stdClass $event) {
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/events/mod_quiz/attempt_reviewed.php b/src/transformer/events/mod_quiz/attempt_reviewed.php
index afa8dfe267c48c7015cd25b22fc6ebee44185837..c940f8b580b36f1d47bf068d2b801f0efa6e4bb3 100644
--- a/src/transformer/events/mod_quiz/attempt_reviewed.php
+++ b/src/transformer/events/mod_quiz/attempt_reviewed.php
@@ -52,9 +52,7 @@ function attempt_reviewed(array $config, \stdClass $event) {
             'instructor' => utils\get_user($config, $instructor),
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/events/mod_quiz/attempt_started.php b/src/transformer/events/mod_quiz/attempt_started.php
index 30fa959f806fcf13c47c76286783d75fc301f0f1..94531bd5c78c78ad4609511ae1744f5495b7dd07 100644
--- a/src/transformer/events/mod_quiz/attempt_started.php
+++ b/src/transformer/events/mod_quiz/attempt_started.php
@@ -42,9 +42,7 @@ function attempt_started(array $config, \stdClass $event) {
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'other' => [
                     utils\get_activity\quiz_attempt($config, $attempt->id, $event->contextinstanceid),
diff --git a/src/transformer/events/mod_quiz/attempt_submitted/attempt_submitted.php b/src/transformer/events/mod_quiz/attempt_submitted/attempt_submitted.php
index 0d13ff6fcb1779a5ee0955ced8d40f4ffb76416f..c8c6f04dea18abf0d9fdbfeb45e288dbca4bc194 100644
--- a/src/transformer/events/mod_quiz/attempt_submitted/attempt_submitted.php
+++ b/src/transformer/events/mod_quiz/attempt_submitted/attempt_submitted.php
@@ -51,9 +51,7 @@ function attempt_submitted(array $config, \stdClass $event) {
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'other' => [
                     utils\get_activity\quiz_attempt($config, $attempt->id, $coursemodule->id),
diff --git a/src/transformer/events/mod_quiz/attempt_viewed.php b/src/transformer/events/mod_quiz/attempt_viewed.php
index 72733955bd903fe974f6443989343923e1e7a47c..5354fbcd38f6f678d9338aeb3446139ea3878931 100644
--- a/src/transformer/events/mod_quiz/attempt_viewed.php
+++ b/src/transformer/events/mod_quiz/attempt_viewed.php
@@ -39,9 +39,7 @@ function attempt_viewed(array $config, \stdClass $event) {
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/events/mod_quiz/course_module_viewed.php b/src/transformer/events/mod_quiz/course_module_viewed.php
index abd6e1e261eeca4ae849b7810942495a35d4bd78..c9a30ab902bb1bec29d3f2c6f8662c9365869258 100644
--- a/src/transformer/events/mod_quiz/course_module_viewed.php
+++ b/src/transformer/events/mod_quiz/course_module_viewed.php
@@ -39,9 +39,7 @@ function course_module_viewed(array $config, \stdClass $event) {
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/events/mod_quiz/question_answered/essay.php b/src/transformer/events/mod_quiz/question_answered/essay.php
index 70764675124a040303944018f9ffc3a057079cec..1210d988a7d7892835ed1f199df299a133a89857 100644
--- a/src/transformer/events/mod_quiz/question_answered/essay.php
+++ b/src/transformer/events/mod_quiz/question_answered/essay.php
@@ -57,9 +57,7 @@ function essay(array $config, \stdClass $event, \stdClass $questionattempt, \std
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/events/mod_quiz/question_answered/gapselect.php b/src/transformer/events/mod_quiz/question_answered/gapselect.php
index faf5a35f9ee45e2c6650f7f58ec7e1b941b8288e..b757d6ff3be6a62f427e8d59eb3b1ce0846f785c 100644
--- a/src/transformer/events/mod_quiz/question_answered/gapselect.php
+++ b/src/transformer/events/mod_quiz/question_answered/gapselect.php
@@ -54,9 +54,7 @@ function gapselect(array $config, \stdClass $event, \stdClass $questionattempt,
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/events/mod_quiz/question_answered/match.php b/src/transformer/events/mod_quiz/question_answered/match.php
index 4db425ebb7250127bec411c4f19b353afb25594b..11538584f8bca8a42ca08e1766b5adb29c1d8d43 100644
--- a/src/transformer/events/mod_quiz/question_answered/match.php
+++ b/src/transformer/events/mod_quiz/question_answered/match.php
@@ -70,9 +70,7 @@ function match(array $config, \stdClass $event, \stdClass $questionattempt, \std
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/events/mod_quiz/question_answered/multichoice.php b/src/transformer/events/mod_quiz/question_answered/multichoice.php
index 696964b5edcf2df2b0580aea8f28e9ec41c2acd4..7a695b81a09aa5cccdfe8df3276392225a492211 100644
--- a/src/transformer/events/mod_quiz/question_answered/multichoice.php
+++ b/src/transformer/events/mod_quiz/question_answered/multichoice.php
@@ -53,9 +53,7 @@ function multichoice(array $config, \stdClass $event, \stdClass $questionattempt
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/events/mod_quiz/question_answered/numerical.php b/src/transformer/events/mod_quiz/question_answered/numerical.php
index 93dc47d227f30e86fd33b82a3ff3f5cabe41974a..cdc36f175b3ae8eeb3ace1e5ccd9f7c35f566d8a 100644
--- a/src/transformer/events/mod_quiz/question_answered/numerical.php
+++ b/src/transformer/events/mod_quiz/question_answered/numerical.php
@@ -59,9 +59,7 @@ function numerical(array $config, \stdClass $event, \stdClass $questionattempt,
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/events/mod_quiz/question_answered/randomsamatch.php b/src/transformer/events/mod_quiz/question_answered/randomsamatch.php
index df14dbd5a5305916fdf94290337734eabdb2f186..a99ea102f696262c73e230686a2da43b544e7759 100644
--- a/src/transformer/events/mod_quiz/question_answered/randomsamatch.php
+++ b/src/transformer/events/mod_quiz/question_answered/randomsamatch.php
@@ -70,9 +70,7 @@ function randomsamatch(array $config, \stdClass $event, \stdClass $questionattem
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/events/mod_quiz/question_answered/shortanswer.php b/src/transformer/events/mod_quiz/question_answered/shortanswer.php
index f7024e2126288df0822129e6d54c6cf75c91682d..511f46d73bae2f0a5d48573f3133b44e63a76a81 100644
--- a/src/transformer/events/mod_quiz/question_answered/shortanswer.php
+++ b/src/transformer/events/mod_quiz/question_answered/shortanswer.php
@@ -55,9 +55,7 @@ function shortanswer(array $config, \stdClass $event, \stdClass $questionattempt
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/events/mod_quiz/question_answered/truefalse.php b/src/transformer/events/mod_quiz/question_answered/truefalse.php
index f48c28c75314f8b1bc2fb01c36fe0c85eb84b10a..dce6f8672c87625a9e35bfcd50e3f2140fb8c925 100644
--- a/src/transformer/events/mod_quiz/question_answered/truefalse.php
+++ b/src/transformer/events/mod_quiz/question_answered/truefalse.php
@@ -59,9 +59,7 @@ function truefalse(array $config, \stdClass $event, \stdClass $questionattempt,
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/events/mod_resource/course_module_viewed.php b/src/transformer/events/mod_resource/course_module_viewed.php
index 68f2473c2f887fc82eef1d126a647face0306956..170a2797f2ad639ea0c90be1b590ff8e8eca5615 100644
--- a/src/transformer/events/mod_resource/course_module_viewed.php
+++ b/src/transformer/events/mod_resource/course_module_viewed.php
@@ -44,9 +44,7 @@ function course_module_viewed(array $config, \stdClass $event) {
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/events/mod_scorm/course_module_viewed.php b/src/transformer/events/mod_scorm/course_module_viewed.php
index d352f600ff31a8d8261570664c3fb1b3f7fb49d9..582c4f246baaf30e11431ad43c776ad4bcabd35c 100644
--- a/src/transformer/events/mod_scorm/course_module_viewed.php
+++ b/src/transformer/events/mod_scorm/course_module_viewed.php
@@ -44,9 +44,7 @@ function course_module_viewed(array $config, \stdClass $event) {
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/events/mod_scorm/sco_launched.php b/src/transformer/events/mod_scorm/sco_launched.php
index 1dbe4c71fa92a1ea31ae3de8e8c0063bc404b30d..611d610c30d0411d145f0d9f937b84704e2f5fb2 100644
--- a/src/transformer/events/mod_scorm/sco_launched.php
+++ b/src/transformer/events/mod_scorm/sco_launched.php
@@ -40,9 +40,7 @@ function sco_launched(array $config, \stdClass $event) {
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/events/mod_scorm/scoreraw_submitted.php b/src/transformer/events/mod_scorm/scoreraw_submitted.php
index 4b05cb62f99e5f43d2af8b483cee6aa399d2c2d8..eebfcec8f64b60fe46ec21bf6b7c7abf1f2a5729 100644
--- a/src/transformer/events/mod_scorm/scoreraw_submitted.php
+++ b/src/transformer/events/mod_scorm/scoreraw_submitted.php
@@ -46,9 +46,7 @@ function scoreraw_submitted(array $config, \stdClass $event) {
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/events/mod_scorm/status_submitted.php b/src/transformer/events/mod_scorm/status_submitted.php
index e4b31abf6318e4b720c4e355a00c3fadaeec6596..cde969511cc45c29016119139a612b0aa7938330 100644
--- a/src/transformer/events/mod_scorm/status_submitted.php
+++ b/src/transformer/events/mod_scorm/status_submitted.php
@@ -44,9 +44,7 @@ function status_submitted(array $config, \stdClass $event) {
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/events/mod_survey/course_module_viewed.php b/src/transformer/events/mod_survey/course_module_viewed.php
index 9623a0e065b98ea580217301a85a16a5d040524c..3d96879a5214a0288b89f5b65daccea60f259757 100644
--- a/src/transformer/events/mod_survey/course_module_viewed.php
+++ b/src/transformer/events/mod_survey/course_module_viewed.php
@@ -44,9 +44,7 @@ function course_module_viewed(array $config, \stdClass $event) {
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/events/mod_url/course_module_viewed.php b/src/transformer/events/mod_url/course_module_viewed.php
index 293f8596e81c7e976114ef22758e428b246ce216..4e8ca362c43bb1a9fee6aba028666e33eb1c23e9 100644
--- a/src/transformer/events/mod_url/course_module_viewed.php
+++ b/src/transformer/events/mod_url/course_module_viewed.php
@@ -44,9 +44,7 @@ function course_module_viewed(array $config, \stdClass $event) {
         'context' => [
             'platform' => $config['source_name'],
             'language' => $lang,
-            'extensions' => [
-                utils\INFO_EXTENSION => utils\get_info($config, $event),
-            ],
+            'extensions' => utils\extensions\base($config, $event, $course),
             'contextActivities' => [
                 'grouping' => [
                     utils\get_activity\site($config),
diff --git a/src/transformer/utils/constants.php b/src/transformer/utils/extensions/base.php
similarity index 78%
rename from src/transformer/utils/constants.php
rename to src/transformer/utils/extensions/base.php
index 74cbc8c5a5f8e43ef58345bfd9d795091701da94..a7cb7aefae84677da96d2401875bdf429f0c0960 100644
--- a/src/transformer/utils/constants.php
+++ b/src/transformer/utils/extensions/base.php
@@ -14,7 +14,12 @@
 // You should have received a copy of the GNU General Public License
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
-namespace src\transformer\utils;
+namespace src\transformer\utils\extensions;
 defined('MOODLE_INTERNAL') || die();
 
-const INFO_EXTENSION = 'http://lrs.learninglocker.net/define/extensions/info';
+function base(array $config, \stdClass $event, $course) {
+    return array_merge(
+        info($config, $event),
+        jisc($config, $event, $course)
+    );
+}
diff --git a/src/transformer/utils/get_info.php b/src/transformer/utils/extensions/course_area.php
similarity index 71%
rename from src/transformer/utils/get_info.php
rename to src/transformer/utils/extensions/course_area.php
index 82d10e9ba6ae00567b25eadcf7e3d2d4201c8335..cf0b748c29e41ba84aabec10575f20939670f840 100644
--- a/src/transformer/utils/get_info.php
+++ b/src/transformer/utils/extensions/course_area.php
@@ -14,14 +14,16 @@
 // You should have received a copy of the GNU General Public License
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
-namespace src\transformer\utils;
+namespace src\transformer\utils\extensions;
 defined('MOODLE_INTERNAL') || die();
 
-function get_info(array $config, \stdClass $event) {
+function course_area($course) {
+    if ($course === null) {
+        return [];
+    }
     return [
-        $config['source_url'] => $config['source_version'],
-        $config['plugin_url'] => $config['plugin_version'],
-        'event_name' => $event->eventname,
-        'event_function' => $config['event_function'],
+        'http://xapi.jisc.ac.uk/courseArea' => [
+            'http://xapi.jisc.ac.uk/vle_mod_id' => $course->shortname,
+        ],
     ];
 }
diff --git a/src/transformer/utils/extensions/info.php b/src/transformer/utils/extensions/info.php
new file mode 100644
index 0000000000000000000000000000000000000000..e4bd43bed4a379bb1fb9d89371891aee3a48e209
--- /dev/null
+++ b/src/transformer/utils/extensions/info.php
@@ -0,0 +1,29 @@
+<?php
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
+
+namespace src\transformer\utils\extensions;
+defined('MOODLE_INTERNAL') || die();
+
+function info(array $config, \stdClass $event) {
+    return [
+        'http://lrs.learninglocker.net/define/extensions/info' => [
+            $config['source_url'] => $config['source_version'],
+            $config['plugin_url'] => $config['plugin_version'],
+            'event_name' => $event->eventname,
+            'event_function' => $config['event_function'],
+        ],
+    ];
+}
diff --git a/src/transformer/utils/extensions/jisc.php b/src/transformer/utils/extensions/jisc.php
new file mode 100644
index 0000000000000000000000000000000000000000..95d6133a5ed71d7848ce4f1e18aaf2e6b5da7552
--- /dev/null
+++ b/src/transformer/utils/extensions/jisc.php
@@ -0,0 +1,34 @@
+<?php
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
+
+namespace src\transformer\utils\extensions;
+defined('MOODLE_INTERNAL') || die();
+
+use src\transformer\utils as utils;
+
+function jisc(array $config, \stdClass $event, $course) {
+    if (utils\is_enabled_config($config, 'send_jisc_data')) {
+        return array_merge(
+            [
+                'http://xapi.jisc.ac.uk/sessionId' => $config['session_id'],
+                'http://id.tincanapi.com/extension/ip-address' => $event->ip,
+                'http://xapi.jisc.ac.uk/statementCat' => 'VLE',
+            ],
+            course_area($course)
+        );
+    }
+    return [];
+}
diff --git a/tests/core/course_completed/send_jisc_data/data.json b/tests/core/course_completed/send_jisc_data/data.json
new file mode 100644
index 0000000000000000000000000000000000000000..a6a648d27c20e805fec3769a3ff0003171e58a99
--- /dev/null
+++ b/tests/core/course_completed/send_jisc_data/data.json
@@ -0,0 +1,17 @@
+{
+    "user": [
+        {
+            "id": 1,
+            "firstname": "test_fullname",
+            "email": "test@test.com"
+        }
+    ],
+    "course": [
+        {
+            "id": 1,
+            "fullname": "test_name",
+            "lang": "en",
+            "shortname": "test_course_short_name"
+        }
+    ]
+}
\ No newline at end of file
diff --git a/tests/core/course_completed/send_jisc_data/event.json b/tests/core/course_completed/send_jisc_data/event.json
new file mode 100644
index 0000000000000000000000000000000000000000..8691e02627983424cf3e89884eb021a5b207dd89
--- /dev/null
+++ b/tests/core/course_completed/send_jisc_data/event.json
@@ -0,0 +1,10 @@
+{
+    "id": 1,
+    "relateduserid": 1,
+    "courseid": 1,
+    "timecreated": 1433946701,
+    "objecttable": "course",
+    "objectid": 1,
+    "eventname": "\\core\\event\\course_completed",
+    "ip": "127.0.0.1"
+}
\ No newline at end of file
diff --git a/tests/core/course_completed/send_jisc_data/statements.json b/tests/core/course_completed/send_jisc_data/statements.json
new file mode 100644
index 0000000000000000000000000000000000000000..94c42949231ab5c4de65cd49c0398fc0bab7f383
--- /dev/null
+++ b/tests/core/course_completed/send_jisc_data/statements.json
@@ -0,0 +1,69 @@
+[
+    {
+        "actor": {
+            "name": "test_fullname",
+            "account": {
+                "homePage": "http:\/\/www.example.org",
+                "name": "1"
+            }
+        },
+        "verb": {
+            "id": "http:\/\/adlnet.gov\/expapi\/verbs\/completed",
+            "display": {
+                "en": "completed"
+            }
+        },
+        "object": {
+            "id": "http:\/\/www.example.org\/course\/view.php?id=1",
+            "definition": {
+                "type": "http:\/\/id.tincanapi.com\/activitytype\/lms\/course",
+                "name": {
+                    "en": "test_name"
+                }
+            }
+        },
+        "timestamp": "2015-06-10T15:31:41+01:00",
+        "context": {
+            "platform": "Moodle",
+            "language": "en",
+            "extensions": {
+                "http:\/\/lrs.learninglocker.net\/define\/extensions\/info": {
+                    "http:\/\/moodle.org": "1.0.0",
+                    "https:\/\/github.com\/xAPI-vle\/moodle-logstore_xapi": "0.0.0-development",
+                    "event_name": "\\core\\event\\course_completed",
+                    "event_function": "\\src\\transformer\\events\\core\\course_completed"
+                },
+                "http:\/\/xapi.jisc.ac.uk\/sessionId": "test_session_id",
+                "http:\/\/id.tincanapi.com\/extension\/ip-address": "127.0.0.1",
+                "http:\/\/xapi.jisc.ac.uk\/statementCat": "VLE",
+                "http:\/\/xapi.jisc.ac.uk\/courseArea": {
+                    "http:\/\/xapi.jisc.ac.uk\/vle_mod_id": "test_course_short_name"
+                }
+            },
+            "contextActivities": {
+                "grouping": [
+                    {
+                        "id": "http:\/\/www.example.org",
+                        "definition": {
+                            "type": "http:\/\/id.tincanapi.com\/activitytype\/lms",
+                            "name": {
+                                "en": "test_name"
+                            }
+                        }
+                    }
+                ],
+                "category": [
+                    {
+                        "id": "http:\/\/moodle.org",
+                        "definition": {
+                            "type": "http:\/\/id.tincanapi.com\/activitytype\/source",
+                            "name": {
+                                "en": "Moodle"
+                            }
+                        }
+                    }
+                ]
+            }
+        }
+    }
+]
\ No newline at end of file
diff --git a/tests/core/course_completed/send_jisc_data/test.php b/tests/core/course_completed/send_jisc_data/test.php
new file mode 100644
index 0000000000000000000000000000000000000000..8249aafb104944940c09e66532fa19ecf9c88bb3
--- /dev/null
+++ b/tests/core/course_completed/send_jisc_data/test.php
@@ -0,0 +1,32 @@
+<?php
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
+
+namespace tests\core\course_completed\send_jisc_data;
+defined('MOODLE_INTERNAL') || die();
+
+class test extends \tests\xapi_test_case {
+    protected function get_test_dir() {
+        return __DIR__;
+    }
+
+    protected function get_transformer_config() {
+        $testdata = $this->get_test_data();
+        $transformerconfig = parent::get_transformer_config();
+        return array_merge($transformerconfig, [
+            'send_jisc_data' => true,
+        ]);
+    }
+}
\ No newline at end of file
diff --git a/tests/core/user_created/send_jisc_data/data.json b/tests/core/user_created/send_jisc_data/data.json
new file mode 100644
index 0000000000000000000000000000000000000000..a6a648d27c20e805fec3769a3ff0003171e58a99
--- /dev/null
+++ b/tests/core/user_created/send_jisc_data/data.json
@@ -0,0 +1,17 @@
+{
+    "user": [
+        {
+            "id": 1,
+            "firstname": "test_fullname",
+            "email": "test@test.com"
+        }
+    ],
+    "course": [
+        {
+            "id": 1,
+            "fullname": "test_name",
+            "lang": "en",
+            "shortname": "test_course_short_name"
+        }
+    ]
+}
\ No newline at end of file
diff --git a/tests/core/user_created/send_jisc_data/event.json b/tests/core/user_created/send_jisc_data/event.json
new file mode 100644
index 0000000000000000000000000000000000000000..cef12764184e6004a38ac4e9b0c807181609794f
--- /dev/null
+++ b/tests/core/user_created/send_jisc_data/event.json
@@ -0,0 +1,10 @@
+{
+    "id": 1,
+    "relateduserid": 1,
+    "courseid": 1,
+    "timecreated": 1433946701,
+    "objecttable": "user",
+    "objectid": 1,
+    "eventname": "\\core\\event\\user_created",
+    "ip": "127.0.0.1"
+}
\ No newline at end of file
diff --git a/tests/core/user_created/send_jisc_data/statements.json b/tests/core/user_created/send_jisc_data/statements.json
new file mode 100644
index 0000000000000000000000000000000000000000..96fe37393d3f491daf24245e677ac06cdff609f5
--- /dev/null
+++ b/tests/core/user_created/send_jisc_data/statements.json
@@ -0,0 +1,55 @@
+[
+    {
+        "actor": {
+            "name": "test_fullname",
+            "account": {
+                "homePage": "http:\/\/www.example.org",
+                "name": "1"
+            }
+        },
+        "verb": {
+            "id": "http:\/\/adlnet.gov\/expapi\/verbs\/registered",
+            "display": {
+                "en": "registered to"
+            }
+        },
+        "object": {
+            "id": "http:\/\/www.example.org",
+            "definition": {
+                "type": "http:\/\/id.tincanapi.com\/activitytype\/lms",
+                "name": {
+                    "en": "test_name"
+                }
+            }
+        },
+        "timestamp": "2015-06-10T15:31:41+01:00",
+        "context": {
+            "platform": "Moodle",
+            "language": "en",
+            "extensions": {
+                "http:\/\/lrs.learninglocker.net\/define\/extensions\/info": {
+                    "http:\/\/moodle.org": "1.0.0",
+                    "https:\/\/github.com\/xAPI-vle\/moodle-logstore_xapi": "0.0.0-development",
+                    "event_name": "\\core\\event\\user_created",
+                    "event_function": "\\src\\transformer\\events\\core\\user_created"
+                },
+                "http:\/\/xapi.jisc.ac.uk\/sessionId": "test_session_id",
+                "http:\/\/id.tincanapi.com\/extension\/ip-address": "127.0.0.1",
+                "http:\/\/xapi.jisc.ac.uk\/statementCat": "VLE"
+            },
+            "contextActivities": {
+                "category": [
+                    {
+                        "id": "http:\/\/moodle.org",
+                        "definition": {
+                            "type": "http:\/\/id.tincanapi.com\/activitytype\/source",
+                            "name": {
+                                "en": "Moodle"
+                            }
+                        }
+                    }
+                ]
+            }
+        }
+    }
+]
\ No newline at end of file
diff --git a/tests/core/user_created/send_jisc_data/test.php b/tests/core/user_created/send_jisc_data/test.php
new file mode 100644
index 0000000000000000000000000000000000000000..7409f362ef55d0f42bf7b08aaafb37f334185399
--- /dev/null
+++ b/tests/core/user_created/send_jisc_data/test.php
@@ -0,0 +1,32 @@
+<?php
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
+
+namespace tests\core\user_created\send_jisc_data;
+defined('MOODLE_INTERNAL') || die();
+
+class test extends \tests\xapi_test_case {
+    protected function get_test_dir() {
+        return __DIR__;
+    }
+
+    protected function get_transformer_config() {
+        $testdata = $this->get_test_data();
+        $transformerconfig = parent::get_transformer_config();
+        return array_merge($transformerconfig, [
+            'send_jisc_data' => true,
+        ]);
+    }
+}
\ No newline at end of file
diff --git a/tests/xapi_test_case.php b/tests/xapi_test_case.php
index 1c961ac5c24bfac96f07318b2d41e3ab628a11bf..834465cd0a2221109d8193b52f63045dbfb552f8 100644
--- a/tests/xapi_test_case.php
+++ b/tests/xapi_test_case.php
@@ -79,6 +79,8 @@ abstract class xapi_test_case extends PhpUnitTestCase {
             'send_short_course_id' => false,
             'send_course_and_module_idnumber' => false,
             'send_username' => false,
+            'send_jisc_data' => false,
+            'session_id' => 'test_session_id',
             'plugin_url' => 'https://github.com/xAPI-vle/moodle-logstore_xapi',
             'plugin_version' => '0.0.0-development',
             'repo' => new \src\transformer\repos\TestRepository($testdata),