galvanizer is a package designed to interact to Highbond’s API (https://docs-apis.highbond.com). By using R with galvanizer, you can download data from Highbond’s Results and Project modules. For Highbond Results, you can also process data locally and upload data into Highbond Result tables.
You can install the currently available version of galvanizer from CRAN:
# Release:
install.packages('galvanizer')
# Development version:
# devtools::install_github("jonlinca/galvanizer")
Before using the API, you will need some core information to access your Highbond instance. They are:
To generate a Highbond API token from your Highbond instance by referencing the help files. This can be found on your profile page.
To identify your organization number and data center, best found from
your Launchpad, under Options / Organization. The organization number
will be under the format of
https://accounts.highbond.com/orgs/<ORGANIZATION_ID>/details
To use any functions, you will need to create and pass a Highbond
Authentication object. You can make it by passing the API token,
organization / instance number and data center location to
setup_highbond()
:
library(galvanizer)
<- setup_highbond(highbond_openapi, highbond_org, highbond_datacenter) highbond_auth
Once you have those, then you need to identify the table you want to
upload and download data from. The easiest way to do this is to navigate
to the Results Data Analytic table you want to upload and grab the
TABLE_ID
from the URL. It will look like:
https://<company_name>.results.highbond.com/projects/<COLLECTION_ID>/controls/<ANALYSIS_ID>/control_tests/<TABLE_ID>
You can choose to upload a set of test data into a new Data Analytic to try this out:
<- data.frame(name = c('Cowbell', 'Rufus'),
upload age = c(21, 32),
active = c(TRUE, FALSE),
date_started = c(as.Date('2019-01-01'), as.Date('2020-01-01')),
date_ended = c(as.POSIXct(Sys.time()), as.POSIXct(Sys.time())))
# Substitute your API key, org number, data, center, table, and the dataframe to be uploaded
post_results_records(highbond_auth, highbond_table, upload = upload, purge = TRUE)
#> NULL
Once that has successfully uploaded into Highbond Results, you can view the results online and also download the new data too:
<- get_results_records(highbond_auth, highbond_table)
download #> Retrieving Readme
#> Date in ISO8601 format; converting timezone from UTC to "America/Edmonton".
#> Date in ISO8601 format; converting timezone from UTC to "America/Edmonton".
#> Date in ISO8601 format; converting timezone from UTC to "America/Edmonton".
head(download$content$data)
#> metadata.priority metadata.status metadata.publish_date metadata.publisher
#> 1 Low New 2021-05-27 22:21:38 Jonathan Lin
#> 2 Low New 2021-05-27 22:21:38 Jonathan Lin
#> metadata.assignee metadata.group metadata.updated_at metadata.closed_at
#> 1 <NA> <NA> 2021-05-27 22:21:38 <NA>
#> 2 <NA> <NA> 2021-05-27 22:21:38 <NA>
#> name age active date_started date_ended extras.record_id
#> 1 Cowbell 21 TRUE 2019-01-01 2021-05-27 22:21:34 1.250362e+15
#> 2 Rufus 32 FALSE 2020-01-01 2021-05-27 22:21:34 1.250362e+15
#> extras.collection extras.results_table
#> 1 galvanizer Readme
#> 2 galvanizer Readme
Highbond Projects data (also known as ‘Audits’) is also retrievable, depending on which screen of information you would like to retrieve from. There are options to download all or just one set of information, depending on the pane chosen.
<- get_projects(highbond_auth) projects