Thought Industries Integration
Overview
Technical Requirements
JWT Token Authentication
-
Signed using HS256 algorithm.
-
Shared secret or API token required.
Secure External URL
-
Host an endpoint or landing page to receive and decode JWT tokens.
Thought Industries API
- https://api.thoughtindustries.com/#thought-industries-api
for retrieving learner/course data and posting results.
Integration Flow
1. Launch from Thought Industries
-
Learner clicks an External Activity in TI.
-
TI appends a JWT token to the configured URL as a query parameter (?jwt=...).
-
TI appends Certiverse Exam Code / SKU to the configured URL as a query parameter (?exam_id=...)
2. JWT Token Details
-
Contains:
-
-
Candidate Info: email, name
-
-
-
Eligibility: course_id (use to look up additional data via API)
-
3. Eligibility end date
- TI API used to look up purchase date
- Eligibility end date set to purchase date + n days.
4. Authentication
-
Validate JWT using the shared secret.
-
If user exists → log in.
-
If user does not exist → create account and log in.
5. Booking Logic
-
If pending booking exists for exam_id:
-
-
Show dashboard with options: Start Exam, Cancel, or Reschedule.
-
-
If no booking exists:
-
-
Redirect to booking flow for the exam with eligibility end date applied.
-
6. Assessment Delivery
-
Candidate completes the exam in your system.
7. Result Posting
- Use Assignment External Activity API:
-
-
Pass:
-
-
-
-
status = completed
-
-
-
-
-
grade feedback = "Great Job!"
-
-
-
-
Fail:
-
-
-
-
status = in-completed
-
-
-
-
-
grade feedback = "Failed"
-
-
-
-
-
Reset course progress and revoke access via TI API.
-
-
External Activities Configuration
Token includes:
- Candidate info: email, name
-
Configure your secure URL in TI Admin under External Activity.
- TI appends the JWT to the external activity URL as ?jwt=....
- TI appends exam code/sku in Certiverse, to the external activity URL as exam_id
- https://support.thoughtindustries.com/hc/en-us/articles/16273411017495-External-Activity.
Security
-
JWT signed with HS256.
-
Validate signature using the shared secret before processing payload.
-
Ensure HTTPS for all endpoints.
Resources