Event Queues

The imc Learning Suite provides the option to use an event queue to receive real-time information about specific events, enabling integration scenarios with third-party systems. The folowing documentation describes the currently available events. For on-premise installations, the imc Learning Suite package includes an Apache ActiveMQ

Artemis installation (https://activemq.apache.org/components/artemis/documentation/ ). imc hosted cloud installations use the Azure Service Bus as the event queue (https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-messaging-overview)

The messages / events are sent as AMQP messages with the information itself in a JSON body. This JSON body is documented here for the individual messages. The messages / events will be sent to separate topics for the separate / event types, and the following topics are used for the respective event types:

Topic name 

Event type

de.imc.ils_login 

Login Events

de.imc.ils_course-changes 

Course Events – Course Changes

de.imc.ils_registrations 

Enrolment Events – all

de.imc.ils_completions 

Enrolment Events – only completions

de.imc.ils_cancellations 

Enrolment Events – only cancellations

de.imc.ils_recert-due-date-changes 

Recertification Due Date Events

Login Events

The login events are issued whenever a user logs in and also provide the additional information

of the past failed login attempts.

Login attempt (successful)

{
“login”:”imc_super”,
“identifier”:2,
“result”:”success”,
“failedCount”:0,
“timestamp”:1603666208487,
“summary”: “Login attempt for imc_super”
}

 

Login attempt (failed)

{
“login”:”imc_super”,
“identifier”:2,
“result”:”failed”,
“failedCount”:4,
“timestamp”:1603666208487,
“summary”: “Login attempt for imc_super”
}

Parameter 

Explanation

login 

Login name used for the login attempt

identifier 

Internal id of the user

result 

Result of the login attempt, either “success” or “failed”

failedCount 

Number of failed attempts

timestamp 

Timestamp of event sending in seconds since epoch

summary 

Short summary of the event / message

Course Events

The course events provide information on courses when being created or changed and include basic information of the courses and it’s contents.

Course Change Event

HTML
{
„external-id“:“ce77b12d-4119-3390-92e6-000000001517“,
„object-id“:517282,
„component-id“:517281,
„syllabus-link“:“https://achievemore.im-c.com/ilp/pages/course.jsf?courseId=517281&pollingMode=on#!/courseroom/course“,
“title”:”Course Name”,
“description”:”<strong>Course Description</strong></br> Descriptiontext”,
“start-date”:”2021-05-19T00:00:00+0200”,
“end-date”:”2021-05-19T23:59:59+0200”,
“duration-of-use”:”,
“learning-form”:”classroom”,
“lastupdated”:”2020-10-25T23:50:08+0100”,
“lastupdater-external-id”:””,
“lastupdater-person-id”:0,
“metadata”:[],
“contents”:[],
“catalogue-assignment”:[],
“timestamp”:1603666208487,
“summary”:”Update for course 517281 | 517282 | ce77b12d-4119-3390-92e6-000000001517”,
“planning-status”:”CANCELLED”,
"location-name":"Building A Singapore",
"price":2000.00,
"currency":"EUR",
}

 

Parameter Explanation

Parameter 

Explanation

external-id 

External id of the course if available

component-id 

Internal version specific id of the course

object-id 

Internal version independent id of the course

syllabus-link 

Link to the course room / syllabus in the system

title 

Name of the course

description 

Description of the course including html formatting

start-date 

Start date of the course if date dependent

end-date 

End date of the course if date dependent

duration-of-use 

Duration of the course if duration of use

learning-form 

Learning form of the course

lastupdated 

Date of the last update

lastupdater-external-id 

External id of the person that has updated the course last

lastupdater-person-id 

Internal id of the person that has updated the course last

metadata 

Additional metadata for the course (i.e. all metatags)

contents 

List of contents and their metadata (name, link, dates, …)

catalogue-assignment

List of catalog nodes the course is assigned to

timestamp 

Timestamp of event sending in seconds since epoch

summary 

Short summary of the event / message

planning-status

planning status of the learner

price 

Price for the enrolment, either course price or cancellation fee

currency 

Currency for the price

Enrolment Events

Enrolment events are issued for every change to an enrolment, from the initial booking through cancellation or completion. There are three topics available for the enrolment events: one that covers all events, and two that explicitly include cancellations and completions, respectively.

Enrolment Change Event

{
“external-id”:”ce77b12d-fa54-3353-8e4d-000000000213”,
“identifier”:121150,
“course-external-id”:”ce77b12d-4119-3390-92e6-0000000004ac”,
“course-component-id”:555791,
“course-object-id”:555792,
“initial-status”:”BOOKED”,
“status”:”CANCELLED”,
“due-date":"2020-12-31”,
“expiration-of-qualification”: “2021-12-31”,
“price”:0.0,
“currency”:”EUR”,
“orderer”:2,
“cancellation-reason”: 1,
“timestamp”:1603698662089,
“summary”:”Update for registration for course 555791 | 555792 | ce77b12d-4119-3390-92e6-0000000004ac and user 121150 | ce77b12d-fa54-3353-8e4d-000000000213”
"portfolio-id":12345",
“personal-startdate”:”2020-10-25T23:50:08+0100”,
“personal-enddate”:”2020-10-25T23:50:08+0100”,
"client_id":1234",
}

Parameter Explanation

Parameter 

Explanation

external-id 

External id of the user if available

identifier 

Internal id of the user

course-external-id 

External id of the course if available

course-component-id 

Internal version specific id of the course

course-object-id 

Internal version independent id of the course

initial-status 

Enrolment status before the change

status 

Enrolment status after the change

due-date 

Due date for the course

expiration-of-qualification 

Value for expiration of qualification given by the course, if set

price 

Price for the enrolment either course price or cancellation fee

currency 

Currency for the price

orderer 

User that triggered the change

cancellation-reason 

ID of the cancellation reason if status is cancelled

timestamp 

Timestamp of event sending in seconds since epoch

summary 

Short summary of the event / message

portfolio ID

Portfolio ID

personal start date + time

Learner's’s start date and the timestamp of the course

personal end date + Time

Learner's’s end date and the timestamp of the course

client id

client id

 

Status Mapping for Enrolments

Statuses for Courses / Learning Paths

Status String (Event) 

ID 

Status

NULL 

No relation

SELECTED 

On the wish list

ORDERED 

Requested

AGREED 

Confirmed

NOTIFIED 

Notified

REFUSED 

Not confirmed

WAITING 

Waiting

CANCELED 

Cancelled

BOOKED 

Enrolled

STARTED 

In progress

FINISHED 

10 

Concluded

PASSED 

11 

Passed

FAILED 

12 

Failed

INDIVIDUAL_LEARNING_PLAN 

17 

Personal syllabus

RESERVED_ON_PARTICIPANT_LIST 

18 

Reserved

RESERVED_ON_WAITING_LIST 

19 

Reserved on waiting list

DELETE 

13 

Deleted

Statuses for Course Templates

Status String (Event) 

ID 

Status

PREBOOKED 

16 

Pre-booked

SUCCESSFULLY_COMPLETED 

20 

Recertification: passed a course

NOT_SUCCESSFULLY_COMPLETED 

21 

Recertification: failed a course

 

Recertification Events

The recertification events provide additional information on the due dates inside a recertification process. Whenever a new due date is calculated inside the recertification process that is not yet attached to a specific course enrolment, an additional event is emitted.

Recertification Due Date Change Event

{
"external-id":"ce77b12d-fa54-3353-8e4d-000000000213",
"identifier":121150,
"template-external-id":"ce77b12d-4119-3390-92e6-0000000004ac",
"template-component-id":555791,
"template-object-id":555792,
"due-date":"2020-12-31",
"timestamp":1603698662089,
"summary":"Update for recertification 555792 | 121150 | 2020-12-31"
}

Parameter Explanation

Parameter 

Explanation

external-id 

External id of the user if available

identifier 

Internal id of the user

template-external-id 

External id of the template if available

template-component-id 

Internal version-specific ID of the template

template-object-id 

Internal version independent id of the template

due-date

Due date for the next recertification. This will be set on completion of

one course of the template before the next course is booked in a

recertification scenario. It will be cleared when the next course is

available, and a user is registered / booked to it. The due date is

transferred to the course and is also provided in the registration

change event.

Skill Change Events

The skill change events provide additional information on skill value changes for a user. Whenever a skill's value is recalculated or updated, for example, through an assessment, manual adjustment, or automated process, an event is emitted containing the previous and new value, the scale used (if any), and the allocation and expiration dates for the updated value.

{
"type":"assessment",
"skill-external-id":null,
"timestamp":1784204759500,
"summary":"Thu Jul 16 14:25:59 CEST 2026skill value event type: assessment - for user:951964 and skill:1171706",
"personId":951964,
"clientId":911366,
"skillId":1171706,
"skillName":"#FC #SuperCONF #Accum",
"initialValue":5,
"initialScaleName":null,
"currentValue":10,
"currentScaleName":null,
"allocationDate":"2026-07-16 14:25:33.019",
"expirationDate":null,
"lastUpdaterId":952014,
"lastUpdaterExternalId":null,
}


Parameter Explanation

Parameter

Explanation

type

Event type identifier for this event category, e.g. "assessment" — indicates a skill value change was recorded.

skill-external-id

External id of the skill if available (mapped from an external system). Null if no external id is configured.

timestamp

Unix timestamp (milliseconds) of when the event was emitted.

summary

Human-readable summary string describing the event — includes event type, user, and skill for quick log inspection.

personId

Internal id of the user whose skill value changed.

clientId

Internal id of the client (tenant) the user belongs to.

skillId

Internal id of the skill/competence affected by this change.

skillname

Display name of the skill.

initialValue

 

The skill value before this change was applied.

initialScaleName

 

Name of the scale used for the initial value (if the skill uses a named scale rather than a numeric-only scale). Null if not applicable.

currentValue

The new/updated skill value after this change.

currentScaleName

Name of the scale used for the current value. Null if not applicable.

allocationDate

Date/time the (new) skill value was allocated to the user.

expirationDate

Date/time the skill value expires, if the skill has an expiry configured. Null if the value doesn't expire.

lastUpdaterId

Internal id of the user (or system account) that triggered this skill value update.

lastUpdaterExternalId

External id of the updater if available. Null if no external id is configured.

https://doc-en.scheer-imc.com/FuncRef/configuration-manager-event-queue#:~:text=Description-,Configuration%20Manager%20%2D%20Event%20Queue,-The%20%22Event%20Queue