Pluvo Developers Docs


Code Docs


Back to website: www.pluvo.com

Webhook events

Training

We send a request to the url on the following events.

Request body example

{
    "id": "933d8663-edf6-42c9-895a-eeec13fff0ab", // Pluvo ID
    "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"
    },
}

User

We send a request to the url on the following events.

Request body example

{
    "id": "933d8663-edf6-42c9-895a-eeec13fff0ab", // Pluvo ID
    "ref": "user-ref",
    "event": "USER_CREATED",
    "name": "User X",
    "email": "[email protected]", 
    "isActive": true,
		"ref": "3eb07a89-65e4-4416-b2f7-34ecc7ca1347",
    "afas_person_id": null, // Possible set afas person id
    "afas_employee_id": null, // Possible set afas employee id
    "extraFields": {
        "Afdeling": "Marketing"
    },
    "sentDate": "2020-01-01T10:15:00.000Z"
}

Group

We send a request to the url on the following events.

Request body example

{
    "id": "933d8663-edf6-42c9-895a-eeec13fff0ab", // Pluvo ID
    "ref": "group-ref",
    "event": "GROUP_CREATED",
    "name": "Group X",
    "enableChat": true,
    "sentDate": "2020-01-01T10:15:00.000Z"
}

Module group

We send a request to the url on the following events.

Request body example

{
    "id": "933d8663-edf6-42c9-895a-eeec13fff0ab", // Pluvo ID
    "ref": "module-group-ref",
    "event": "EVENT_CONDITIONS_FULFILLED",
    "training": {
        // See training request body
    },
    "user": {
        // See user request body
    },
    "conditions": [
        {
            "type": "AbsoluteDateCondition",
            "date": "2020-12-01T08:00:00+00:00",
            "comparison": "START"
        },
        {
            "type": "RelativeDateCondition",
            "offset": {
                "days": 10,
                "seconds": 0,
                "microseconds": 0,
            },
            "comparison": "START"
        },
        {
            "type": "CourseClearedCondition",
            "course": {
                "id": 1,
                "title": "Course Module 1"
            },
            "preDelay": {
                "days": 0,
                "seconds": 0,
                "microseconds": 0
            },
            "scoreThreshold": 50.0,
            "courseComparison": "MIN"
        }
    ],
    "file": "<https://files.pluvo.co/>..." // When event is EVENT_FILE_UPLOADED
}

Portfolio item

We send a request to the url on the following events.

Request body example

{
    "id": "2ec15aae-b7bd-4157-9986-49a1d84699d7", // Pluvo ID
    "user": {
        // See user request body
    },
    "title": "Portfolio item title",
    "description": "Portfolio item description",
    "start_date": "2023-08-05T00:00:00+02:00", // Date of achievement
    "end_date": "2023-08-17T00:00:00+02:00", // Expiration date
    "files": [
			"<https://files.pluvo.co/>...",  // Certificate or user uploaded files
			"<https://files.pluvo.co/>..."
		],
    "sentDate": "2023-08-07T10:52:28.819Z",
    "event": "PORTFOLIO_ITEM_CREATED"
}

Course finished

We send a request to the url on the following events.

This can occur for both LTI course as Pluvo Courses.

Request body example

{
    "id": "fb7ef0d1-55b4-4d58-ab62-ab7544a3558a", // Pluvo ID
    "score": 0,
    "time_spent": {
        "days": 0,
        "microseconds": 0,
        "seconds": 0
    },
    "user": {
        // See user request body
    },
    "course": { // When of type COURSE
        "id": "7976dabf-a75f-443c-ad38-86e1e98e2734", // Pluvo ID
        "title": "Course example title",
        "version": 1
    },
		"lti" : { // When of type LTI
				"id": "7976dabf-a75f-443c-ad38-86e1e98e2734", // Pluvo ID,
        "title": "Lti example title",
        "url": "<https://lit.example.nl/>...",
		}
    "type": "COURSE", // COURSE or LTI
    "sentDate": "2023-08-07T12:06:02.178Z",
    "event": "COURSE_FINISHED"
}

Training finished

We send a request to the url on the following events.

Request body example

{
    "id": "83ffeded-2122-47e0-8c03-ed06bdc4d3b9", // Pluvo ID
    "score": null,
    "start_date": "2023-08-07T14:38:08+02:00",
    "user": {
		    // See user request body
    },
    "training": {
        // See training request body
    },
    "sentDate": "2023-08-07T12:43:00.976Z",
    "event": "TRAINING_FINISHED"
}

Assignment grade update

We send a request to the url on the following events.

Request body example

{
    "id": "3642609c-04cf-4d98-8497-d9cc991aa5f5", // Pluvo ID
    "score": 0.1, // from 0 to 1
    "fulfilled": null,
    "state": "open", // open or closed (state of the assignment)
    "user": {
        // See user request body
    },
    "assignment": {
        "id": "4e633689-a311-4898-a83f-741cd81a79b9", // Pluvo ID
        "event": {
            "training": {
                // See training request body
            },
            "conditions": [],
            "id": "e39b5114-933c-41f9-98e2-b7ce0686b4a4", // Pluvo ID
            "ref": "e39b5114-933c-41f9-98e2-b7ce0686b4a4" // User created reference
        },
        "assignment_type": "participant", // participant or collective
        "score_type": "numeral", // numeral, fulfilled or none
        "weight": 0
    },
    "sentDate": "2023-08-07T12:49:07.442Z",
    "event": "ASSIGNMENT_GRADE_UPDATE"
}