Sage 300 is business management software that lets you manage multi-currencies in a multilingual format and automates several in-line time-consuming business processes.

Business finance, sales order management, inventory management, payment management are all good reasons to use Sage 300. Our client knew the benefits, so they were already using Sage 300 as their business management software. However, their marketing team was using HubSpot for lead generation. So, the need of integration was definitely there for smooth data transfer from Sage 300 to HubSpot for the marketing team to use it.

Sage 300 and HubSpot Integration

Sage 300 stores contacts, companies, sales orders, purchase orders, and product information in its software. Our client’s marketing team needed this data to curate their marketing strategies. By knowing which products are getting sold and which company types are buying those, they can customize their marketing strategies accordingly.

Previously, the marketing team manually transferred the data from Sage 300 to HubSpot, and the process was time-consuming.

Computan enters the scene and creates a middleware first. Middleware had an SQL database where data from Sage 300 got saved. Computan developers created another database within the middleware to transfer the data from the SQL database to the new database and used a trigger to transfer data from one database to another within the middleware.


So, whenever there was a new entry in Sage 300, that data would be entered in middleware which was synced to HubSpot using HubSpot API keys and .NET applications. Now any new entry, update in the data, or deletion in the data in Sage can be known through middleware as well.

Issues in Sage 300 and HubSpot Integration

There were no major issues or setbacks in the project; however, two areas that Computan integration developers faced difficulties that are worth mentioning in the blog are:

Wrong Field Names at the Backend

Object names at the frontend were different than the object names at the backend. For example, emails at the frontend were named S0102 at the backend. Every field was named this way. So, our integration developers had a tough time knowing which field is what at the backend. In some instances, developers asked the client to put testing content at the frontend to know where it goes in the backend. This way, they established the connection between the right fields at the frontend and backend.

Interrelated Data Fields

All the data fields in Sage are interrelated to each other and must be present the same way in HubSpot as well.

If a purchase order is placed, then a contact and company data is also associated with that purchase order. Similar is the case of sales orders. And contacts are associated with the company. One sale order contained multiple lines of orders, such as orders of 5 mobile phones, three tablets, and two laptops jointly made one sales order. Whether they were invoiced or not also had to be updated. Each product’s price was also listed in the sales order.

A complex string of data is saved in the Sage database and has to be sent to HubSpot manner with exact relations to each other.

The objects were interrelated in Sage, and the same object relation must be present in HubSpot as well once they get transferred to HubSpot.

Type of Sage 300 and HubSpot Integration

This particular Sage 300 and HubSpot integration is done by Computan developers was one-way integration. The data flow was from Sage 300 and HubSpot. But, even if there was a request for a two-way integration, that wouldn’t have been possible because Sage 300 as an ERP is a Desktop application. It was not a web application. So, there was no web APIs available that would make the two-way integration possible.

Computan developers informed the client about the one-way integration limitation. The client agreed with it, and it was mutually decided that in the future, when the client’s platform shifts to Sage’s web application, then the two-way integration will take place.

If it were a two-way integration, we would have shared HubSpot quotes data with Sage. HubSpot has pre-built templates that make the quote-generating process for different business models quite easy. And in the quotation, you have to mention the company name, product name, product price, sales order, contact name, making everything interrelated. Clients can send all this data to Sage web applications using web APIs.

We were also managing quotes. Customers used to send quotations to the client; the sales order is created once the quotation is accepted by the client.

Time required for Sage 300 and HubSpot integration

This integration requires around 200 hours

Computan Team Members who worked on HubSpot and Sage 300 Integration

.NET team lead, Abdul Khaliq

Associate Software Engineer, Danyal