Get notified when Go1 content has been flagged for decommissioning, so you can provide alerts and remove content in your application.
This article explores how to utilise the Content Decommission Webhook to get notified when content has been flagged for removal from the Go1 library.
The Go1 library is continually evolving and being updated. On occasion, a Go1 content provider may mark their content for decommissioning when they can no longer offer this content.
When this occurs, the responsibility falls on you to let your users know that content will no longer be available after a certain date - giving them time to organise any learners currently enrolled in the content to complete it before it becomes unavailable. Additionally, it is your responsibility to prevent new enrolments in content that has been flagged for decommissioning and remove this content on the decommissioned date. Actioning content removals this way will ensure you provide a consistent experience for your users - and won't serve them content that has been removed.
To successfully set up and utilise the content decommission webhook, we'll walk through the following implementation steps below.
How the content decommission webhook works
The content_decommission event is triggered when a content provider marks some of their content within the Go1 library for decommissioning. This often occurs when our content providers choose to retire or replace old content.
When content is flagged for decommissioning, a payload will be sent containing the ID of the content that has been flagged for decommissioning (see example payload below).
Any content that is flagged for decommissioning will be archived (removed) from the Go1 Library after a minimum of 60 days.
Note, during the 60 days, access to decommissioned content will be removed immediately for any new users who try to access the content. Users who are already enrolled in the content will still be able to access and complete the learning within the 60 day period - after which the content will be archived.
Example payload:
{ "type": "content_decommission", "fired_at": "2020-06-17T00:24:40+0000", "data": { "id": "21911801", "title": "Communication Skills 101", "type": "course", "decommission_time": 1592353475, "remove_time": 1623889431 } }
It's important to note, that these notifications are ignorant of the content that you may have synced to your application - the events will fire for any content that is marked for decommissioning across the entire Go1 library regardless of if you have access to this content or not. It is your responsibility to identify if the notifications are relevant to the content your users have access to.
Before setting up a webhook, you will need a establish a service in your application that can receive the webhook payload from Go1. As part of this process, your service will need a URL that will be used as the location for Go1 to send webhook events to. This URL location will be configured when you initially create the webhook via the Go1 API - more on this below.
To create the content_decommission webhook, make a POST request to the https://api.go1.com/v2/webhooks, specifying the following values in the body:
Here is an example request (see the API Reference: POST /v2/webhooks):
curl --location --request POST 'https://api.go1.com/v2/webhooks' \ --header 'Authorization:<CUSTOMER_ACCESS_TOKEN>' \ --header 'Content-Type: application/json' \ --data-raw '{ "enrollment_create": false, "enrollment_delete": false, "enrollment_update": false, "lo_create": false, "lo_delete": false, "lo_update": false, "enabled": true, "secret_key": "", "url": "<YOUR LOCATION URL TO RECEIVE PAYLOADS FROM GO1>", "user_create": false, "user_delete": false, "user_update": false, "content_update": false, "content_decommission": true }'
A successful response will return the created webhook ID. The webhook ID can be used later to view, update or delete the webhook - see the Webhook API reference to learn more about these functions.
With the webhook created, you are now ready to receive payload events to the URL you have configured.
When content is flagged for decommissioning by a content partner, Go1 will trigger a content_decommission event that will be sent to your configured webhook URL. The payload will contain the details for the content (learning object) that has been decommissioned.
{ "type": "content_decommission", "fired_at": "2020-06-17T00:24:40+0000", "data": { "id": "21911801", "title": "Communication Skills 101", "type": "course", "decommission_time": 1592353475, "remove_time": 1623889431 } }
Within the payload, make note of the following attributes:
Utilising the content decommission notification to action content removals within your application is key to providing your users with a consistent user experience within the content you provide access to. To enable the best user experience for your customers and users, we recommend that you implement the following actions when you receive a payload from Go1 that content is being decommissioned: