Automating Tableau Server User Management

library(vvtableau)

# Authenticate on the Tableau Server.
tableau <- authenticate_server(
  server = "https://tableau.server.com",
  username = "your_username",
  password = "your_password"
)

Introduction

The vvtableaupackage provides a set of functions to interact with Tableau Server, allowing you to automate various user management tasks. This vignette will focus on how to use the package to identify and notify administrators about inactive Tableau users.

Identifying Inactive Tableau Users

To identify inactive Tableau users, we’ll use the get_server_users() function to retrieve a list of all users on the Tableau Server, and then filter out those who have not logged in for a specified period of time.


# Retrieve all users from Tableau Server
all_users <- get_server_users(tableau, page_size = 300, page_number = 1)

# Filter out inactive users
inactive_users <- all_users %>%
  mutate(last_login = as.Date(last_login)) %>%
  filter(!name %in% protected_users$user_id,
         site_role == "Viewer") %>%
  arrange(desc(last_login)) %>%
  unique(by = "name") %>%
  filter(last_login < (Sys.Date() - lubridate::years(1) - lubridate::months(6)) | is.na(last_login)) %>%
  filter(!is.na(last_login)) %>%
  select(full_name, name, last_login)

In this example, we:

Notifying Administrators

Once you have the list of inactive users, you can use your preferred method to notify the administrators. This could be sending an email, posting a message in a chat channel, or any other communication method. Here’s an example of how you could send a message to a Slack channel:



library(slackr)
## Assuming you have authenticated with Slack using slackr_setup() and have access to the channel.

slackr::slackr(channel = "#tableau-notifications",
               text = "The following users have not logged in to Tableau Server for more than 1.5 years:")

slackr::slackr_table(inactive_users,
                    channel = "#tableau-notifications",
                    quote = FALSE)

This code will send a message to the #tableau-notifications Slack channel, followed by a table of the inactive users.

Conclusion

The vvtableau package provides a convenient way to automate the process of identifying inactive Tableau users and notifying the appropriate administrators. By using this package, you can ensure that your Tableau Server is being used effectively and that inactive accounts are properly managed.