Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .buildkite/scripts/run_models.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,4 @@ dbt run --target "$db" --full-refresh
dbt test --target "$db"
dbt run --vars '{employee_history_enabled: true}' --target "$db"
dbt test --target "$db"
dbt run --vars '{workday__using_military_service_incoming: false, workday__using_personal_information_ethnicity_incoming: false, workday__using_personal_info_v2_schema: false}' --target "$db"
dbt test --target "$db"
dbt run-operation fivetran_utils.drop_schemas_automation --target "$db"
11 changes: 0 additions & 11 deletions .quickstart/quickstart.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,6 @@ schema_key: workday_schema
dbt_versions: ">=1.3.0 <3.0.0"

table_variables:
workday__using_military_service_incoming:
- military_service_incoming
workday__using_personal_information_ethnicity_incoming:
- personal_information_ethnicity_incoming
workday__using_personal_info_v2_schema:
- personal_information_common_data
- country_personal_information
employee_history_enabled:
- worker_history
- worker_position_history
Expand Down Expand Up @@ -38,10 +31,6 @@ table_variables:
- position_organization
_fivetran_quickstart_worker_leave_status:
- worker_leave_status
_fivetran_quickstart_military_service_legacy:
- military_service_legacy
_fivetran_quickstart_personal_information_ethnicity_legacy:
- personal_information_ethnicity_legacy

destination_configurations:
databricks:
Expand Down
72 changes: 52 additions & 20 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,37 @@
# dbt_workday v0.9.0
[PR #30](https://github.com/fivetran/dbt_workday/pull/30) includes the following updates.

## Schema/Data Change
**5 total changes • 3 possible breaking changes**

| Data Model(s) | Change type | Old | New | Notes |
| ------------- | ----------- | --- | --- | ----- |
| `stg_workday__military_service` **(Breaking change)** | Removed fields | `index`, `service_type` | N/A | Legacy fields from the [January 2026 Workday HCM schema update](https://fivetran.com/docs/connectors/applications/workday-hcm/changelog#january2026) removed; no longer present in the `military_service` source table. |
Comment thread
fivetran-avinash marked this conversation as resolved.
Outdated
| `stg_workday__personal_information_ethnicity` **(Breaking Change)** | Removed field | `index` | N/A | Legacy field from the [January 2026 Workday HCM schema update](https://fivetran.com/docs/connectors/applications/workday-hcm/changelog#january2026) removed; no longer present in the `personal_information_ethnicity` source table. |
| `stg_workday__military_service` **(Breaking Change)** | Changed field | `coalesce(status_id, status)` aliased as `military_status` | `status_id` aliased as `military_status` | Legacy `status` column removed from source as of the [January 2026 Workday HCM schema update](https://fivetran.com/docs/connectors/applications/workday-hcm/changelog#january2026); `status_id` is now the sole value. |
| `stg_workday__personal_information_common_data`, `stg_workday__country_personal_information` | Changed field | Models gated behind `workday__using_personal_info_v2_schema` variable | Always enabled | The [Workday connector's April 6, 2026 deprecation](https://fivetran.com/docs/connectors/applications/workday-hcm/changelog#january2026) retired the legacy schema, making these models always required. |
| `stg_workday__personal_information` | Removed model | Model existed for legacy schema support | N/A | Removed alongside the legacy schema path in `int_workday__personal_details` as the legacy `personal_information` table is no longer supported per the [April 6, 2026 Workday HCM schema update](https://fivetran.com/docs/connectors/applications/workday-hcm/changelog#january2026). |

## Under the Hood
- Removes the `does_table_exist` macro and all `_incoming` table-switching logic from `stg_workday__military_service_base` and `stg_workday__personal_information_ethnicity_base`. Both base models now point directly to their canonical source tables.
- Removes the legacy schema path from `int_workday__personal_details`, including the `workday__using_personal_info_v2_schema` variable check and associated conditional joins.
- Removes source definitions for `military_service_incoming`, `personal_information_ethnicity_incoming`, `military_service_legacy`, and `personal_information_ethnicity_legacy` from `src_workday.yml`.
- Removes the following variables that were used during the January–April 2026 transition period: `workday__using_military_service_incoming`, `workday__using_personal_information_ethnicity_incoming`, `workday__using_personal_info_v2_schema`.
- Removes corresponding transition-period seed files and CI run from integration tests.

# dbt_workday v0.9.0-a1
[PR #29](https://github.com/fivetran/dbt_workday/pull/29) is a pre-release that includes the following updates:

## Schema/Data Change
**1 total change • 1 possible breaking change**

| Data Model(s) | Change type | Old | New | Notes |
| ------------- | ----------- | --- | --- | ----- |
| `workday__employee_daily_history` <br> `workday__worker_position_org_daily_history` | Data change | Default `employee_history_start_date` = `2005-03-01` | Default `employee_history_start_date` = `2025-03-01` | Aligns the dbt Core default with the Quickstart default. Users who do not explicitly set `employee_history_start_date` will now receive just over one year of history instead of all available history by default. See how to configure the `employee_history_start_date` to another date in the README. |

## Bug Fixes
- Fixes an issue where `workday__employee_daily_history` and `workday__worker_position_org_daily_history` would fail on Snowflake with a `Date 'None' is not recognized` error. The models now handle null results gracefully by falling back to the `employee_history_start_date` variable and today's date respectively.

# dbt_workday v0.8.2

## Feature Updates
Expand Down Expand Up @@ -31,44 +65,42 @@
[PR #19](https://github.com/fivetran/dbt_workday/pull/19) includes the following updates:
Comment thread
fivetran-avinash marked this conversation as resolved.

## Schema and Data Changes
**10 total changes • 0 possible breaking changes**
**8 total changes • 0 possible breaking changes**

| Data Model(s) | Change type | Old | New | Notes |
| ---------- | ----------- | -------- | -------- | ----- |
| `workday__employee_overview` | Field added | N/A | `fivetran_id` | Added Fivetran composite key field to enable advanced joins with new schema updates. Field is null for legacy schema connections. |
| `stg_workday__personal_information_common_data` | New model | N/A | New staging model | New staging model for [January 2026 Workday personal information schema update](https://fivetran.com/docs/connectors/applications/workday-hcm/changelog#january2026) containing personal information fields including date and city of birth, nationality and blood type. |
| `stg_workday__country_personal_information` | New model | N/A | New staging model | New staging model for [January 2026 Workday personal information schema update](https://fivetran.com/docs/connectors/applications/workday-hcm/changelog#january2026) containing country-specific personal information fields including gender and marital status. |
| `stg_workday__military_service` | Join key changed | `worker_id` sourced from `personal_info_system_id` | `worker_id` sourced from `personal_info_common_id` | Model now uses [updated `military_service` schema](https://fivetran.com/docs/connectors/applications/workday-hcm/changelog#january2026). Automatically uses `military_service_incoming` table if available for existing Fivetran connections, otherwise uses `military_service` table for new connections after January 5, 2026. |
| `stg_workday__military_service` | New columns | N/A | `discharge_type`, `status_id` | New fields available in updated schema. |
| `stg_workday__military_service` | Null legacy columns | `service_type`, `military_status`, `index` | `service_type`, `military_status`, `index` cast to null | Legacy fields cast to null for backward compatibility with updated schema. |
| `stg_workday__personal_information_ethnicity` | Join key changed | `worker_id` sourced from `personal_info_system_id` | `worker_id` sourced from `country_personal_information_id` | Model now uses [updated `personal_information_ethnicity` schema](https://fivetran.com/docs/connectors/applications/workday-hcm/changelog#january2026). Automatically uses `personal_information_ethnicity_incoming` table if available for existing Fivetran connections, otherwise uses `personal_information_ethnicity` table for new connections after January 5, 2026. |
| `stg_workday__personal_information_ethnicity` | Null legacy column | `index` | `index` cast to null | Legacy field cast to null for backward compatibility with updated schema. |
| `stg_workday__personal_information_common_data` | New model | N/A | New staging model | New staging model for the [January 2026 Workday HCM schema update](https://fivetran.com/docs/connectors/applications/workday-hcm/changelog#january2026), containing personal information fields including date and city of birth, nationality, and blood type. Gated behind the `workday__using_personal_info_v2_schema` variable. `int_workday__personal_details` updated to auto-detect and join both new split tables when available. |
| `stg_workday__country_personal_information` | New model | N/A | New staging model | New staging model for the [January 2026 Workday HCM schema update](https://fivetran.com/docs/connectors/applications/workday-hcm/changelog#january2026), containing country-specific personal information fields including gender and marital status. Gated behind the `workday__using_personal_info_v2_schema` variable. |
| `stg_workday__military_service` | Join key changed | `worker_id` sourced from `personal_info_system_id` | `worker_id` sourced from `personal_info_common_id` | Reflects the [updated `military_service` schema](https://fivetran.com/docs/connectors/applications/workday-hcm/changelog#january2026). The `stg_workday__military_service_base` model uses `military_service_incoming` for existing connections when available (controlled by `workday__using_military_service_incoming` variable and the `does_table_exist` macro), otherwise uses `military_service`. |
| `stg_workday__military_service` | New columns | N/A | `discharge_type`, `status_id` | New fields available in the [updated schema](https://fivetran.com/docs/connectors/applications/workday-hcm/changelog#january2026). |
| `stg_workday__military_service` | Null legacy columns | `service_type`, `military_status`, `index` | Cast to null | Legacy fields cast to null for backward compatibility during the January–April 2026 transition period. |
| `stg_workday__personal_information_ethnicity` | Join key changed | `worker_id` sourced from `personal_info_system_id` | `worker_id` sourced from `country_personal_information_id` | Reflects the [updated `personal_information_ethnicity` schema](https://fivetran.com/docs/connectors/applications/workday-hcm/changelog#january2026). The `stg_workday__personal_information_ethnicity_base` model uses `personal_information_ethnicity_incoming` for existing connections when available (controlled by `workday__using_personal_information_ethnicity_incoming` variable and the `does_table_exist` macro), otherwise uses `personal_information_ethnicity`. |
| `stg_workday__personal_information_ethnicity` | Null legacy column | `index` | Cast to null | Legacy field cast to null for backward compatibility during the January–April 2026 transition period. |

**Note**: These staging models are ephemeral and will not be present in the warehouse, but we felt it important to document these updates to capture the full depth of changes.
**Note**: These staging models are ephemeral and will not be present in the warehouse, but we felt it important to document these updates to capture the full depth of changes.

## Feature Updates
- Adds automatic table detection to support the newest version of the Workday API schema updates for new and existing Fivetran customers. [Details in the Fivetran release notes](https://fivetran.com/docs/connectors/applications/workday-hcm/changelog#january2026):
- `stg_workday__military_service` automatically detects and uses `military_service_incoming` table for existing customers if available, otherwise uses `military_service` table for new customers.
- `stg_workday__personal_information_ethnicity` automatically detects and uses `personal_information_ethnicity_incoming` for existing customers table if available, otherwise uses `personal_information_ethnicity` table.
- `stg_workday__military_service` automatically detects and uses `military_service_incoming` for existing customers when available, otherwise uses `military_service` for new customers.
- `stg_workday__personal_information_ethnicity` automatically detects and uses `personal_information_ethnicity_incoming` for existing customers when available, otherwise uses `personal_information_ethnicity`.
- All models maintain backward compatibility by setting legacy fields to `null`.
- Added variables to enable table detection support. These variables are `true` by default to support existing customers, who will have the `*_incoming` tables available.
- `workday__using_military_service_incoming`
- Adds variables to enable table detection support. These variables are `true` by default to support existing customers who will have the `*_incoming` tables available.
- `workday__using_military_service_incoming`
- `workday__using_personal_information_ethnicity_incoming`
- If you're a new customer who set up a Workday HCM Fivetran connection after January 5, you should set these variables to `false`. See the [README](https://github.com/fivetran/dbt_workday/blob/main/README.md#optional-workday-schema-migration-configuration) for more details.
- Additionally, if customers need to leverage the old `personal_information` schema, they can set the below variable to `false` in the `dbt_project.yml`:
- If you're a new customer who set up a Workday HCM Fivetran connection after January 5, set these variables to `false`. See the [README](https://github.com/fivetran/dbt_workday/blob/main/README.md#optional-workday-schema-migration-configuration) for more details.
- If you need to use the legacy `personal_information` schema, set the variable below to `false` in your `dbt_project.yml`:
- `workday__using_personal_info_v2_schema`

## Documentation
- Updates [DECISIONLOG](https://github.com/fivetran/dbt_workday/blob/main/DECISIONLOG.md) with rationale for why we are not supporting the legacy schema.
- Updates [DECISIONLOG](https://github.com/fivetran/dbt_workday/blob/main/DECISIONLOG.md) with rationale for why we are not supporting the legacy schema.

## Quickstart Updates
- Adds table variables to support the above automatic table switching feature. **Note:** These will be removed after the transition period when table switching is no longer needed.

## Under the Hood
- Adds `does_table_exist` macro to dynamically detect table availability for automatic schema migration. Updates base models (`stg_workday__military_service_base`, `stg_workday__personal_information_ethnicity_base`) to use `*_incoming` table when available via automatic detection.
- Updates `int_workday__personal_details` to automatically detect and use new split personal information tables when both are available.
- Updates `src_workday.yml` with source definitions for new tables: `personal_information_common_data`, `country_personal_information`, plus `_legacy` variants for old schemas that will be deprecated after April.
- Adds 4 integration test seed files for the new Workday personal information schema; renames seed files to keep reference to old `military_service `and `personal_information_ethnicity` schema; will deprecate after full transition to new tables in April 2026: `workday_military_service_legacy_data`, `workday_personal_information_ethnicity_legacy_data`.
- Adds `does_table_exist` macro to dynamically detect table availability for automatic schema migration.
- Adds 4 integration test seed files for the new Workday personal information schema; renames seed files to preserve reference to the old `military_service` and `personal_information_ethnicity` schema. Legacy seed files (`workday_military_service_legacy_data`, `workday_personal_information_ethnicity_legacy_data`) will be deprecated after the full April 2026 transition.
- Adds consistency tests for remaining Workday models.
- Updates seed files to ensure proper validation of data downstream in `workday__employee_overview`.

Expand Down
29 changes: 2 additions & 27 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ Include the following Workday HCM package version in your `packages.yml` file:
```yml
packages:
- package: fivetran/workday
version: [">=0.8.0", "<0.9.0"] # we recommend using ranges to capture non-breaking changes automatically
version: [">=0.9.0", "<0.10.0"] # we recommend using ranges to capture non-breaking changes automatically
```

#### Databricks dispatch configuration
Expand Down Expand Up @@ -135,7 +135,7 @@ vars:
employee_history_start_date: 'YYYY-MM-DD' # The first `_fivetran_start` date you'd like to filter data on in all your history models.
```

In dbt Core, the default date value in our models is set at `2005-03-01` (the month Workday was founded), designed for if you want to capture all available data by default. If you choose to set a custom date value as outlined above, these models will take the greater of either this value or the minimum `_fivetran_start` date in the source data. They will then be used for creating the first dates available with historical data in your daily history models.
In dbt Core, the default date value in our models is set at `2025-03-01`, bringing in approximately one year of history by default. If you choose to set a custom date value as outlined above, these models will take the greater of either this value or the minimum `_fivetran_start` date in the source data. They will then be used for creating the first dates available with historical data in your daily history models.

For Quickstart users, this variable is available as **Employee History Start Date** in the Quickstart Settings tab. The default value is `2025-03-01`, bringing in data from the last year to ensure your first Quickstart run has recent correct data. Set a different date to increase or reduce the volume of historical records the package processes.

Expand Down Expand Up @@ -166,31 +166,6 @@ vars:
workday_<default_source_table_name>_identifier: your_table_name
```

#### (Optional): Workday Schema Migration Configuration

Workday is migrating to a new API version with significant schema changes that will last for several months. Starting **January 5, 2026**, existing Fivetran Workday HCM connectors will begin syncing new tables with an "_INCOMING" suffix alongside existing tables during a transition period lasting until **April 6, 2026**. This package automatically detects which tables are available in your warehouse and uses the appropriate tables. **No action is required in most cases.**

##### Impacted Tables
The following tables have new versions with "_incoming" suffix:
- `military_service` → `military_service_incoming`
- `personal_information_ethnicity` → `personal_information_ethnicity_incoming`

Additionally, fields from `personal_information_history` have been split into new tables:
- `personal_information_common_data`
- `country_personal_information`

##### Leveraging Legacy or Incoming Table Names
If you need to leverage the old personal information schema or have set up a Workday HCM connector after January 5, you can set the following variables in your `dbt_project.yml`:

```yml
# dbt_project.yml

vars:
workday__using_military_service_incoming: false # Default is currently true
workday__using_personal_information_ethnicity_incoming: false # Default is currently true
workday__using_personal_info_v2_schema: false # To leverage old schema. Default is currently true
```

### (Optional) Orchestrate your models with Fivetran Transformations for dbt Core™
<details><summary>Expand for details</summary>
<br>
Expand Down
Loading