9 custom software integrations – from an idea to the outcome

Even the most complex, user-oriented, and well-thought products can be improved. It often happens that users find opportunities in the system that were not foreseen by its developers. In cases like these, creating a new product is possible but not always recommended. The right answer may be system integration, allowing for even better use of both applications.  When it’s properly conducted, it guarantees, among other things, efficient data management or workflow automatization, and increases Agility.

Our cosmic journey in Deviniti is filled with various missions, one of which is connecting the worlds of different applications. Today, we’ll share more about 9 of them: from the idea, through the execution, to the effect.

TestFLO + Configuration Manager for Jira

TestFLO for Jira is a Jira app that brings advanced testing processes right inside Jira. It allows automating many testing-related processes, triggered directly from a Test Plan and run in Jenkins or Bamboo. The tool also enables categorizing tests with folders according to user’s needs which improves the work of software and IT teams. With TestFLO, we can, among others, configure modules and custom fields to establish the demanding test management process. Each project can be configured individually.

For Jira projects to run smoothly, the configuration elements, such as Issue Types, Workflows, or Fields, must be properly optimized. Configuration Manager is responsible for configuration management and automating data migration between the environments. This allows administrators to efficiently promote configuration changes between test, staging, and production of Jira environments. When is it useful? For example, in the case of the change management process taking place naturally within an instance or during data and objects migration between hosting solutions. Such a situation awaits, for example, Jira Server customers, who must decide on a different hosting option until February, 2024.  

How did we come up with an idea for the integration of these two tools? Actually, we were asked for this feature by clients who worked with both tools and lacked integration between them. One of these clients was a company which is a part of The Big Four consulting firms.

"We've considered the idea in terms of compliance with the product development strategy, and it tourned out that both Configuration Manager and TestFLO fit together because both are intended to address the needs of enterprise customers. Also, they correspond to two of the four key processes for our clients: change and test management."

The system integration was carried out by the TestFLO team, being in contact with Botronsoft, asking about implementation details in several cases.

How can the integration with the Configuration Manager application help in even better and spot-on testing?

TestFLO and Configuration Manager for Jira are the perfect complement. In the change management process, there’s a need to make some changes in the environment, test the change in accordance with a test plan (this area is dealt with by TestFLO), and then transfer the approved change to the production environment (and Configuration Manager is responsible for this process). Additionally, thanks to this integration, configuration changes, including data, can be automatically transferred in TestFLO from one instance to another.

Change management

Thanks to the integration, changes in the test process can be automatically moved to Jira production, after being approved in a test Jira environment.

The Changes with approved modifications are automatically transferred from the New Test Process in the Jira Test Environment to the Current Test Process in the Jira Production Environment. Both environments have active TestFLO and Configuration Manager.

Project Template

The integration also allows creating a project snapshot with TestFLO configuration as a template to save time for reconfiguration.

The TestFLO project configuration is automatically transferred from the Project Template to a new project in the Jira Production Environment with active TestFLO and Configuration Manager.

Update an existing project configuration

Making changes to the TestFLO configuration in one of the existing projects enables transferring it to another existing project in the Jira instance.

The TestFLO project configuration is automatically updated between Project A and Project B in the Jira Production Environment with active TestFLO and Configuration Manager.

Configuration Manager for Jira by Botronsoft and TestFLO for Jira combined allow saving an enormous amount of time and effort that had to be spent on performing manual tests. Migrating configurations between environments is a tedious process that requires testing at every stage. The integration of tools enabled introducing secure changes in processes performed in Jira. Take a look at Botronsoft’s guide to discover more about best migration practices and potential problems associated with this process.

monday.com integrations

monday.com + Freshworks

Does it make sense to integrate two tools responsible for task management? In the case of monday.com and Freshworks – it absolutely does, as Freshworks is a set of tools, including a customer support tool – Freshdesk. Automating the flow of messages coming directly from the customer, through the chatbot or the customer service employee, to monday.com, which allows monitoring the work progress, enables avoiding the chaos and solve customer problems more effectively. Thanks to the integration, not only the employee is relieved of repetitive tasks, but also the manager is able to transparently supervise the work of the team.

Our sales team that works with both monday.com and Freshdesk on a daily basis, has noticed the possibilities behind the integration. monday.com itself is great for managing work in the company, improving teamwork, and keeping an eye on the status of everyone’s work. What it was lacking was the ability to automatically receive the messages, e.g. from chats, and create tickets based on them. Fortunately, Freshdesk is made for handling requests from clients from various communication channels – and these two possibilities could be perfectly combined.

"During the implementations for Freshdesk and monday.com platforms for our clients, we noticed how many teams would benefit from the possibility of integrating these tools. We managed to invite the creators of both of these tools to our project and we were happy to undertake the implementation of building the direct integration."

What was the main goal of this integration? Speeding up the work by achieving a higher level of automatization. How did we manage to do that? We have performed a two-way synchronization which can ensure data consistency across systems. The synchronization was carried out using the REST/ GraphQL API, including mapping field values based on the configuration available to users from the UI level. The solution was created on the Freshdesk platform as a plug-in.

The integration made it possible to benefit from the advantages of both tools. Now, it supports better work organization for sales teams but not only for them. The tickets, received by Freshworks system from several mailboxes and other channels, now automatically create the item on the project board indicated in the configuration on monday.com. It allows to – again – automatically create tasks for other teams that can, by using monday.com, manage a set of tasks. Thanks to the automatic update of tasks in Freshdesk, both teams have access to up-to-date data immediately after the changes have been made in monday’s synchronized items.

General configuration and Field mapping configuration go into Plugin in Freshdesk. Plugin in Freshdesk goes into Dedicated panel (available in the task view containing information about synchronization status). Plugin in Freshdesk and Dedicated panel go into Freshdesk. Freshdesk goes into monday.com with Creating a task and Creating an item with Freshdesk data. monday.com goes into Freshdesk with Updating a task and Amending the changes in the item.

monday.com + AirTable

Another fresh integration that our team is currently working on is the integration of monday.com and AirTable. How it all started? This time, monday.com presented us with his strategic client working on AirTable. The client has decided to switch the platform to monday.com, and therefore he expressed the need to automatically migrate his current data to the monday.com structure. Thus, we started working on the possibility to migrate projects from AirTable to monday.com.

We always try to approach the problem comprehensively, which is why two versions of the solutions were created for this project. One, a bit more advanced, was allowing to recreate the structure of elements in monday.com, taking into account automatic division into groups. Another solution was a bit less complex. While working on it, the Deviniti team created a plugin using a new SDK, prepared by monday.com. The plugin provides the new custom view of the board and the configuration panel. Migration allows transferring elements included on the AirTable Workspace (selected in the plugin) configuration to a chosen group in monday.com.

The integration enables the transfer of the following types of data or columns:

  • users – based on the email address,
  • statuses or selection lists,
  • fields with longer text,
  • links and subitems – based on the relationship between elements defined in AirTable.

Out of the two presented possibilities, the monday.com team decided to put forward the simpler approach to their client. After we’ll receive the specific requirements, we’ll jump into the work. The final product will allow for several manually triggered data transfer from the selected AirTable structure to monday.com, supporting the collaboration of both tools. Automatic migration of the tasks from AirTable to monday.com enables the quick and reliable transfer of tasks and projects.

Configuration goes into Plugin in monday.com. Plugin in monday.com goes into Dedicated board (allowing to perform the migration and checking its status). Plugin in monday.com and Dedicated board go into monday.com. monday.com goes into Airtable with Downloading the Airtable data and Entering data in monday.com.

monday.com + MS SharePoint

Our other client, a company offering environmental protection solutions, commissioned and financed a system integration project to provide a tool for storing company files exclusively on the company’s servers on the SharePoint platform. The implementation is supervised by Mateusz Olczak, the Apps Integration Team Leader at Deviniti.

"The first stage of the project was to recognize whether it is possible to seamlessly authorize communication with SharePoint using a monday.com user logged in via SSO. The analysis showed that it's possible, but not exactly in the form originally required by the client. After consultation, the client agreed to implement an alternative approach."

While working on creating the plugin, we found out that the client would need to separate the server on which the user authorization application would be embedded – monday.com currently only hosts the applications launched by the users, and the server applications must be hosted by the customers themselves.

How do we conduct this IT integration? By creating an application as a plugin for monday.com. We plan to establish:

  • the dedicated board view – to introduce the configuration,
  • the new tab in the detail view of the item – here, it will be possible to select files from SharePoint with the links attached to the item at monday.com,
  • the server application that acts as an intermediary in the process of obtaining the token that authenticates a user in Microsoft Azure.

Due to the fact that monday.com applications are embedded in an iframe, the user’s SSO token cannot be used. For this reason, we have opted for an approach in which the user re-authenticates to Azure once a session.

How does this system integration work?

As part of the work carried out on the monday.com platform, the added files are stored in the form of links. Therefore, the files aren’t stored outside of the client’s servers, in accordance with the company policy. Importantly, the client’s key requirement has been met: the files displayed to the user are only relevant to the items they have access to within SharePoint.

Integration with the central system of storing and distributing company documents allows associating them with tasks handled in monday.com without the need to duplicate and save them on monday.com platform. This way, integration ensures compliance with the company’s security policy. Another advantage is the ability to avoid errors resulting from manual link transfer and a significant acceleration of work on tickets.

Configuration goes into Plugin in monday.com. Plugin in monday.com goes into Dedicated board (allowing the plugin configuration) and Dedicated view (in the item context). Plugin in monday.com, Dedicated board and Dedicated view go into monday.com. monday.com goes into MS SharePoint with Downloading SharePoint data and Adding links to files in monday.com. monday.com also goes into Plugin in the Client's infrastructure with User authentication. Plugin in the Client's infrastructure goes into Azure with Obtaining an authorization token.

Jira integrations

Jira + SAP

When the teams cooperating with each other within one company work with different tools, it’s not that difficult to make a mistake. And when it comes to working with data and numbers, integrating these tools together is almost inevitable. It speeds up the workflow and eliminates the risk of human error. This is the exact case that we’ve come to work with. Our client’s accounting department was divided into two teams: one working with Jira, another – with SAP. Moving data from one system to another manually was taking too much time and effort, and required automation.

The main requirement was to enable creating documents in SAP based on data from Jira. It was also important to assure that the messages will be delivered to SAP, even if the system won’t be available for a longer period. As the client wasn’t ready to introduce a dedicated message queue in his infrastructure, we had to come up with an idea for a different solution. Eventually, we used a message queue based on the database. Fortunately, the client is technologically mature enough to assume responsibility for mapping the data transferred to SAP within his team.

The process of creating the data in SAP is proceeding in two stages. First, the information necessary to create the draft document in SAP is sent from Jira. Next, when the operation is successfully completed, the status in Jira changes, and the attachments from the Jira ticket are transferred to SAP.

Automating the flow of information from Jira to SAP is a huge time-saver. It also eliminated the possibility of making mistakes by the employees. Data consistency is maintained, which obviously speeds up the work and tightens the entire process.

Configuration goes into Plugin in Jira. Plugin in Jira goes into Jira. Jira goes into SAP with Transfering the attachments to SAP and Creating a document in SAP. SAP goes into Jira with Change of the status issue in Jira.

Jira + Grape.io

There are several ways to communicate within a company or a team, but a messaging tool of any kind is probably the most popular solution. When working with tickets, it’s extremely useful to integrate the chat with the task management tool to avoid manual retyping of information. Our partner was using the Marketplace plugin that integrated Jira Server with the chat he was using – Grape – but wasn’t fully satisfied with its functioning. The biggest issues were related to UX and the inability to add new features to the plugin. That is why our Atlassian Services team had to come up with a new solution for system integration.

Taking that into consideration, we’ve proposed an integration that makes it possible to create a new chat from the ticket level in Jira. We can also automatically add users to the chat from the fields indicated in the configuration. What’s more, the plugin enables displaying the chat in the Jira Issue view. In this implementation, we’ve used the RPC API Grape and front-end library allowing for displaying the chat. As for the linking of users between the chat and Jira, it’s based on the users’ emails. The solution was created as a Jira plugin.

The integration process significantly improved cooperation between both tools. Now, users can easily connect the threads brought up in Jira with the communication via the Grape chat. Thanks to this, they can quickly exchange information even with the employees who don’t have a Jira account. In addition, users are able to efficiently refer to the topics covered in Jira comments, using the general chat. Last but not least, the automatical adding users to newly created chats allows all interested Jira users to have access to conversations in Grape. When they’re no longer associated with a given ticket, they’re also removed from the chat.

Configuration goes into Plugin in Jira. Plugin in Jira goes into Dedicated panel (allowing to manage the Grape.io chat panel) and Jira. Dedicated panel also goes into Jira. Jira goes into Grape.io with Updating the list of chat users, Creating a chat related to the ticket and Chat display.

Jira + BPM

Another Jira integration was made to facilitate the sales process to our client. As they were using Jira and BPM systems individually, they expressed the need for this kind of business tools integration. Our main goal was to unify the information appearing in both systems and to enable the updating of the workflow data.

In the case of this integration, our assumption was to prepare a solution that would allow the transfer of statuses and data from the fields in the application and the attachments between Jira and BPM system. An important requirement was to ensure that the messages will be delivered even when the system isn‘t be available for a long time. Here, just like in the case of the integration between Jira and SAP, we used a message queue based on the database. Also, the client required that full control over the integration process to remain within BPM. To achieve that, creating tickets in Jira and downloading attachments was carried out using the built-in Jira REST API. In order to implement data in BMP, a technical user (whose password is stored in the configuration file in an encrypted form) is used.

Finalizing a sales transaction usually requires a rather complex process, therefore the smooth flow of the information is particularly important in this case. The process in our client’s organization is realized in the two tools: Jira and BPM. After implementing the system integration, the tickets are initially created in BPM, next – their clones in Jira are created. After reaching the indicated status, the data in BPM is updated based on the Jira data, and the workflow returns to BPM. Responsibility for controlling the process lies within BPM.

The advantage of this solution is the ability to maintain high-level data consistency, even in the case of a BPM system failure. After the integration, the workflow data is always updated at the right time, so that teams working in Jira and BPM have access to the information they need at the right stage of the workflow implementation.

Configuration goes into Plugin in Jira. Plugin in Jira goes into Jira. Jira goes into Business Process Management with Change of ticket status and update of data. Business Process Management goes into Jira with Creating tickets in Jira and Downloading attachments from Jira.

Insight integrations

Insight + Custom translation system

After Deviniti’s new client resigned from the previous vendor’s services, our main goal was to improve Jira’s performance and integrate it with the client’s custom system.

In this project, we dealt with several system integrations, although they were mainly focused on transmitting information about incidents in the system to an external system, maintained by the client, using REST API. One of the client’s requirements was the ability to run an algorithm that calculates certain coefficients based on these data. The client’s main goal was to create a system working as a translation broker based on Jira. All translation orders and translators data go to Jira from external systems. Based on this data, translations are allocated to specific translators. Finally, when a given person has decided to work on a specific order, information about this fact is sent to another external system. We helped to organize this process by synchronizing the data taking into account the client’s resources.

In order to handle the efficiency of this solution, alerts sent to the external system are divided into two types:

  • alerts that need to be delivered immediately after an incident occurs,
  • alerts that may be delivered with a delay.

The messages of the second type are pushed to the message queue (on the basis of the database). Then, they’re forwarded to the external system, using the configurable, progressive algorithm for determining the interval between the message retry time. Next, data downloaded from the client’s system is stored in the database (cached) and shortly after transformed by means of stored procedures into a form that is directly usable in the algorithm mentioned earlier. Applying the mechanisms of caching and initial transformation was possible due to the low coefficient of data variation.

The goals that we aimed to achieve were to:

  • be able to determine which user has the best predisposition to perform a given task,
  • block the possibility of undertaking the task by other users after assigning the ticket,
  • enable the immediate transformation of information to the billing system when certain events occur in the system.

Thanks to this software system integration, we were able to accomplish optimization of information flow, as well as cost optimization. The important part was also to reduce the risk of undertaking a task by several employees at the same time and thus – speed up the work.

Configuration goes into Plugin in Jira. Plugin in Jira goes into Dedicated panel (displaying user data stored in the external system). Plugin in Jira also goes into Database with Saving Data. Database goes into Database operation and vice versa. Plugin in Jira and Dedicated panel go into Jira. Jira goes into Customer's system with Updating data. Plugin in Jira goes into Customer's system.

Insight + Desktop Central

Another system integration use case from Deviniti’s portfolio concerned the integration of Jira’s plugin – Insight – and Desktop Central system. Our client reported a need for tracking the license base in order to optimize, among others, their number, and to minimize different software versions in the organization.

What’s the technical context behind this solution? The integration enables importing data to Insight with additional, automatical completion of parts of new records, based on the existing ones. In order to ensure data integrity, we’ll use the message queue. On the other hand, we used Insight, a Jira plugin, to store structured data. The communication will take place through REST API Desktop Central and REST API Insight. To avoid any issues with system performance in the future, the team has decided that the application responsible for performing the migration will be an external application that will be independent of the server on which Jira is running.

Finally, what results has this application integration brought? The most noticeable is the ability to manage the software license base (which is a part of ITAM Process). The goals that we achieved are software maintenance process and cost optimization. Our idea is that ultimately all software related licenses throughout the organization should be managed, using the same methodology. In the future, the licenses will be combined with hardware, which will allow for better management of the off- and onboarding process.

Migrator goes into Jira and Insights with Downloading data dictionary and Implementing updated and aggregated data. Migrator also goes into Manage Engine Desktop Central with Downloading data.

If you have the need to integrate the tools you use, feel free to contact us. Our skilled specialists are ready to guide you through the whole process, starting from an idea to maintenance and support. Take a look at our implementation services.

Check other articles on our blog: