Pluvo supports webhooks that send you notifications for important events, such as changes in users, trainings, groups, progress, or portfolio items. These are sent as POST
requests to an endpoint you have configured.
Each webhook contains two headers:
X-Signature
X-Signature-Salt
You can use these to verify if the request is valid. The verification works as follows:
X-Signature-Salt
header with your Pluvo Webhook Key.X-Signature
header.Pluvo sends webhooks for the following events. The payloads are JSON objects, sent via a POST
.
Events:
TRAINING_CREATED
TRAINING_UPDATED
TRAINING_DELETED
Example payload
{
"id": "uuid",
"ref": "training-ref",
"event": "TRAINING_CREATED",
"title": "Training X",
"subtitle": "Subtitel Training X",
"introduction": "Introductie text",
"startDate": "2020-02-01",
"endDate": "2021-02-01",
"isActive": true,
"showParticipants": true,
"showSharedFiles": true,
"enableChat": true,
"sentDate": "2020-01-01T10:15:00.000Z",
"extraFields": {
"subject": "Development"
}
}
Events:
USER_CREATED
USER_UPDATED
USER_DELETED
Example payload
{
"id": "uuid",
"ref": "user-ref",
"event": "USER_CREATED",
"name": "User X",
"email": "test@example.com",
"isActive": true,
"afas_person_id": null,
"afas_employee_id": null,
"extraFields": {
"Afdeling": "Marketing"
},
"sentDate": "2020-01-01T10:15:00.000Z"
}
Events:
GROUP_CREATED
GROUP_UPDATED
GROUP_DELETED
Example payload
{
"id": "uuid",
"ref": "group-ref",
"event": "GROUP_CREATED",
"name": "Group X",
"enableChat": true,
"sentDate": "2020-01-01T10:15:00.000Z"
}
Events:
EVENT_CONDITIONS_FULFILLED
EVENT_FILE_UPLOADED
EVENT_CERTIFICATE_ACHIEVED
Usage: These events come from learning paths when a module group is unlocked, a file is uploaded, or a certificate is achieved.
Example payload
{
"id": "uuid",
"ref": "module-group-ref",
"event": "EVENT_CONDITIONS_FULFILLED",
"training": { ... },
"user": { ... },
"conditions": [ ... ],
"file": "https://files.pluvo.co/..."
}
Events:
PORTFOLIO_ITEM_CREATED
PORTFOLIO_ITEM_UPDATED
PORTFOLIO_ITEM_DELETED
Example payload
{
"id": "uuid",
"user": { ... },
"title": "Portfolio item title",
"description": "Portfolio item description",
"start_date": "2023-08-05T00:00:00+02:00",
"end_date": "2023-08-17T00:00:00+02:00",
"files": [ "https://files.pluvo.co/..." ],
"sentDate": "2023-08-07T10:52:28.819Z",
"event": "PORTFOLIO_ITEM_CREATED"
}
Event:
COURSE_FINISHED
Example payload
{
"id": "uuid",
"score": 0,
"time_spent": {
"days": 0,
"microseconds": 0,
"seconds": 0
},
"user": { ... },
"course": { ... },
"lti": { ... },
"type": "COURSE",
"sentDate": "2023-08-07T12:06:02.178Z",
"event": "COURSE_FINISHED"
}
Event:
TRAINING_FINISHED
Example payload
{
"id": "uuid",
"score": null,
"start_date": "2023-08-07T14:38:08+02:00",
"user": { ... },
"training": { ... },
"sentDate": "2023-08-07T12:43:00.976Z",
"event": "TRAINING_FINISHED"
}
Event:
ASSIGNMENT_GRADE_UPDATE
Example payload
{
"id": "uuid",
"score": 0.1,
"fulfilled": null,
"state": "open",
"user": { ... },
"assignment": {
"id": "uuid",
"event": { ... },
"assignment_type": "participant",
"score_type": "numeral",
"weight": 0
},
"sentDate": "2023-08-07T12:49:07.442Z",
"event": "ASSIGNMENT_GRADE_UPDATE"
}