Tech Blog

Facebook Icon Twitter Icon Linkedin Icon

AnyMind Group

Facebook Icon Twitter Icon Linkedin Icon

[Tech Blog] Internal IT project in a multinational company


Hi! I‘m Nara and I’m a project manager at AnyMind Group. I am mainly working on internal system development projects, and work out of the Bangkok office. It’s actually my third year in Thailand now!

In this article, I’d like to introduce the integration project between HubSpot and NetSuite as an example of an internal development project.

What is this integration between HubSpot and NetSuite?

This project was started with the goal of improving internal operational efficiency and accuracy. Specifically, we will achieve this goal by integrating HubSpot, an SFA (sales force automation) system, and Netsuite, the accounting system. Both systems are used throughout AnyMind Group.

The relationship between both systems are as follows. HubSpot, as an SFA tool, enables our sales teams to manage their pipeline, so when the sales team closes a deal, they enter it into HubSpot. Netsuite, on the other hand, is an accounting system used for the company’s accounting.


Hubspot and Netsuite relationship diagram

The flow across these two systems is to enter customer information and transactional data into Netsuite once an agreement is reached with the client. Traditionally, this could have been entered by finance and sales admins. However, as a company scales, the volume of transactions naturally increases, and problems such as miscommunication will appear and result in incorrect data input and corrections.

This is why we started this project to build an automated data integration between HubSpot and NetSuite.

Requirements definition

Based on this direction of connecting HubSpot and NetSuite, we started with requirements definition. Since I am a member of AnyMind’s tech team, I naturally had little knowledge of sales administration or finance operations, so I had a member from the finance team who has a good grasp of internal operations assigned to me as a requirements definer, and we started defining the requirements together.

The key to defining the requirements for this project was how to absorb current operations being carried out in each market and how to put them together in a simple flow.

For example, even for a single operation such as inputting information into NetSuite, the timing or the person tasked to input information may differ from market to market. In many cases, this is not due to a lack of uniformity in operations, but rather due to different staffing and workloads in each market, as well as differences in finance rules and business practices between countries.

For example, the presence or absence of a sales administrator can make a big difference. If you have someone hired for the scope, the person will be able to complete the process. However, if there is no person hired for this scope, there needs to be coordination with the sales head of the market on an ad hoc basis to map out the approval process. Also, in one market, there is a business custom of sending a confirmation letter before sending a contract, but since there was no need to tie it with NetSuite, that was not a requirement for system integration. This is one of the challenging parts of the project, as we need to understand the background and business nuances of each market.

After gathering a certain amount of information about the business operations and workflow in each market, we created a workflow diagram to help us visualize the collaboration. Since this project had to do with sales and finance in all our markets, there were many people involved and many people to interview. Even if we were to conduct interviews, it would take a lot of time to explain the process. Therefore, we decided to create a workflow diagram to improve the efficiency of the explanation time. Creating a diagram like this at the requirements definition stage was help for later explanations, and also helped project members understand the project better.


Planned development workflow based on inputs from various markets

Once the general flow was created through this process, the next step was to map NetSuite properties to HubSpot. The two systems have similar data structures conceptually, but they are fundamentally different systems, and thus we needed to create a mapping table for necessary items.

In particular, creating a table of attribute values such as industry and payment terms was quite a tedious but needed task. Fortunately, both HubSpot and NetSuite allow us to create new properties flexibly, so we were able to create and handle any missing items.


Example of a mapping table

The final important point in the requirements definition part was that the basis for the amount of money should be clear in this connection and that the numbers should not be unintended. Especially since NetSuite is an accounting system, the numbers that are entered must be accurate. In this case, we had to be careful not to have any unexpected operations or to have any impact even if they did occur. For example, when an Order (input) request is sent to NetSuite, it can be processed as a single item, even if it is executed multiple times.

In addition, since multiple Orders should be created from a single Deal, ID management was thoroughly implemented to prevent such problems from occurring. In the requirement definition stage, we identified the input routes and defined how to deal with each pattern.

We paid special attention to the above points while defining the requirements.

Development to operation commencement

After the development phase started, we proceeded with the development by narrowing down tickets.

There were a few things that we hadn’t envisioned in the requirements definition, but we were able to deal with them without major changes because we were able to do a thorough investigation beforehand.

Since the implementation itself proceeded smoothly, the most time-consuming part of the development phase was actually the confirmation of the developed product through testing. In the testing stage, we not only confirmed that the patterns assumed in the requirements definition worked as expected, but also developed counter fixes for the points found in the actual testing.

In addition, we carefully checked how the system would work in case of unanticipated operations, which were also taken into account in the requirements definition. Through these checks, we ensured the legitimacy of the data required for NetSuite system integration.


An example of a test case

After development and testing, it’s time to go live, but AnyMind has a presence across many markets and it’s quite difficult to go live at a single time, especially when many members are involved in a project like this. Therefore we took to pre-launching the project in a few selected markets.

The advantage of pre-launching is that we can focus on a limited number of people and provide support to them, and if we find any problems or major changes that need to be made, we can respond quickly. Also, by doing a final thorough check here, we can reduce the number of issues when we start operating the system in all markets.

Once we entered the pre-operation phase, the last role was to provide support such as responding to internal inquiries. Even though we could tell them how to collaborate and what the rules are (to some extent) through manuals and briefing sessions, there are many things that our users will not really grasp until they actually perform the task.

For this reason, it is important to have the sales and finance members work together and verify cases as they arise. We can then determine if it is a case that needs to be taken into account or if it can be solved by having the system adapt to the situation. It is very important to repeat these verifications during the pre-operation period to fill in the gaps that may occur when the system goes into production. After this pre-operation period, we were able to transition into production smoothly.


Pre-operation briefing materials


Digital transformation is a hot topic these days, and I believe that there will be more and more cases of systemization and automation of internal operations. Even a digital company like AnyMind is no exception.

With offices in multiple markets and a diverse group of members involved, I think it is an environment with many challenges. If you want to try your hand at an internal IT project in a global and diverse environment, let’s work together!

If you want to solve global problems with your technical skills, please select “Product Development” from the link below to see open positions.

Career | AnyMind Group

We also have a blog written by engineers in AnyMind Group. If you’d like to read it, please click the links below:

Latest News