Despite the fact that we are a small team, we decided to implement CRM from the very beginning of our company's existence. Among the many solutions available on the market, our choice fell on HubSpot CRM - the leading platform for email marketing and collaboration between marketing and sales teams. In communication with our clients, we make intensive use of the support channel provided by Jira Service Management. We have noticed that we spend a lot of time switching between these two tools. For example, a customer asks us about licensing an app but does not specify the app in the ticket. We then have to copy the customer's e-mail, log in to HubSpot and check his data there, including information about the product that he is subscribing to. We go back to the ticket in Jira and we can continue communication. A bit too many clicks to get simple information... We thought: what if we had this information displayed directly on the ticket in Jira? And so we did it!
What it does
This app fills the gap of missing integration for companies that use both tools: Jira Cloud and HubSpot CRM. With the integration, you can view rich customer data right within Jira Cloud issues without switching between tools.
View reporter’s properties from the following objects:
All HubSpot contacts are matched to Jira users and customers via their email addresses. Thanks to this, you can see information about the reporter in all types of projects: business (from Jira Work Management), software (from Jira Software), and service (from Jira Service Management).
*Remember that your Jira users should have email available to Anyone. It’s a temporary technical limitation.
This integration works for free and paid HubSpot accounts.
How we built it
We use the following Forge modules:
- Forge Admin
- Forge Glance
- Forge Custom UI
- Forge Storage
We manage the entire project using Jira Cloud and Confluence. We have prepared the interface graphic designs in Figma.
Challenges we ran into
We used OAuth 2.0 as a way to authenticate the app with HubSpot instead of the HubSpot API key. The challenge was the redirector with the token for the Forge app and the interception of this token while establishing this connection. But we did it!
To enjoy our full success, we lacked a scope known from Connect: ACCESS_EMAIL_ADDRESSES to get the email addresses of users. Due to this limitation, if you want to display information from Jira user (not the customer) whose email address is not available to Anyone (setting from Atlassian profile), you see information that this email does not exist in the HubSpot. We will discuss it with Atlassian to make this scope available to us.
Another limitation that we encountered (although of a much smaller caliber than the lack of scope) was the lack of possibility to insert an icon next to the action on the issue glance. In this way, we wanted to highlight the action coming from our app, just like we do in Connect apps.
There is also a detail worth mentioning. We were unable to download the contact photo from HubSpot. We cannot display it on issue glance as HubSpot API does not provide it. We hope it will be added at any moment and we will be able to implement it in our app.
Accomplishments that we're proud of
We are proud to implement the integration with HubSpot. It was a real challenge for us, as we mentioned in the previous point.
The testing process of our apps is extremely important to us. We tested our project until the last minute, which saved us from a disaster! 48 hours before the deadline for sending the submission, it turned out that our solution stopped working. We were looking for the cause of the sudden discontinuation of HubSpot integration with the entire team. Fortunately, we quickly found the cause. It turned out that HubSpot changed the Scopes settings for the app. He did not update it in his API documentation, and the only information about the changes we found thanks to the developer's community.
What we learned
We got to know the HubSpot API, which was completely unknown to us. Additionally, we developed our skills in Typescript. We want to stay in our relationship with Forge for a long time. We take a lot of fun writing applications for Forge due to the fact that you can really focus on writing features in these apps (focus on the business side). No need to worry about architecture (which is already partially imposed) or infrastructure (which is provided). That is completely different than in the case of Connect apps.
What's next for HubSpot CRM Integration for Jira
Our first goal is to publish the app on the Atlassian Marketplace. The direction in which it will develop depends mainly on our clients. As in all our other products, we listen to their needs and create solutions dedicated to them. In our company, we also use this integration. Everyday use has shown us that it is worth working on the following elements:
- add the ability to choose different properties depending on the status of the contact
- show more information about the property: field type, description
- decide to whom the HubSpot data is displayed on the issue
- limit the visibility of the values of individual properties depending on the permissions in Jira
Our experience in working on products has shown us many times that our clients' ideas can surprise us and they shape our products. Who knows what the future will bring :)
Due to the fact that it is integration, our application should also be released on HubSpot Marketplace. This is a new area for us to develop, not only in apps but also as a team.