Arrow Link Arrow Link used for denoting a link to a different page Back to Hornbill Blog

INTEGRATION: Hornbill Open Integration Approach

Gerry Sweeney -
INTEGRATION: Hornbill Open Integration Approach

When I first conceived our Hornbill Platform I knew that the key to being successful was the ease in which it could be made to interoperate with other systems.  In theory, the Hornbill Platform could be used to implement pretty much any business application with its many capabilities. However, for now at least, we have chosen to focus our go-to-market efforts on Collaboration, Service Management and Customer Management application areas.  Any business system needs to be able to “play nice” with other systems, and not only should it work well but it should be easy to achieve comprehensive levels of integration without complexity. 

First of all, a little integration history.  All systems have some form of API, everyone knows that, but APIs are generally not interoperable. In the enterprise world for example, an attempt by a working group sponsored by Microsoft to create a standard for exchanging information was created called SOAP, using XML technologies, specifically XML Schema to describe the information structure being exchanged.  SOAP was adopted by Microsoft and Java SDKs and so the dream of seamless interoperability was being sold to the enterprise developers.  Truth is though, the standard was too flexible, and too verbose in its representation, a classic outcome of a committee driven approach to standardise something.  With the flexibility came interoperability issues as different systems took different approaches to represent data within the confines of the standard and it became clear that SOAP actually was not going to deliver on the promise of solving interoperability issues, it was actually going to create just as many.  Since then, web technologies have really taken hold while browsers have never natively supported XML, instead a simple data representation scheme known as JSON (JavaScript Object Notation) which, along with REST has become the defacto standard for implementing API’s simply because its compact, easier to read and browsers support it natively.  There are many variations of these schemes as well as some obscure schemes that use things like ASN.1 or other serializations so the integration landscape is not without its challenges.

Now while we wanted to do as much of the heavy lifting as possible in terms of integrations so our customers don’t have to (see our iBridge for example), we also recognise that there will always be that one thing that we did not think of, integrating two systems always requires what I call “glue code” which is simple code that transforms a message from one format to another. So early on we adopted a strategy of providing a fully open and documented API for the Hornbill Platform and an open source integration approach.   Every integration we build outside of our “everything is done for you” schemes are built and published as open-source projects under the Hornbill Community License, all projects we create are made available to our customers on GitHub, we fully support and maintain these projects, although our customers are also free to fork these projects and make them their own too.

Here are some of the projects we have published with a brief description of their purpose

  • dotNetApiLib – a library that makes integrating any .NET application with Hornbill simple and intuitive
  • goApiLib – a library that makes talking to the Hornbill Platform easy from the Go Programming Language
  • pythonApiLib – a library to use the Hornbill Platform API’s with Python
  • phpApiLib – a library to enable you to integrate with the Hornbill Platform API from PHP
  • goSWRequestImport - Supportworks Request Import Tool for Hornbill Service Manager written in Go
  • goServiceNowRequestImporter – Import requests from a Servicenow instance into Hornbill Service Manager
  • goDbAssetImport – A tool written in Go to import assets from a database source into Hornbill Service Manager CMDB
  • goDb2HContactImport – A tool written in Go to import contacts from a database source into Hornbill
  • goDb2HUserImport – A tool written in Go to import user accounts from a database into Hornbill
  • goAzure2UserImport – A tool written in Go to import user accounts from Azure AD to Hornbill
  • goLDAPUserImport – A tool written in Go to import user accounts from an LDAP source
  • rPowerBIHornbillDataSources -  Data Source scripts written in “R” that enable Power BI to use the Hornbill Reporting and Trend Engine APIs as data sources
  • SCOrchHornbillIntegration – Runbooks that allows Microsoft System Center Orchestrator to integrate with Hornbill
  • goApiScheduler – A simple tool written in Go that can be used to schedule the invocation of Hornbill APIs
  • goHornbillCleaner – A tool to clear down test data in a Hornbill instance
  • powershellHornbillAPIModule – A module that enables you to easily interact with your Hornbill Instance
  • AzureOMSHornbillIntegration - A collection of runbooks and modules for Microsoft Azure and Operations Management Suite, to demonstrate integration with the Hornbill Collaboration platform and Service Manager application.
  • goCSVAssetImport - Import Assets in to Hornbill, with CSV files as the data source.
  • goDBAssetRelationships - Imports and builds relationships between assets in a Hornbill instance, using a database as its data source.
  • goHornbillDataExport - Runs reports on your Hornbill instance, and exporting the report content in to a local database.
  • goHornbillDocumentImport - Bulk-imports locally stored documents into Hornbill Document Manager, using CSV files as document metadata source.
  • goHornbillMeridianTagImport - Updates your Hornbill asset records with hardware tag information from Aruba Meridian.
  • goHornbillOrgImport - Imports organisation records into your Hornbill instance from a database or ODBC source.
  • goHornbillPasswordGen - A secure random string generator module for Go.
  • goHornbillReportRunner - Runs reports on your Hornbill instance, and retrieves report data in formats defined in the report setup.
  • goHornbillRequestBPMSpawner - Spawns BPM workflows for a list of requests.
  • goHornbillRequestImport - Import platform-agnostic Request records into Hornbill Service Manager from a database or ODBC data source.
  • goHornbillRoleFinder - Finds Roles on an instance that contain user-provided System and/or Application rights.
  • goHornbillTaskCanceller - A utility to cancel tasks in Hornbill.
  • goSimpleListImport - Allows for imports into Simple Lists within the Hornbill Platform.
  • goSnowCloudAssetImport - Import tool to create or update Assets in Hornbill using Snow Cloud Licence Manager as its data source.
  • pythonPowerBIHornbillDataSources - Python Scripts to enable Power BI to use the Hornbill Reporting and Trend Engine APIs as data sources.


We are committed to providing a rich and diverse set of tools and integrations to enable our customers to gain the maximum value from using Hornbill in their organisations.  All systems should be built to be interoperable but not all systems are built by people that understand this – I am pleased to say that at Hornbill we truly do understand this and embrace the idea of integrating with anything.

Hornbill ESM

Automate up to 90% of interaction and activity. Make time. Be future-ready.

Share this article