Build and onboard your content into Go1 using the Go1 API
This guide demonstrates the processes required to integrate your learning content into the Go1 environment using Go1 API. By following the steps outlined in this guide, you will be able to upload your learning content, maintain it, as well as synchronise learner enrolment data with Go1.
Why the content launch procedure is required
The Go1 API allows you to deliver your eLearning catalogue to the Go1 audience. The intuitive API provides a low-maintenance integration to help you scale and optimise your offering while adding minimal overhead. This means you can spend more time building great learner experiences while Go1 brings the audience to you.
Integrating your content via the API and keeping it up to date can be broken down into the followings steps:
Before getting started you will need to ensure you have your Go1 account set up and have provisioned your API Keys, see the following guides to complete these steps:
To create learning objects in Go1, you will need to make a POST request to the https://api.go1.com/v2/learning-objects endpoint.
Here is an example request (please refer to the API Reference to see the entire schema for creating learning objects):
curl --location --request POST 'https://api.go1.com/v2/learning-objects' \ --header 'Authorization: Bearer {{client_credentials_token}}' \ --data {...}
Mandatory metadata -The endpoint requires a minimum set of properties in the request body for the learning object to be created successfully. For details on Go1’s metadata properties and structure of the request body, please refer to Developer API Reference - Create Learning Object API.
Note - source_id is your internal unique identifier for the learning objects you create. To help simplify your Go1 integration, we have enabled the ability for your object ID to be used for all content actions via the API.
On a successful request, the response message body will contain your learning object as represented in Go1. Properties that weren’t supplied in the request are also returned with the default values. This response can be used in the PATCH endpoint to update your learning object.
Here is an example response:
{ "id": "36265961", "title": "Link - All Mandatory Properties", "type": "link", "description": "This is a new object", "source_id": "link-011", "authentication_type": "saml", "instance": "16754510", "published": false, "url": "https://www.go1.com", "image": "https://carsguide-res.cloudinary.com/image/upload/f_auto,fl_lossy,q_auto,t_cg_hero_large/v1/editorial/ford-focus-rs-limited-edition-2017-blue-1_0.jpg", "language": "AU", "premium": false, "marketplace": false, "decommission_at": null, "retire_at": null, "can_embed": null, "duration": 30, "pricing": { "price": 0, "currency": "USD", "tax": 0 }, "summary": "this is a summary field", "tags": [ "tag 1", "tag 2" ], "import_status": "pending", "import_message": "Pending downloading and uploading of learning object assets", "attributes": { "integration": false, "mobile_optimised": null, "assessable": false, "wcag": true, "region_relevance": [ { "key": "496", "value": "AU" }, { "key": "495", "value": "GLOBAL" } ], "learning_outcomes": [ "outcome 1", "outcome 2" ], "topics": [ { "key": "65", "value": "Business Skills" }, { "key": "16", "value": "Accounting and Finance" } ], "entry_level": { "key": "489", "value": "Intermediate" } } }
If your content manages the learner's enrollment progress and completion status external to the Go1 system, it is a requirement to inform Go1 of any changes to that enrollment status. This ensures that we can consistently update our consumers, and give them consistent experiences when accessing your content - wherever they consume it.
In order to update a learners enrollment status via the API, make a POST request to https://api.go1.com/v2/provider/enrollments, using the following request body schema (see API Reference):
{ "go1_account_id": <Go1_user_account_id>, "source_id": "<content_source_id>", "status": "completed", "result": 0, "pass": true, "start_date": "2021-02-22T01:00:00.000Z", "end_date": "2021-06-12T01:00:00.000Z" }
In this example, upon a successful request, the user's enrolment will be updated to complete, ensuring an accurate reflection of the learner's progression through your content in Go1.
ㅤ
ㅤ
To keep the content you publish with Go1 up to date, you will need to update your content via a PATCH request to the https://api.go1.com/v2/learning-objects endpoint (see API Reference).
Here is an example request (please refer to the API Reference for the entire schema):
curl --location --request PATCH 'https://api.go1.com/v2/learning-objects?source_id="{your object identifier}' \ --header 'Authorization: Bearer {{client_credentials_token}}' \ --data {...}
This endpoint allows you to provide the data that has changed for the object if you do not want to provide the full set.
Changing your unique ID
If you have changed your unique identifiers in your system, you can update your catalogue in Go1 by providing the old source ID as a parameter and adding the new source ID in the body.
Decommissioning is the phase of Go1 Learning Objects that leads to retiring your content. Go1’s decommissioning process allows our users to complete their learning in progress as well as giving them time to find replacement content.
To set this process in motion, you use the PATCH https://api.go1.com/v2/learning-objects request to provide the dates you would like to trigger each phase.
decommission_at is the date that you will no longer accept new enrollments. In Go1, this translates to the learning item no longer appearing in any search, hiding it from people who do not already have an enrollment after this date. This property has a minimum date of 60 days after the current date.
retire_at is the date that you will no longer accept any access for learners. After this date, enrolled users will no longer be able to launch and access the learning item. In Go1, the learning item will no longer be visible to any learner, but their record of enrollment will still remain visible. This property has a minimum of 180 days.
See the API Reference - PATCH /v2/learning-objects and the example above in step 2 for how to make this request.
Minimum Date requirements
If you require your content to be retired quicker than the minimum notice period, please contact contentsupport@go1.com with your request.
If you no longer wish to trigger the decommissioning process, you can send a PATCH with the properties nulled prior to the date of execution.
Deleting unwanted Learning Objects
If you would like to remove unwanted objects from your catalogue such as objects you created for testing the API integration, please send an email to contentsupport@go1.com with the details of the objects that you would like us to delete for you.
There are some restrictions that need to be considered before deletion can occur.
Learn more about getting started & onboarding your content with Go1: