Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

The Webhooks APIs allow external systems to subscribe to events in Inspera Assessment. The webhooks are based on the Event Log system, used by the Inspera Assessment client, but with a limited set of events for which webhooks is currently supported.

...

The payload of every event follows the same general format, with some fields being optional.

Field

Mandatory/optional

Description

Example/allowed values

event

Mandatory

Unique string identifier for the given event type

revision_status_updated

marketplaceId

Mandatory

Numeric ID for the marketplace/tenant where the event originated

1357554

contextObjectId

Mandatory

Numeric ID for the primary object which the event is linked to (typically a User, Question, Question Set, Test Event, etc.)

74379551

contextObjectType

Mandatory

Unique string identifier for the given object type

Allowed values:

ASSESSMENT_RUN

QUESTION_SET

QUESTION

ITEM_BANK

QTI_SECTION

DOCUMENT

MARKETPLACE

USER

PRESET

ASSET

CUSTOM_USER_ROLE

associatedObjectId

Optional

Numeric ID for the secondary object linked to the event (typically either the object referenced in a value update, or a nested object within the context object - e.g. a candidate within a test event)

74379551

associatedObjectType

Optional

Allowed values:

QUESTION_SET

CANDIDATE

COMMITTEE

GROUP

GRADING_INSTRUCTIONS

USER

DOCUMENT

USER_ASSESSMENT

USER_QUESTION

QUESTION

MARKETPLACE_PROPERTY

triggeringUserId

Optional

Numeric ID for the user that triggered the event - only included when the event was triggered via a manual user action (i.e. not system triggered events)

74379551

triggeringUserName

Optional

Unique string identifier for the given user

abc

timestamp

Mandatory

ISO_8601_DATE_AND_TIME_WITH_SECONDS_UTC

Format

yyyy-MM-dd'T'HH:mm:ss'Z'

Example

2021-06-29T18:16:06Z

extraInfo

Optional

Any additional information provided for the given event type. Details of the values provided is defined per per event type.

See separate section on extra info below.

Example

Code Block
{
  "event": "qti_export_ready",
  "marketplaceId": 1357554,
  "contextObjectId": 74379551,
  "contextObjectType": "QUESTION_SET",
  "timestamp": "2021-06-29T18:16:06Z"
}

...

The extraInfo follows a general format, however the details of the values provided depend on the specific event type.

Field

Mandatory/optional

Description

Example/allowed values

type

Mandatory

Unique string identifier for the given extra info value type

String

Date

customUserRole

role

xml

accessLevel

adminLevel

scoreDisplayMode

JSON

value

Mandatory

The updated value for the relevant field

Typically a single string value with either an undefined string, date or specific format (see type field above). If type is JSON the value is a JSON object with the format being dependant on the specific event type.

previousValue

Optional

The previous value for the relevant field

Typically a single string value with either an undefined string, date or specific format (see type field above). If type is JSON the value is a JSON object with the format being dependant on the specific event type.


AutoUnsubscribe

Even if there is a call to unsubcsribe to webhook-notifications that should no longer be in use, we have experienced that some subscriptions set up for testing is just abandoned when testing is done, leving the notifications active - also after the endpoint has stopped working.
Since this actually imposes a problem, we have create a feature for automatically unsubscribe ‘dead’ subscriptions.
We will ofc acknowledge that en endpoint my have temporary issues, and therefore we check several times before actually unsubscribing.
We currently issue a verifcation-call every 8 hours to each registered endpoint (if two subscriptions uses same endpoint, we only send one message).