# Thought Industries Developer Hub > Complete developer documentation for the Thought Industries learning platform. Includes REST and GraphQL API references with endpoint specifications, authentication guides, webhook integration, the Helium SDK for custom storefront development, and tutorials for common integration patterns. This file contains links to documentation sections following the llmstxt.org standard. ## REST API - [Authentication](https://developer.thoughtindustries.com/docs/rest/authentication.md): Authenticate requests to the Thought Industries REST API using Bearer tokens. - [Assessments](https://developer.thoughtindustries.com/docs/rest/endpoints/assessments.md): REST API endpoints for Assessments. - [Assignments & External Activity](https://developer.thoughtindustries.com/docs/rest/endpoints/assignments-external-activity.md): REST API endpoints for Assignments & External Activity. - [Certifications](https://developer.thoughtindustries.com/docs/rest/endpoints/certifications.md): REST API endpoints for Certifications. - [Commerce](https://developer.thoughtindustries.com/docs/rest/endpoints/commerce.md): REST API endpoints for Commerce. - [Content](https://developer.thoughtindustries.com/docs/rest/endpoints/content.md): REST API endpoints for Content. - [Course Groups](https://developer.thoughtindustries.com/docs/rest/endpoints/course-groups.md): REST API endpoints for Course Groups. - [Courses](https://developer.thoughtindustries.com/docs/rest/endpoints/courses.md): REST API endpoints for Courses. - [REST API Reference](https://developer.thoughtindustries.com/docs/rest/endpoints/index.md): Browse available REST API endpoints by category. - [Logs](https://developer.thoughtindustries.com/docs/rest/endpoints/logs.md): REST API endpoints for Logs. - [Meetings (ILT & VILT)](https://developer.thoughtindustries.com/docs/rest/endpoints/meetings-ilt-vilt.md): REST API endpoints for Meetings (ILT & VILT). - [Notifications (Learner Actions)](https://developer.thoughtindustries.com/docs/rest/endpoints/notifications-learner-actions.md): REST API endpoints for Notifications (Learner Actions). - [Panorama](https://developer.thoughtindustries.com/docs/rest/endpoints/panorama.md): REST API endpoints for Panorama. - [System](https://developer.thoughtindustries.com/docs/rest/endpoints/system.md): REST API endpoints for System. - [Users](https://developer.thoughtindustries.com/docs/rest/endpoints/users.md): REST API endpoints for Users. - [Pagination](https://developer.thoughtindustries.com/docs/rest/pagination.md): Navigate large result sets with cursor-based pagination in the Thought Industries REST API. - [Rate limits](https://developer.thoughtindustries.com/docs/rest/rate-limits.md): Understand the REST API's per-company throttle tiers, which routes are throttled, response headers, and how to handle 429 responses. - [Status codes](https://developer.thoughtindustries.com/docs/rest/status-codes.md): HTTP status codes returned by the Thought Industries REST API and how to handle them. ## GraphQL API - [Authentication & Endpoint](https://developer.thoughtindustries.com/docs/graphql/auth.md): How to authenticate requests against the Thought Industries GraphQL API. - [Comments & Discussion Threads](https://developer.thoughtindustries.com/docs/graphql/comments.md): Fetch comments on videos and discussion threads on courses. - [Bookmark Endpoints](https://developer.thoughtindustries.com/docs/graphql/endpoints/bookmarks.md): Save, organize, and retrieve learner bookmarks and folders. - [Comments & Forum Endpoints](https://developer.thoughtindustries.com/docs/graphql/endpoints/comments-forums.md): Fetch discussion threads and comments for videos and content pages. - [Content Endpoints](https://developer.thoughtindustries.com/docs/graphql/endpoints/content.md): Core queries for fetching catalog, courses, and lesson topics. - [Helium Endpoints](https://developer.thoughtindustries.com/docs/graphql/endpoints/helium.md): Launch, batch-process, deploy, and monitor Helium-powered widgets and assets. - [GraphQL API Reference](https://developer.thoughtindustries.com/docs/graphql/endpoints/index.md): Browse available GraphQL queries and mutations by category. - [Learning Path Endpoints](https://developer.thoughtindustries.com/docs/graphql/endpoints/learning-paths.md): Queries for fetching learning paths and their milestones. - [Other Endpoints](https://developer.thoughtindustries.com/docs/graphql/endpoints/other.md): Operations that could not be automatically categorized. - [Quiz & Assessment Endpoints](https://developer.thoughtindustries.com/docs/graphql/endpoints/quizzes-assessments.md): Load quiz attempts and submit learner answers. - [User & Auth Endpoints](https://developer.thoughtindustries.com/docs/graphql/endpoints/users-auth.md): Authenticate learners and read the current session user. - [Explorer & Postman](https://developer.thoughtindustries.com/docs/graphql/explorer.md): Tools for writing, testing, and validating GraphQL queries before you ship them. - [Fetching Content with GraphQL](https://developer.thoughtindustries.com/docs/graphql/fetching-content.md): Patterns for retrieving Courses, Videos, Blogs, ILTs, and Learning Paths. - [GraphQL API](https://developer.thoughtindustries.com/docs/graphql/index.md): Flexible, efficient data access for Thought Industries. - [Working with the Quiz Object](https://developer.thoughtindustries.com/docs/graphql/quiz-object.md): Quizzes have more moving pieces than a typical content page. - [Rate Limits & Complexity](https://developer.thoughtindustries.com/docs/graphql/rate-limits.md): Understand how the GraphQL API meters and throttles requests. ## Helium SDK - [Best Practices](https://developer.thoughtindustries.com/docs/helium/best-practices.md): Because Cloudflare Workers don't run in traditional containerized environments with full Node.js runtimes, certain Node-specific modules—such as `f... - [Helpful Commands](https://developer.thoughtindustries.com/docs/helium/commands.md): Creates a Helium app. - [Cart](https://developer.thoughtindustries.com/docs/helium/components/cart.md): The `Cart` component takes a checkout URL to handle the checkout redirection, and optional properties to customize price formatting. It provides ac... - [Catalog](https://developer.thoughtindustries.com/docs/helium/components/catalog.md): The Catalog allows learners to search and browse for content. - [Content Detail Header](https://developer.thoughtindustries.com/docs/helium/components/content-header.md): The `ContentHeader` component displays the title, description, and image of a Course or Learning Path. All content types except learning paths can ... - [Dashboard Stats](https://developer.thoughtindustries.com/docs/helium/components/dashboard-stats.md): The `DashboardStats` component displays a high-level view of how many courses the user has access to, how many threads/comments ("collaborations") ... - [Featured Content](https://developer.thoughtindustries.com/docs/helium/components/featured-content.md): Featured Content components add real power to your platform page creation. These widgets let you display courses, microlearning, and products in ne... - [Components](https://developer.thoughtindustries.com/docs/helium/components/index.md): Helium provides a set of pre-built, open-source React components that you can use to build your learning experience. Each component is installable ... - [Login](https://developer.thoughtindustries.com/docs/helium/components/login.md): The `Login` component renders a form for learners to enter email address and password to sign in, as well as a link to retrieve password. Once the ... - [Registration](https://developer.thoughtindustries.com/docs/helium/components/registration.md): The `Registration` component renders a form for learners to register for your site and gain access to the learner dashboard. - [Contributing Guidelines](https://developer.thoughtindustries.com/docs/helium/contributing.md): The deployment lambda uses specific versions of node and npm. The root `package.json` specifies: - [Installing The Helium App](https://developer.thoughtindustries.com/docs/helium/index.md): - A Thought Industries Enterprise Learning Cloud account and API key - [Migration 2.x → 3.0](https://developer.thoughtindustries.com/docs/helium/migration.md): This guide provides step-by-step instructions for migrating your Helium application from version 2.x to 3.0. - [Project Breakdown](https://developer.thoughtindustries.com/docs/helium/project-structure.md): :::tip[Video tutorial] - [Routing](https://developer.thoughtindustries.com/docs/helium/routing.md): Helium utilizes a file-based routing system which means you define all routes for your Helium app in the `/pages` directory. The Helium Framework's... - [Secrets Management](https://developer.thoughtindustries.com/docs/helium/secrets-management.md): This document outlines how environment variables are supported and managed in the Helium project. Environment variable support depends on both the ... - [Single Sign On](https://developer.thoughtindustries.com/docs/helium/sso.md): Accommodating Single Sign On within your Helium project is as simple as adding a button, hook, or action that will send the user to your Provider's... - [Server Side Rendering](https://developer.thoughtindustries.com/docs/helium/ssr.md): Server-Side Rendering (SSR) is a technique used to improve load performance and SEO. Instead of sending a blank HTML shell and loading everything o... - [Building Your Dashboard](https://developer.thoughtindustries.com/docs/helium/use-cases/dashboard.md): In this tutorial, we'll walk through creating a custom dashboard experience powered by Helium. We'll identify which GraphQL calls to use, then buil... - [Use Cases](https://developer.thoughtindustries.com/docs/helium/use-cases/index.md): Step-by-step tutorials showing how to build real features with the Helium framework. - [Multi-Panorama Dashboards](https://developer.thoughtindustries.com/docs/helium/use-cases/panorama-dashboards.md): Build on the [Build Your First Dashboard](./dashboard.mdx) tutorial to create different dashboard pages for different panoramas (clients). - [What's New in Helium 3.0](https://developer.thoughtindustries.com/docs/helium/whats-new.md): Helium 3.0 brings significant improvements to performance, developer experience, and reliability. ## Integrations - [Analytics & Data](https://developer.thoughtindustries.com/docs/integrations/analytics.md): Connect your analytics stack to track learner engagement and outcomes. - [CRMs & Automation](https://developer.thoughtindustries.com/docs/integrations/crms.md): Sync learner data with your CRM and automate workflows across your stack. - [Single Sign-On (SSO)](https://developer.thoughtindustries.com/docs/integrations/sso.md): Configure SAML and OIDC single sign-on for seamless learner authentication. - [Tracking Scripts](https://developer.thoughtindustries.com/docs/integrations/tracking-scripts.md): Inject custom JavaScript and tag managers into your learning instance. ## Tutorials - [Bulk Operations](https://developer.thoughtindustries.com/docs/tutorials/bulk-operations.md): Efficiently manage large-scale data operations including bulk user creation, enrollments, and imports. - [Creating Courses via API](https://developer.thoughtindustries.com/docs/tutorials/creating-courses.md): End-to-end guide to programmatic course creation and updates using the REST API. - [Ecommerce 2.0 Multi-Currency Data Extraction](https://developer.thoughtindustries.com/docs/tutorials/ecommerce-multi-currency.md): Extract user, product, and multi-currency pricing data via GraphQL for integration with external ecommerce systems or BI tools. - [External Ecommerce Integration](https://developer.thoughtindustries.com/docs/tutorials/external-ecommerce.md): Redirect learners from the Enroll button to an external cart and provision access after purchase. - [SSO Integration](https://developer.thoughtindustries.com/docs/tutorials/sso.md): Configure Single Sign-On with SAML 2.0 or OpenID Connect for seamless learner authentication. - [Webhook Configuration](https://developer.thoughtindustries.com/docs/tutorials/webhooks.md): Receive real-time event notifications from Thought Industries by configuring webhook endpoints. ## BI Connector - [NRT BI Connector](https://developer.thoughtindustries.com/docs/bi-connector/): Near Real Time BI Connector provides controlled access to the Thought Industries analytics warehouse, Redshift. - [Setup](https://developer.thoughtindustries.com/docs/bi-connector/setup/): Step-by-step guide for configuring an ODBC connection to the NRT BI Connector. - [Information Security](https://developer.thoughtindustries.com/docs/bi-connector/information-security/): How access, encryption, logging, and pen-testing work for the NRT BI Connector. - [Common Columns](https://developer.thoughtindustries.com/docs/bi-connector/common-columns/): Recurring columns shared across many BI Connector tables. - [Status Group](https://developer.thoughtindustries.com/docs/bi-connector/features/status-group/): Single source of truth for whether a record is active, inactive, or deleted. - [Backfill Progress](https://developer.thoughtindustries.com/docs/bi-connector/features/backfill-progress/): How historical data backfill works for the BI Connector. - [Filtering to Active Enrollments Only](https://developer.thoughtindustries.com/docs/bi-connector/recipes/active-enrollments/): Exclude archived, inactive, and deleted enrollments from usercourses using statusgroup. - [Handling Clamped 9999 Timestamps](https://developer.thoughtindustries.com/docs/bi-connector/recipes/clamped-timestamps/): Normalize the 9999-12-01 sentinel that the BI Connector uses for "no expiry" values. - [Replicating the Deprecated coursetags Table](https://developer.thoughtindustries.com/docs/bi-connector/recipes/coursetags/): Replicate the deprecated coursetags table by joining courses, coursegrouptags, and tags. - [Deduplicating Records in Redshift](https://developer.thoughtindustries.com/docs/bi-connector/recipes/deduplicate-records/): Remove duplicate ids from any BI Connector table using ROW_NUMBER(). - [Latest (or Highest-Scoring) Quiz Attempt per Learner](https://developer.thoughtindustries.com/docs/bi-connector/recipes/latest-quiz-attempt/): Reduce the quizattempts table to one canonical row per learner per quiz — either the most recent or the highest scoring. - [Pivoting coursecustomfields from Long to Wide](https://developer.thoughtindustries.com/docs/bi-connector/recipes/coursecustomfields-pivot/): Convert the EAV-shaped coursecustomfields table to one row per course with each custom field as a column. - [Recalculation of quizattemptresponses Correct Column](https://developer.thoughtindustries.com/docs/bi-connector/recipes/quizattemptsresponses-correct/): Correct historical quiz response data where unanswered questions were defaulted to correct = TRUE before 2025-07-04. - [assignmentsubmissions](https://developer.thoughtindustries.com/docs/bi-connector/tables/assignmentsubmissions/): Each row represents a single learner submission to a graded assignment, including grade, comment count, and license context. - [awards](https://developer.thoughtindustries.com/docs/bi-connector/tables/awards/): Each row represents a credit or recognition granted to a user for completing an activity or interacting with a catalog item, including amount and resource context. - [awardtypes](https://developer.thoughtindustries.com/docs/bi-connector/tables/awardtypes/): Each row represents an award type, a configurable category of recognition (such as a badge or credit type) used to label and group individual awards. Award types include display settings like label, plural label, icon, and whether to show on the learner dashboard or not. - [bundles](https://developer.thoughtindustries.com/docs/bi-connector/tables/bundles/): Each row represents a sellable bundle product with title, identifiers, pricing, and lifecycle fields. - [bundletags](https://developer.thoughtindustries.com/docs/bi-connector/tables/bundletags/): Each row links a tag to a bundle. Join to tags for labels. - [certificatefields](https://developer.thoughtindustries.com/docs/bi-connector/tables/certificatefields/): Each row represents a name-value pair for a custom or template-driven field on an issued certificate. - [certificatefieldsblocks](https://developer.thoughtindustries.com/docs/bi-connector/tables/certificatefieldsblocks/): Each row represents a field definition configured in a certificate-field block, including label, type, slug, and display settings. - [certificates](https://developer.thoughtindustries.com/docs/bi-connector/tables/certificates/): Each row represents an issued credential for a user on a course, learning path, or external resource, including issue and expiration dates, the template that generated it, and recertification state. - [certificatetemplatelabels](https://developer.thoughtindustries.com/docs/bi-connector/tables/certificatetemplatelabels/): Each row represents a single label positioned on a certificate template: the placement (x, y), styling (font size, color, alignment), and which certificate field - [certificatetemplates](https://developer.thoughtindustries.com/docs/bi-connector/tables/certificatetemplates/): Each row represents a single certificate template. A certificate template is the configuration used to generate certificates when a learner completes a course or learning path. A template defines the title, expiration rules, recertification behavior, visual asset, and any conditional targeting for a specific user audience. Issued certificates in the certificates table reference the template they were generated from. - [clientcourses](https://developer.thoughtindustries.com/docs/bi-connector/tables/clientcourses/): Each row links a course to a client, representing which courses are included in each client - [clients](https://developer.thoughtindustries.com/docs/bi-connector/tables/clients/): Each row represents a client account with name, slug, balances, and lifecycle flags. - [clienttags](https://developer.thoughtindustries.com/docs/bi-connector/tables/clienttags/): Each row links a tag to a client for segmentation or reporting. - [comments](https://developer.thoughtindustries.com/docs/bi-connector/tables/comments/): Each row represents a discussion post or reply on a course or other commentable content, including threading and moderation fields. - [companies](https://developer.thoughtindustries.com/docs/bi-connector/tables/companies/): Each row represents a tenant site with subdomain, branding names, organization link, and status. - [competencyassessmentattempts](https://developer.thoughtindustries.com/docs/bi-connector/tables/competencyassessmentattempts/): Each row represents one attempt by a user on a competency assessment, including scores, pass/fail, and timing. - [competencyassessmentresponses](https://developer.thoughtindustries.com/docs/bi-connector/tables/competencyassessmentresponses/): Each row represents one question within a competency assessment attempt, including question text, answer, and correctness. - [competencyassessments](https://developer.thoughtindustries.com/docs/bi-connector/tables/competencyassessments/): Each row represents a competency assessment definition with title and metadata, scoped to a company. - [courseactions](https://developer.thoughtindustries.com/docs/bi-connector/tables/courseactions/): Each row represents a time-stamped learning event in a course (such as a view or progress milestone) with user and license context. - [coursecustomfields](https://developer.thoughtindustries.com/docs/bi-connector/tables/coursecustomfields/): Each row represents a label-value pair for custom metadata on an individual course offering. - [coursefeedbackresponses](https://developer.thoughtindustries.com/docs/bi-connector/tables/coursefeedbackresponses/): Each row represents a learner feedback submission for a course, including the response payload and dismissal state. - [coursegroupcustomfields](https://developer.thoughtindustries.com/docs/bi-connector/tables/coursegroupcustomfields/): Each row represents a custom metadata field on a course group, with one row per field per group. - [coursegroups](https://developer.thoughtindustries.com/docs/bi-connector/tables/coursegroups/): Each row represents a catalog grouping for courses, including titles, descriptions, and merchandising metadata. - [coursegrouptags](https://developer.thoughtindustries.com/docs/bi-connector/tables/coursegrouptags/): Each row links a tag to a course group for discovery and reporting. - [courses](https://developer.thoughtindustries.com/docs/bi-connector/tables/courses/): Each row represents an individual course offering with pricing, enrollment windows, seats, progress aggregates, and linkage to a course group. - [creditactions](https://developer.thoughtindustries.com/docs/bi-connector/tables/creditactions/): Each row represents a ledger line for a credit movement, including amounts, initiators, and source/target accounts. - [creditbatches](https://developer.thoughtindustries.com/docs/bi-connector/tables/creditbatches/): Each row represents a named batch of prepaid credit with balances and expiry dates. - [discountgroups](https://developer.thoughtindustries.com/docs/bi-connector/tables/discountgroups/): Each row represents a named group used to organize discounts or promotions. - [discountgrouptags](https://developer.thoughtindustries.com/docs/bi-connector/tables/discountgrouptags/): Each row links a tag to a discount group for segmentation. - [forums](https://developer.thoughtindustries.com/docs/bi-connector/tables/forums/): Each row represents a course- or client-scoped collaboration forum with related settings. - [learningpathactions](https://developer.thoughtindustries.com/docs/bi-connector/tables/learningpathactions/): Each row represents an event along a learner - [learningpaths](https://developer.thoughtindustries.com/docs/bi-connector/tables/learningpaths/): Each row represents a program definition with pricing, dates, content, and merchandising for a multi-step learning path. - [learningpathtags](https://developer.thoughtindustries.com/docs/bi-connector/tables/learningpathtags/): Each row links a tag to a learning path for discovery and grouped reporting. - [lessons](https://developer.thoughtindustries.com/docs/bi-connector/tables/lessons/): Each row represents a lesson within a course section, including title, slug, and hierarchy keys. - [licensecourses](https://developer.thoughtindustries.com/docs/bi-connector/tables/licensecourses/): Each row links a course to a license, representing which courses are entitled under each license. - [licenses](https://developer.thoughtindustries.com/docs/bi-connector/tables/licenses/): Each row represents a named license package under a client, optionally parented to another license. - [locations](https://developer.thoughtindustries.com/docs/bi-connector/tables/locations/): Each row represents a physical or virtual venue for instructor-led training, including address, timezone, and room. - [ltiattempts](https://developer.thoughtindustries.com/docs/bi-connector/tables/ltiattempts/): Each row represents an external-tool assessment attempt linked to a course topic, with score and timing. - [meetings](https://developer.thoughtindustries.com/docs/bi-connector/tables/meetings/): Each row represents a scheduled session tied to a course, including title, time window, location, and instructor information. - [milestonecourses](https://developer.thoughtindustries.com/docs/bi-connector/tables/milestonecourses/): Upcoming change — not yet released. The behavior described below relies on a BI Connector 2 update that has not shipped yet. - [milestones](https://developer.thoughtindustries.com/docs/bi-connector/tables/milestones/): Each row represents a stage inside a learning path with completion criteria descriptions. - [onboardingsurveyresponses](https://developer.thoughtindustries.com/docs/bi-connector/tables/onboardingsurveyresponses/): Each row represents one question-answer pair from an onboarding survey response, with user and survey linkage. - [onboardingsurveys](https://developer.thoughtindustries.com/docs/bi-connector/tables/onboardingsurveys/): Each row represents an onboarding survey instance scoped to a client. - [organizations](https://developer.thoughtindustries.com/docs/bi-connector/tables/organizations/): Each row represents a top-level organization entity that can own multiple company sites. - [pickablegroups](https://developer.thoughtindustries.com/docs/bi-connector/tables/pickablegroups/): Each row represents a curated pick list of selectable items with naming and SKU. - [pickablegrouptags](https://developer.thoughtindustries.com/docs/bi-connector/tables/pickablegrouptags/): Each row links a tag to a pickable group for merchandising filters. - [products](https://developer.thoughtindustries.com/docs/bi-connector/tables/products/): Each row represents a generic catalog product with name, slug, and SKU. - [producttags](https://developer.thoughtindustries.com/docs/bi-connector/tables/producttags/): Each row links a tag to a product for catalog segmentation. - [purchases](https://developer.thoughtindustries.com/docs/bi-connector/tables/purchases/): Each row represents a commerce purchase with amounts, tax, discounts, success/failure, user, and product context. - [questionchoices](https://developer.thoughtindustries.com/docs/bi-connector/tables/questionchoices/): Each row represents an answer option for a quiz question, including correctness, points, and order. - [questions](https://developer.thoughtindustries.com/docs/bi-connector/tables/questions/): Each row represents a question stem and type for reusable assessment content. - [quizattemptresponses](https://developer.thoughtindustries.com/docs/bi-connector/tables/quizattemptresponses/): Each row represents a per-question outcome within a quiz attempt, including selected answers, correctness, and question text. - [quizattempts](https://developer.thoughtindustries.com/docs/bi-connector/tables/quizattempts/): Each row represents a single quiz sitting by a learner, including score, pass/fail, duration, and topic linkage. - [redemptioncodegroups](https://developer.thoughtindustries.com/docs/bi-connector/tables/redemptioncodegroups/): Each row represents a batch of redemption codes with labels and counts of issued vs redeemed. - [redemptioncodes](https://developer.thoughtindustries.com/docs/bi-connector/tables/redemptioncodes/): Each row represents an individual redeemable code with redemption state and who redeemed it. - [registrationcoderedemptions](https://developer.thoughtindustries.com/docs/bi-connector/tables/registrationcoderedemptions/): Each row represents a single use of a registration code by a user at a point in time. - [registrationcodes](https://developer.thoughtindustries.com/docs/bi-connector/tables/registrationcodes/): Each row represents a shareable code that grants access for a number of days with usage limits. - [roles](https://developer.thoughtindustries.com/docs/bi-connector/tables/roles/): Each row represents a permission template and password policy for a user type. - [scormattemptresponses](https://developer.thoughtindustries.com/docs/bi-connector/tables/scormattemptresponses/): Each row represents a SCORM interaction-level detail under an attempt, including prompt, learner response, and result. - [scormattempts](https://developer.thoughtindustries.com/docs/bi-connector/tables/scormattempts/): Each row represents a SCORM package attempt with completion status, scores, and progress for a user on a topic. - [sectioncompletions](https://developer.thoughtindustries.com/docs/bi-connector/tables/sectioncompletions/): Each row records when a user completed a course section. - [sections](https://developer.thoughtindustries.com/docs/bi-connector/tables/sections/): Each row represents a course outline section with title, order, and status. - [subscriptionpurchases](https://developer.thoughtindustries.com/docs/bi-connector/tables/subscriptionpurchases/): Each row represents a subscription billing event with amounts, renewals, refunds, disputes, and subscription period metadata. - [tags](https://developer.thoughtindustries.com/docs/bi-connector/tables/tags/): Each row represents a reusable label for tagging many object types. Dimension for all tag bridge tables. - [testimonials](https://developer.thoughtindustries.com/docs/bi-connector/tables/testimonials/): Each row represents a learner rating and written review of a course group, with approval state. - [topics](https://developer.thoughtindustries.com/docs/bi-connector/tables/topics/): Each row represents an individual learning item inside a lesson (page, video, quiz, SCORM, etc.) with settings such as timers and grading. - [userattendedmeetings](https://developer.thoughtindustries.com/docs/bi-connector/tables/userattendedmeetings/): Each row records a user - [userbundles](https://developer.thoughtindustries.com/docs/bi-connector/tables/userbundles/): Each row represents a bundle a user has purchased or been granted. - [usercourseprogresses](https://developer.thoughtindustries.com/docs/bi-connector/tables/usercourseprogresses/): Each row represents roll-up progress for a user on a course, including percent complete, time, and views. - [usercourses](https://developer.thoughtindustries.com/docs/bi-connector/tables/usercourses/): Each row represents a user - [userlearningpaths](https://developer.thoughtindustries.com/docs/bi-connector/tables/userlearningpaths/): Each row represents a user - [userlicenses](https://developer.thoughtindustries.com/docs/bi-connector/tables/userlicenses/): Each row represents a license seat allocated to an individual user with role and status. - [users](https://developer.thoughtindustries.com/docs/bi-connector/tables/users/): Each row represents a learner or admin profile with contact information, references, balance, role, and activity timestamps. - [waitlists](https://developer.thoughtindustries.com/docs/bi-connector/tables/waitlists/): Each row represents a user waiting for access to a full course, including waitlist status and notification flags.