Mapping Settings

Learn how to configure your mappings.

Overview

Ensure users see the correct data when using Visier by correctly configuring your mappings. Choosing the right mapping configuration depends on how your data is structured and how you want to load your data on an ongoing basis.

Note:  

  • When loading data in Visier, mappings dictate how your data should be extracted, transformed, and loaded. For more information, see Mappings and Add a Mapping.
  • You should create a mapping for each source containing data you want to extract, transform, and load in to Visier. For more information, see Sources. Depending on how your data is structured, the number of mappings you need can vary. For example, you can have your employee and employee performance data in one or multiple CSV files.
  • A single source can be used for multiple mappings.

Data file type

Data file type determines how Visier treats your file uploads. For example, you can configure your mapping to treat each file upload as a snapshot of all your data at a point-in-time or an incremental update that only includes new and updated data.

Temporal

Choose temporal when taking the snapshot approach and uploading files that contain all your data at a point-in-time.

Example:

Let's say you work at an organization with three employees and you want to load all employees in April, capture a promotion that occurs for your IT Manager in May, and capture a resignation that occurs by your Finance Manager in June.

Your file for April may look like:

Snapshot date (mm-dd-yyyy)

Employee ID (EID)

Department

Job name

04-30-2024

EID101

HR

HR Manager

04-30-2024

EID102

IT

IT Manager

04-30-2024

EID103

Finance

Finance Manager

Your file for May may look like:

Snapshot date (mm-dd-yyyy)

Employee ID (EID)

Department

Job name

05-31-2024

EID101

HR

HR Manager

05-31-2024

EID102

IT

IT Director

05-31-2024

EID103

Finance

Finance Manager

Your file for June may look like:

Snapshot date (mm-dd-yyyy)

Employee ID (EID)

Department

Job name

06-30-2024

EID101

HR

HR Manager

06-30-2024

EID102

IT

IT Director

Since we're using the temporal data file type, each of the files must contain the updated records for all employees even if there are no changes to the records.

After loading the above data into a temporal mapping, the records would reflect the following:

  • April headcount metric is three (EID101, EID102, and EID103).
  • The May headcount is three (EID101, EID102, and EID103).
  • The June headcount is two (EID101, EID102).

In the above example, the removal of EID103 is implicit in the data, and not a result of explicit removal from the source. Temporal data is snapshot-style data comprising a set of records at a point in time. This data is "wide" and includes all the columns in the schema for each record.

Typically, temporal data is loaded period-to-period. Visier compares the incoming data and infers if members of the subject need to be removed for periods of time.

Transactional profile

Choose transactional profile when you plan to upload files that only contain new or changed records.

Example:

Let's say you work at an organization with three employees and you want to load all employees in April, capture a promotion that occurs for your IT Manager in May, and capture a resignation that occurs by your Finance Manager in June.

Your file for April may look like:

Event date (mm-dd-yyyy)

Employee ID (EID)

Department

Job name

Status

04-30-2024

EID101

HR

HR Manager

Active

04-30-2024

EID102

IT

IT Manager

Active

04-30-2024

EID103

Finance

Finance Manager

Active

Your file for May may look like:

Event date (mm-dd-yyyy)

Employee ID (EID)

Department

Job name

Status

05-15-2024

EID102

IT

IT Director

Active

Your file for June may look like:

Event date (mm-dd-yyyy)

Employee ID (EID)

Department

Job name

Status

06-16-2024

EID103

Finance

Finance Manager

Inactive

Since we're using the transactional profile data file type, each file only contains employee records that have changed since the load. To remove an employee from the application completely, send the data again without the employee record. Transactional data persists indefinitely, reflecting changes in state even when not included in files.

A transactional profile combines elements of both temporal and transactional log data. It excludes unchanged records while fully capturing each modified record. The data structure is "wide," meaning a row is included only if at least one attribute has changed, with the corresponding change timestamp recorded.

Transactional log

Choose transactional log when you plan to upload files that are structured to be "tall" rather than "wide" and where each row represents a single property value change.

Example:

Let's say you work at an organization with three employees and you want to load all employees in April, capture a promotion that occurs for your IT Manager in May, and capture a resignation that occurs by your Finance Manager in June.

Your file for April may look like:

Event date (mm-dd-yyyy)

Employee ID (EID)

Attribute

Value

04-30-2024

EID101

Department

HR

04-30-2024

EID101

Job name

HR Manager

04-30-2024

EID102

Department

IT

04-30-2024

EID102

Job name

IT Manager

04-30-2024

EID103

Department

Finance

04-30-2024

EID103

Job name

Finance Manager

04-30-2024

EID101

Status

Active

04-30-2024

EID102

Status

Active

04-30-2024

EID103

Status

Active

Your file for May may look like:

Event date (mm-dd-yyyy)

Employee ID (EID)

Attribute

Value

05-15-2024

EID102

Job name

IT Director

Your file for June may look like:

Event date (mm-dd-yyyy)

Employee ID (EID)

Attribute

Value

06-16-2024

EID103

Status

Inactive

Since we're using the transactional log data file type, each file only contains employee records that have changed since the load and each record consists of a column value pair. To remove an employee we had to remove their record from all previous file uploads and re-upload those files. Similar to transactional profile data, you will need to filter out any data in the metrics.

A transactional log is a journal-style record that captures data changes over a specified interval. It follows a "tall" format, listing only the attributes that have changed along with their new values. Each entry includes a timestamp indicating when the change occurred.

This file type simplifies tracking modifications by directly recording changed values, reducing the number of records that need to be processed. Since changes are explicitly logged rather than inferred, additional extraction rule formulas are required when importing data in mappings.

Validity range

Choose validity range for data that has a known start and end date. The end date on a validate range mapping is considered exclusive. For example, in a record with an end-date of December 31 2023, you will need to shift it to January 1 2024 in your mapping for a valid record on December 31 2023.

Example:

Let's say you load employee performance data for the year 2023. Your file for may look like:

Event date (mm-dd-yyyy)

Employee ID (EID)

Performance Rating

Start date (mm-dd-yyyy)

End date (mm-dd-yyyy)

01-01-2023

EID101

4

01-01-2023

12-31-2023

01-01-2023

EID102

4

01-01-2023

12-31-2023

01-01-2023

EID103

5

01-01-2023

12-31-2023

Mapping type

Mapping type is how you load and combine data from multiple sources. For example, you can populate an employee object in Visier with data that is stored in one or more files. These types are specific to subject and overlay analytic objects and do not exist for events.

Regular

Choose a regular mapping type when loading primary data that you consider to be the source of truth for a selected target. Regular mapping types create and remove objects in Visier based on the records that exist in the selected data source. When creating a mapping, regular is the default data type.

Example: Let's say you want to load employee data and you have a file that you consider to be the source of truth for whether an employee currently exists or does not exist in your organization. You can create a regular mapping to ensure employees are added or removed based on the records that exist in your employee data file. Your employee data file may look like:

Event date (mm-dd-yyyy)

Employee ID (EID)

Department

Job name

04-30-2024

EID101

HR

HR Manager

04-30-2024

EID102

IT

IT Manager

04-30-2024

EID103

Finance

Finance Manager

Auxiliary

Choose an auxiliary mapping type when you want to augment existing data with data loaded from a different source.

Note: This only works if the auxiliary data contains an ID that matches the ID of the records you want to merge with.

Example: Building off the previous example for regular mappings, let's say you want to load employee performance data using an auxiliary mapping type. In addition to the regular mapping for your core employee data, you can create an auxiliary mapping to load your employee performance data. Your employee performance data file may look like:

Event date (mm-dd-yyyy)

Employee ID (EID)

Performance Rating

04-30-2024

EID101

3

04-30-2024

EID103

5

In this example, EID102 is missing from the performance data file. Because EID102 exists in the core employee data file, EID102 will still exist in the headcount, but their performance rating is "Unknown" until you send a performance data file with a Performance Rating value for EID102.

You can use this approach to populate the employee objects in Visier with employee and employee performance data stored in separate files.

When deciding whether to use a regular or auxiliary mapping setting, it’s important to evaluate the relationship between the new data being added and whether any related data already exists within the system.

Regular mapping is used for the primary data source that determines an object's existence within the application. It is appropriate if the presence of a record in the source indicates that the object exists, while the absence of a record means it does not exist. For example, a source containing general employee data, serving as the main source of employee information, would typically use a regular mapping.

Auxiliary mapping is used to provide supplementary details about entities that are already established through regular mapping. It adds additional information without affecting the existence of an entity. For example, a table storing employee performance data would use auxiliary mapping because it supplements existing employee records but does not introduce a new employee into the system.

Lookup

Choose a lookup mapping type when you want to augment existing data with data loaded from a different source.

Note: Lookup is the preferred method to use when existing data can only be linked to the subject via a secondary property, often called a foreign key. Use lookup when a data source does not have a key property to match the ID for your subject.

Example: Let's say you want to load employee job name data using a lookup mapping type. You can create a regular mapping to load your internal job code employee data. Your employee data file may look like:

Event date (mm-dd-yyyy)

Employee ID (EID)

Department

Job Code

04-30-2024

EID101

HR

123

04-30-2024

EID102

IT

456

04-30-2024

EID103

Finance

789

You can then create a lookup mapping to load your job name data. Your job code-to-name file may look like:

Event date (mm-dd-yyyy)

Job Name

Job Code

04-30-2024

HR Manager

123

04-30-2024

IT Manager

456

04-30-2024

Finance Manager

789

04-30-2024

Finance Director

146

04-30-2024

IT Director

168

You can use this approach to populate the employee objects in Visier with job name and job code data stored in separate files.

Static Mapping

A Static map is a special key-value pair lookup mapping that is used in mapping extraction formulas. For more information, see Visier Formula Language.

Static mapping is a special use case to consolidate multiple IDs in different data sources who are the same individual. For example, an HRS migration from an old system to new systems may have different IDs between them. A static map is used to replace the ID at extraction time, as you cannot change ID after the extraction, nor merge separate streams.

Correction

Choose a correction mapping type when you want to overwrite the current data with updates or corrections. To learn more about the correction mapping type, contact your Partner Success Manager.

Data file types by mapping type

The available data file types change with the selected mapping type. The following table shows the data file types that can be used per mapping type.

Mapping type Data file types
Regular Temporal, transaction log, transactional profile, validity range
Auxiliary Temporal, transaction log, transactional profile
Lookup Temporal, transactional log, transactional profile, static map
Correction Various

There are two distinct types of regular events to highlight:

  • Conception Events – These are journal-style records marking the beginning of a subject's validity interval. For example, an employment start event signifies the creation of an employee profile. While they are loaded like other events, Visier treats them differently as conception events should align with the employee profiling data.
  • Termination Events – These journal-style records indicate the end of a subject's validity interval. For example, an employee exit event marks the conclusion of an employee profile (a profile termination event). Termination events must align with the employee's removal from the profiling data.

Override behavior

Override behavior is how you specify which records to load when loading data on an ongoing basis. For example, let's say you load incorrect employee data for January 2024, you can re-upload the correct employee data for January 2024 and configure the override behavior to load the correct employee data and ignore the incorrect employee data.

In Visier, override behavior serves the following purposes:

  • Restate data at any point in time without manually excluding previously-uploaded files.
  • Group data flexibly.
  • Configure override behavior once and never have to configure it again.

Visier determines whether a data file is newer or older using snapshot time. By default, snapshot time is the file's upload time, but you can set a different snapshot time in the global workspace in Data > Sources > Uploaded Files. For more information about snapshot time, see How Time Is Represented in a Source.

In each mapping, choose one of the following override behaviors:

  • Event date.
  • Event date and subject member ID.
  • Record period date.
  • Record period date and subject member ID.

Note: You can change a mapping's override behavior at any time without losing files or data.

Event date

Choose event date when you want to ignore records from previous file uploads that have an event date that matches the event date of a record in a newer file upload.

Example:

Let's say you want to load employee data for April 2024 and then reload that data with some corrections using the event date override behavior.

Your first file upload for April may look like:

Event date (mm-dd-yyyy)

Employee ID (EID)

Department

Job name

04-30-2024

EID101

HR

HR Manager

04-30-2024

EID102

IT

IT Manager

04-30-2024

EID103

Finance

Finance Manager

Your second file upload for April may look like:

Event date (mm-dd-yyyy)

Employee ID (EID)

Department

Job name

04-30-2024

EID101

HR

HR Director

How your employee data appears in Visier:

Event date (mm-dd-yyyy)

Employee ID (EID)

Department

Job name

04-30-2024

EID101

HR

HR Director

Since the new file has a record with an event date of 04-30-2024, we only load the one record and ignore any record from previous file uploads that have an event date that matches 04-30-2024.

Event date and subject member ID

Choose event date and subject member ID when you want to ignore records from previous file uploads that have an event date and subject member ID that matches the event date and subject member ID of a record in a newer file upload.

Example:

Let's say you want to load employee data for April 2024 and then reload that data with some corrections using the event date and subject member ID override behavior.

Your first file upload for April may look like:

Event date (mm-dd-yyyy)

Employee ID (EID)

Department

Job name

04-30-2024

EID101

HR

HR Manager

04-30-2024

EID102

IT

IT Manager

04-30-2024

EID103

Finance

Finance Manager

Your second file upload for April may look like:

Event date (mm-dd-yyyy)

Employee ID (EID)

Department

Job name

04-30-2024

EID101

HR

HR Director

How your employee data appears in Visier:

Event date (mm-dd-yyyy)

Employee ID (EID)

Department

Job name

04-30-2024

EID101

HR

HR Director

04-30-2024

EID102

IT

IT Manager

04-30-2024

EID103

Finance

Finance Manager

Since the new file has a record with an event date of 04-30-2024 and subject member ID of EID101, we only load the record for EID101 in the second file and load the records for EID102 and EID103 from the first file upload.

Record period date

Choose record period date when you want to ignore records from previous file uploads that have a record period date that matches the record period date of a record in a newer file upload.

Note: "Record Period Date" does not have to be a named column in your source file. Instead of a record period column, you can alternatively use the Visier Formula Language to group events based on the event date column; for example, lastDateInMonth(dateColumn("Event Date")). This is useful to load the accuracy of EventDate while also grouping events to represent the "month of" they exist in.

Example:

Let's say you want to load employee data for April 2024 and then reload that data with some corrections using the record period date override behavior.

Your first file upload for April may look like:

Event date (mm-dd-yyyy)

Employee ID (EID)

Department

Job name

Record period date (mm-dd-yyyy)

04-10-2024

EID101

HR

HR Manager

04-30-2024

04-12-2024

EID102

IT

IT Manager

04-30-2024

04-18-2024

EID103

Finance

Finance Manager

04-30-2024

Your second file upload for April may look like:

Event date (mm-dd-yyyy)

Employee ID (EID)

Department

Job name

Record period date (mm-dd-yyyy)

04-10-2024

EID101

HR

HR Director

04-30-2024

How your employee data appears in Visier:

Event date (mm-dd-yyyy)

Employee ID (EID)

Department

Job name

Record period date (mm-dd-yyyy)

04-10-2024

EID101

HR

HR Director

04-30-2024

Since the new file has a record with a record period date of 04-30-2024, we only load the one record and ignore any record from previous file uploads that have an record period date that matches 04-30-2024.

Record period date and subject member ID

Choose record period date and subject member ID when you want to ignore records from previous file uploads that have a record period date and subject member ID that matches the record period date and subject member ID of a record in a newer file upload.

Example:

Let's say you want to load employee data for April 2024 and then reload that data with some corrections using the record period date override behavior.

Your first file upload for April may look like:

Event date (mm-dd-yyyy)

Employee ID (EID)

Department

Job name

Record period date (mm-dd-yyyy)

04-10-2024

EID101

HR

HR Manager

04-30-2024

04-12-2024

EID102

IT

IT Manager

04-30-2024

04-18-2024

EID103

Finance

Finance Manager

04-30-2024

Your second file upload for April may look like:

Event date (mm-dd-yyyy)

Employee ID (EID)

Department

Job name

Record period date (mm-dd-yyyy)

04-10-2024

EID101

HR

HR Director

04-30-2024

How your employee data appears in Visier:

Event date (mm-dd-yyyy)

Employee ID (EID)

Department

Job name

Record period date (mm-dd-yyyy)

04-11-2024

EID101

HR

HR Director

04-30-2024

04-12-2024

EID102

IT

IT Manager

04-30-2024

04-18-2024

EID103

Finance

Finance Manager

04-30-2024

Since the new file has a record with an record period date of 04-30-2024 and subject member ID of EID101, we only load the record for EID101 in the second file and load the records for EID102 and EID103 from the first file upload.

Target group

Use a target group to include supplemental data in a mapping that will be considered separate from the main source. This setting in mappings allows you to incorporate additional data sources alongside existing mappings and avoid override behaviour clashes, or to distinguish auxiliary mappings from one another.

A target group serves as an optional label for grouping mappings in regular and lookup scenarios but is required for auxiliary mappings. Use target groups to isolate a specific mapping, or several mappings, for a target. The job compares changes within the same target group, ensuring that data from other mappings is not treated as missing or deleted.

Example: Let’s say you load your employee data from two files: full-time workers and contingent workers. Both files represent the same time periods and map to the Employee subject, but they're uploaded at different times. When creating mappings to load this data, you can set the target group as "Full-Time" for the full-time workers mapping and "Contingent" for the contingent workers mapping. This ensures that Employee data isn't considered missing when it's uploaded at different times.

By mapping the full-time and contingent target groups separately, Visier treats them as distinct sources, preventing overwrites when loading new data.

If the same subject ID appears in both the new and existing sources, the data will be merged, potentially causing conflicts. To prevent this, ensure that subject IDs are unique across sources. This ensures a seamless transition while maintaining data integrity and system continuity.