Provides functions for importing, validating, and analyzing 'Viva Glint'
survey data exports, with optional API-based import via the 'Microsoft Graph'
API. Includes tools for data reshaping, question-level analysis, multi-cycle
comparisons, organizational hierarchy analysis, factor analysis, and
correlation analysis. Harman (1960, ISBN: 0226316513); Husser (2017)

R package for analyzing Viva Glint survey data with comprehensive statistical tools and organizational insights.
'vivaglint' simplifies the analysis of 'Viva Glint' survey exports by providing a complete toolkit for data import, validation, statistical analysis, and reporting. The package handles the complexities of the 'Viva Glint' data structure and offers intuitive functions for common analysis tasks.
Install the package from CRAN:
# Install from CRAN
install.packages("vivaglint")
Install the development version from GitHub:
# Install from GitHub
install.packages("devtools")
devtools::install_github("microsoft/vivaglint")
library(vivaglint)
# 1. Load survey data
survey <- read_glint_survey("survey_export.csv")
# Or pull directly from the Viva Glint API
glint_setup(
tenant_id = "your-tenant-id",
client_id = "your-client-id",
client_secret = "your-client-secret",
experience_name = "your-experience-name"
)
survey <- read_glint_survey_api(
survey_uuid = "your-survey-uuid",
cycle_id = "your-cycle-id",
emp_id_col = "EMP ID"
)
# 2. Get summary statistics (5-point scale)
summary <- summarize_survey(survey, scale_points = 5)
print(summary)
# 3. Analyze response distributions
distributions <- get_response_dist(survey)
# 4. Calculate question correlations
correlations <- get_correlations(survey, method = "spearman")
# 5. Aggregate by manager
manager_results <- aggregate_by_manager(survey, scale_points = 5)
# 6. Compare across cycles
comparison <- compare_cycles(survey1, survey2, survey3,
scale_points = 5,
cycle_names = c("Q1", "Q2", "Q3"))
# 7. Analyze employee attrition
attrition <- analyze_attrition(
survey,
attrition_file = "employee_attributes.csv",
emp_id_col = "EMP ID",
term_date_col = "Termination Date",
scale_points = 5,
time_periods = c(30, 90, 180)
)
# 8. Analyze by attributes
demo_results <- analyze_by_attributes(
survey,
attribute_file = "employee_attributes.csv",
scale_points = 5,
attribute_cols = c("Department", "Gender", "Tenure Group"),
min_group_size = 10
)
| Function | Purpose |
|---|---|
read_glint_survey() |
Import and validate Glint CSV exports |
read_glint_survey_api() |
Export and import survey data via the Glint API |
glint_setup() |
Configure API credentials for read_glint_survey_api() |
summarize_survey() |
Calculate comprehensive question metrics |
get_response_dist() |
Get response value distributions |
compare_cycles() |
Compare metrics across survey cycles |
get_correlations() |
Calculate inter-question correlations |
extract_survey_factors() |
Perform factor analysis |
analyze_attrition() |
Link survey responses to turnover |
analyze_by_attributes() |
Aggregate results by attribute groups |
pivot_long() |
Reshape data to long format |
aggregate_by_manager() |
Roll up results by manager |
Required:
Optional:
Access function documentation within R or on MSLearn:
?read_glint_survey
?summarize_survey
?analyze_attrition
# etc.
Additional documentation files:
FUNCTION_OUTPUTS.md - Detailed output structure documentationUSER_GUIDE.md - Comprehensive user guide with examplesBy default, this package processes survey data locally and does not transmit data to external services. If you use the API import functions (e.g., read_glint_survey_api()), the package connects to Microsoft Graph to export and download survey data. All analysis is still performed locally. Ensure compliance with your organization's data handling policies when working with employee survey data.
Please read the Microsoft Open Source Code of Conduct prior to engaging with this package.
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.
This project uses GitHub Issues to track bugs and feature requests. Please search the existing issues before filing new issues to avoid duplicates. For new issues, file your bug or feature request as a new Issue.
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft’s Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party’s policies.
Version: 0.1.0 Last Updated: March 2026