# Changelog

In this section, we track updates and changes to the data model.

### May 21, 2026

A new column, `track_description`, has been added to the `dim_track` table. It surfaces the long-form description an admin enters when creating or editing a custom track, and the public-catalog description for non-custom tracks. The existing `track_short_description` column remains unchanged, populated only for DataCamp catalog tracks.

### May 07, 2026

Four new event names have been added to the [`fact_certification_events`](/integrating-our-data-into-your-tools-via-data-connector-2.0/explore-the-data-model/fact-tables.md#fact_certification_events) table:

* `certification_project_registered`
* `certification_project_failed`,&#x20;
* `certification_project_expired`, &#x20;
* `certification_skill_assessment_registered`

and `certification_case_study_registered` coverage has been extended to every started case-study attempt.&#x20;

Together these provide a complete `registered` → outcome funnel per attempt across all three component families (project, skill assessment, case study).

### April 09, 2026

Five new columns have been added to the **`group_detail`** metric table to surface activity on [AI-native course variants](https://enterprise-docs.datacamp.com/integrating-our-data-into-your-tools-via-data-connector-2.0/explore-the-data-model/metrics-tables#group_detail):

* `ai_native_hours_on_learn` — Time spent on AI-native variant content&#x20;
* `ai_native_hours_on_courses` — Time spent on AI-native course variant courses&#x20;
* `ai_native_xp_earned` — XP earned from AI-native course variant content&#x20;
* `ai_native_courses_started` — AI-native course variant courses initiated&#x20;
* `ai_native_courses_completed` — AI-native course variant courses finished&#x20;

These columns are **subsets** of the existing totals — they are already included in the corresponding `total_*` and `nb_*` columns. To isolate classic-only activity, subtract the AI-native value from the total.

### March 30, 2026

Two new columns, Courses (Classic) and Courses (AI Native), have been added to the Time in Learn export. These columns represent the time a learner spent in each variant.

### March 27, 2026

Two new columns, Courses (Classic) and Courses (AI Native), have been added to the Time in Learn report. These columns represent the time a learner spent in each variant.

### March 25, 2026

We've introduced the concept of **course variants** to support our new AI-native course format. A course can now exist as a **classic** variant (the traditional DataCamp course experience) or an **AI-native** variant (a new interactive learning format powered by AI). Both variants share the same course identity (`course_id` / `content_id`) and all common metadata.

**New table**

* **`dim_course_variant`** — A new dimension table containing variant-specific information such as the variant name, description, and duration details. See Dimension tables for the full schema.

**New columns**

* **`course_variant_id`** added to **`dim_content`** — Identifies the course variant for course and chapter content rows. `1` = classic, `2` = AI-native.
* **`course_variant_id`** added to **`fact_learn_events`** — Identifies which course variant a learning event is associated with. Populated for course and chapter events.

**Schema changes**

* **Breaking change:** **`chapter_id`** in **`dim_content`** has changed from **integer to string**. If your queries cast `chapter_id` to an integer or use integer comparisons, they will need to be updated.

**New content records**

* AI-native courses introduce new **chapter-level records** in `dim_content`. These AI-native chapters have their own `content_id` and `chapter_id` values. If you aggregate at the chapter level, be aware that you will now see both classic and AI-native chapters unless you filter by `course_variant_id`.

**Impact on existing queries**

* **Course completion queries:** A user can now complete both the classic and AI-native variant of the same course. If you count course completions, consider whether you want to count per variant or per course. Use `course_variant_id` to differentiate.
* **Chapter-level queries:** New AI-native chapters will appear alongside classic chapters. Filter by `course_variant_id` if you need to isolate one variant.
* **Queries using `chapter_id`:** Update any logic that treats `chapter_id` as an integer.

See Domain Gotchas for detailed guidance.

### February 2, 2026

We've expanded the possible values of `assessment_knowledge_level` in `fact_learn_events` from 3 to 5 levels:

* Novice (0-69)
* Lower Intermediate (70-100)
* Upper Intermediate (101-130)
* Lower Advanced (131-160)
* Upper Advanced (161-200)

### January 15, 2026

We’ve added a new `assignment_unassigned` event to `fact_learn_events` to better track the user–assignment lifecycle.

This event is triggered when an Admin deletes an assignment after creating it.

### December 15, 2025

We’ve updated the Data Connector model to capture the new XP awarded for certification and skill assessment completions.

* **Certifications (**`certification_granted` event in `fact_certification_events`)
  * Career Certification pass: 10,000 XP
  * Fundamentals Certification pass: 2,000 XP
* **Skill Assessments (**`assessment_engaged` event in `fact_learn_events`)
  * Assessment completion: 100 XP
    * Note: this award is given for every completion (no per-user limit).
  * Score > 50th percentile: 500 XP
  * Score > 75th percentile: 1,000 XP

{% hint style="info" %}
Each XP award can only be earned **once per user per certification** and **assessment**, unless otherwise noted.
{% endhint %}

* The `group_detail` metric table has been extended to include the new XP events and:
  * `certification_started`
  * `certification_completed`
* We have added URL fields to key dimension tables so you can link directly to content from your reports and dashboards:
  * `dim_content` – now includes a URL link to the content item
  * `dim_track` – now includes a URL link to the track
  * `dim_certification` – now includes a URL link to the certification

### December 2, 2025

We’ve expanded the `dim_content` table to better represent non-course learning resources and competitions.

**What’s new**

* **New resource types added to `dim_content`:**\
  Free online resources are now included as content (code-alongs, cheat sheets, case studies, data sheets, ebooks, infographics, podcasts, tools, webinars, whitepapers)
* **New `is_resource` flag:**\
  A new Boolean column `is_resource` has been added to `dim_content` to distinguish these resources from other content types (e.g., courses, tracks, assessments).
* **Competitions in `dim_content`:**\
  Competitions are now also represented in the `dim_content` table as a dedicated content type, allowing you to report on and filter them alongside other learning assets.

### October 2, 2025

We’ve released the **DataCamp** **Data Connector 2.0 Power BI Template** — a plug-and-play dashboard that lets you go from connection to insights in minutes.

* **What’s included:** Pre-built pages for **Snapshot**, **Engagement**, **Progress**, and **Leaderboard**, wired to the Data Connector 2.0 model for consistent KPIs and analysis.
* **Where to get it:** **Group Hub → Reporting → Data Connector**. Download the `.pbit` file and open it in Power BI Desktop.
* **Setup highlights:** Create an **Athena ODBC DSN** on Windows and connect via the built-in **Amazon Athena** connector in Power BI. See our Microsoft Power BI guide for step-by-step DSN fields and connection prompts. [enterprise-docs.datacamp.com](https://enterprise-docs.datacamp.com/integrating-our-data-into-your-tools-via-data-connector-2.0/using-data-connector-2.0/integrating-with-your-bi-tools/microsoft-power-bi)

Download the template now to turn your Data Connector 2.0 data into insights in minutes, unlock richer analyses and faster decisions with zero modeling required.

### September 17, 2025

We’ve updated the data model to capture license and invite interactions. The `fact_permission_event` table now records these events (e.g., `user_license_allocated`, `user_license_revoked`, `invite_sent`, `invite_claimed`, `invite_withdrawn`). This enables company-level analysis of DataCamp adoption.

### August 21, 2025

We’ve fixed an issue in the data model by removing `course_engagement` events with content\_id = `ex0`. These events did not represent exercise-level engagement and are no longer included, ensuring that engagement metrics remain consistent and exercise-granular.

### August 20, 2025

We’ve enhanced the data model to include course difficulty levels. A new field, `course_difficulty_level`, has been added to the `dim_content` table.

### August 19, 2025

We’ve updated the data model to support the source of the DataLab workbook. The `fact_datalab_events` table now includes the `workbook_source` and `workbook_class` fields.

The `workbook_source` field contains the source of the workbook, with the following possible values: *project, certification, competition, course,* or *other*.

When a workbook source includes one of the following values — *project, certification, competition,* or *course,* it is marked as **embedded**.

### July 10, 2025

A new `dim_assignment` table has been added to the data model to support assignment-level analysis and reporting. Additionally, four assignment-related events—`assignment_assigned`, `assignment_completed`, `assignment_completed_late`, and `assignment_missed`—have been integrated into the `fact_learn_events` table.

### July 2, 2025

Courses in `dim_content` can now contain decimal values for `time_duration_in_hours`. This change is meant to support upcoming courses that are expected to take less than one hour to complete.

### June 5, 2025

We’ve updated the data model to support custom assessments. The `dim_content` table now includes a new boolean field: `assessment_is_custom`. This field indicates whether an assessment is custom (`true`) or standard (`false`).

If your group uses custom assessments, you’ll now see corresponding rows reflected in this table.

We have also added a `last_sso_nameid` column to the `bridge_user_group` table. This field contains the last SSO NameID of the user in the group. Some groups that authenticate with SSO use this field to include custom identification data for their users.

### May 28, 2025

We’ve updated the underlying data in the data model (note: this is not a schema change) to improve the accuracy of engagement metrics:

* **Filtered course activity**: We now exclude `course_engagement` events associated with courses that are not in one of the three expected states: *Live*, *Soft Launched*, or *Archived*. Previously, some engagement data from courses in other states may have been included. This change may slightly reduce reported course durations. This does **not** affect XP calculations.
* **Filtered assessment activity**: We now exclude `assessment_engaged` events for assessments that are not in the *public* state. Previously, engagement data for non-public assessments was included. This change may slightly reduce assessment duration metrics. This does **not** affect XP calculations.

### May 22, 2025

We've enhanced the data model to include the description and short description for courses and chapters. New fields, `description` and `short_description`  has been added to the `dim_content` table.

### April 22, 2025

We've enhanced the data model to include the estimated time required to complete courses and projects. A new field `time_needed_in_hours` has been added to the `dim_content` table. This field represents the expected duration (in hours) to complete a given piece of content and is currently populated only for courses and projects.

### April 17, 2025

We've added a `course_is_skipped` column to `fact_learn_events` . This column will contain a boolean (true/false) for `course_completed` events, indicating whether the course was skipped. A skipped course is still treated as a completed course. For cases when the course was skipped, the `occurred_at` timestamp for the course completion event will reflect the time at which the course was skipped.

### April 16, 2025

We’ve updated the data model to support custom certifications. The `dim_certification` table now includes a new boolean field: `certification_is_custom`. This field indicates whether a certification is custom (`true`) or standard (`false`).

If your group uses custom certifications, you’ll now see corresponding rows reflected in this table.

### March 31, 2025

Launched Data Connector 2.0!!

* With Data Connector 2.0, we’ve significantly improved the data model, making it simpler, more efficient, and aligned with the rest of our reporting.

  * Simplified data model – Fewer tables (29 → 13) for easier querying
  * Data alignment with **Groups** tab reporting - Data Connector 2.0 now uses the same source as the rest of our reporting, ensuring consistency across all analytics and no discrepancies.
  * Includes mobile data - Now includes learner data done via the mobile app
  * Pre-aggregated metrics – New pre-aggregated metric tables to speed up reporting
  * Easier querying – Significantly fewer complex joins for common reports

  For more info on the differences, check out [Migrating from Data Connector (1.0)](/integrating-our-data-into-your-tools-via-data-connector-2.0/migrating-from-data-connector-1.0.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://enterprise-docs.datacamp.com/integrating-our-data-into-your-tools-via-data-connector-2.0/changelog.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
