How can we help?
Searching in {{docApp.searchFilterBySpecificBookTitle}}
{{docApp.searchResultFilteredItems.length}} results for: {{docApp.currentResultsSearchText}}
in {{docApp.searchFilterBySpecificBookTitle}}
Search results have been limited. There are a total of {{docApp.searchResponse.totalResultsAvailable}} matches.
You have an odd number of " characters in your search terms - each one needs closing with a matching " character!
-
{{resultItem.title}}
{{resultItem.url}}
{{docApp.libraryHomeViewProduct.title || docApp.libraryHomeViewProduct.id}}
{{docApp.libraryHomeViewProduct.description}}
{{group.title || group.id}}
{{group.description}}
Simple List Import Utility
- Article
- Wed Jun 24 2026
- 7 minutes to read
- 2 contributors
The utility provides a simple, safe and secure way to populate list data from a database or ODBC connection into any of the Simple Lists within any of the applications within the Hornbill platform. The tool is designed to run behind your corporate firewall, and requires access to your data host(s) or ODBC connection.
The tool connects to your Hornbill instance in the cloud over HTTPS/SSL, so as long as you have standard internet access you should be able to use the tool without any firewall configuration changes.
When the tool is executed it will:
- Extract list data as per your specification (outlined in the Configuration section)
- Create new list entries within the configured application’s Simple List
- The list item value must be unique within the application’s particular list; duplicates are skipped
Download
The utility can be downloaded from GitHub. Please ensure you download the latest version of the ZIP archive relevant to the architecture of the computer it will run on.
Installation Overview
Windows Installation
- Download the OS and architecture-specific ZIP archive
- Extract the zip into a folder, e.g.
C:\list_import\ - Open
conf.jsonand add the necessary configuration - Open a Command Prompt as Administrator
- Change directory to the folder containing the utility:
C:\list_import\ - Run a dry run to validate your configuration before importing:
goHornbillSimpleListImport.exe -dryrun=true
Configuration Overview
A demonstration configuration file (conf.json) is provided within the package. If a configuration file is not specified as a command line argument when executing the tool, a default file named conf.json must exist in the same directory.
Example Configuration File
{
"HBConf": {
"APIKeysKeysafeID": 1
},
"AppDBConf": {
"Driver": "mysql",
"KeysafeKeyID": 2,
"Encrypt": false
},
"Lists": [
{
"SQL": "SELECT val, disp FROM swlists",
"Rebuild": false,
"Application": "com.hornbill.servicemanager",
"ListName": "someList",
"ItemValue": "[val]",
"DefaultDisplay": "[disp]",
"Translations": [
{
"Language": "en-GB",
"Display": "[disp]"
}
]
}
]
}
What Do I Put in the Configuration File?
HBConf
Connection information for the Hornbill instance:
APIKeysKeysafeID— The integer ID of a Keysafe entry of type API Key. This key is used to authenticate all API calls made to your Hornbill instance into the Simple Lists. The Keysafe entry must contain a valid API key created against a user account with sufficient rights.
Your Instance ID and API key are stored securely in an encrypted
import.cfgfile created on first run — they are not stored inconf.json. See On First Run.
AppDBConf
Connection information for the database (direct or via ODBC) that contains the data to import:
Driver— The driver to use when connecting to the database:swsql— Supportworks 7.x SQL (MySQL v4.0.16). Also supports MySQL v3.2.0 to <v5.0mysql— MySQL Server v5.0 or above, or MariaDBmssql— Microsoft SQL Server (2005 or above)odbc— An ODBC connection on the machine performing the importcsv— An ODBC connection using the Microsoft Access Text Driver, configured to point at a folder containing CSV files
KeysafeKeyID— The integer ID of a Keysafe entry of type Database Authentication. This entry holds the server address, database name, username, password, and port used to connect to your data source.Encrypt— Boolean. Whether the connection between the tool and the database should be encrypted. Note: There is a known bug in SQL Server 2008 and below that causes the connection to fail when encryption is enabled. Only set totrueif your SQL Server has been patched accordingly.
Database Authentication Keysafe Entry
The Keysafe entry referenced by AppDBConf.KeysafeKeyID must be of type Database Authentication and contain the following fields:
| Field | Description |
|---|---|
| Server | The address of the database host. Use 127.0.0.1 for ODBC or CSV drivers |
| Username | The SQL database username |
| Password | The password for the above username |
| Database | The database name (or DSN name for ODBC/CSV connections) |
| Port | The SQL port (if connecting directly to a database) |
Lists
A JSON array of objects, each defining a Simple List to populate:
SQL— The SQL query to retrieve data from the configured data sourceRebuild— Boolean. Iftrue, the specified list will be deleted in its entirety before new items are insertedApplication— The technical application name for which the Simple List items are to be added (e.g.com.hornbill.servicemanagerfor Service Manager)ListName— The name of the Simple List within the application. The list will be created if it does not already existItemValue— The value for each list item. Must be unique within the list; items with duplicate values will be skipped. Use square brackets to reference a column from the SQL result, e.g.[val]DefaultDisplay— The display name for each list item. Use square brackets to reference a column from the SQL result, e.g.[disp]Translations— A JSON array of translation objects for the display name:Language— The language code (e.g.en-GB). Can be sourced from a SQL column using square bracketsDisplay— The translated display value. Use square brackets to reference a SQL column, e.g.[disp]
Command Line Parameters
| Flag | Default | Description |
|---|---|---|
-file |
conf.json |
Name of the configuration file to load |
-dryrun |
false |
When true, no list items are created. The XML that would be sent to Hornbill is written to the log file instead — use this to validate mappings before a live run |
-version |
— | Outputs the current version number and exits |
-creds |
— | Prompts for your Instance ID and, if it matches the stored value, displays the stored API key |
API Key Requirements
The API key (sourced via the Keysafe entry referenced by HBConf.APIKeysKeysafeID) requires the following API permissions:
data:listAddItemdata:listDeleteadmin:keysafeGetKey
On First Run
When no import.cfg file exists in the tool’s directory, you will be prompted for two pieces of information:
- Instance ID — The name of your Hornbill instance, found in the URL:
https://live.hornbill.com/instanceid/(case sensitive) - API Key — A valid 32-character API key created against a Hornbill user account with sufficient rights (case sensitive). Details on creating an API key can be found in the Hornbill documentation. This key is used to connect to your instance and access keysafe.
These details are encrypted and saved to import.cfg. The file is tied to the local user account and computer — only the user who created it can run the tool until the file is deleted.
To verify stored credentials at any time, run the tool with the -creds flag.
Preparing to Run
- Ensure the required Keysafe entries exist in your Hornbill instance (API Key and Database Authentication)
- Open
conf.jsonand add the necessary configuration - Open a Command Prompt as Administrator
- Change directory to the folder containing the utility
- Run a dry run first to validate your data mappings:
goHornbillSimpleListImport.exe -dryrun=true -file=conf.json
- Review the log file to confirm the XML output looks correct, then run without
-dryrunto perform the import
HTTP Proxies
If you route internet traffic through a proxy, set the following environment variables before running the tool:
set HTTP_PROXY=HOST:PORT
set HTTPS_PROXY=HOST:PORT
Where HOST is the IP address or hostname of your proxy server and PORT is the port number.
Logging
All log output is saved in the log directory, located in the same folder as the executable. Log file names follow the format:
list_import_20060102150405.log
Troubleshooting
Common Errors
[ERROR] Error Decoding Configuration File:…— Typically caused by a missing quote (") or comma (,) inconf.json. Use an online JSON validator to locate the issue.[ERROR] Database Query Error: read tcp … wsarecv: An established connection was aborted…— Most likely caused by incorrect credentials in the Keysafe entry referenced byAppDBConf.KeysafeKeyID. Check the username and password in that entry.[ERROR] Database Query Error: driver: bad connection.— As above; verify the database credentials in your Keysafe entry.
Error Codes
| Code | Description |
|---|---|
| 100 | Unable to create log file |
| 101 | Unable to create log folder |
| 102 | Unable to load configuration file |
| 103 | Error processing authentication details |
Change Log
v3.0.0 - 2026
See release notes on GitHub.
v2.0.0 - 2025
Initial release
- Version {{docApp.book.version}}
- Node {{docApp.node}} / {{docApp.build}}