Elements Connect

How to integrate customer information and deals from Hubspot into Jira issues

The need: Get customer information and associated deals from HubSpot

In this context, we use a JSM portal to manage RFP (request for proposal) requests from sales representatives on behalf of leads tracked in HubSpot.

When creating a RFP request on the Jira Service Management portal, users must select which customer they are raising the request for. This means that Jira administrators must maintain customer records and associated deals up to date in order to keep it synchronized with what’s configured in HubSpot. Furthermore, agents in charge of processing these requests - typically pre-sales teams - want to know details about the customer or any existing associated deals without having to log in to HubSpot.

We would like to:

  • populate a select list with customer stored in the CRM tool, HubSpot, and keep it synchronized

  • provide pre-sales teams with customer information stored in HubSpot (contact details, associated deals, etc.)

We use Elements Connect to directly fetch customer names from HubSpot by configuring a direct connection between Jira and HubSpot. We also provide Pre-sales teams with customer information stored in HubSpot, such as the customer name, e-mail, job title, and deals associated to this customer:

Submit a Help Desk Request for a Customer (1).gif


How to configure a customer selector and fetch customer information and associated deals from HubSpot

Prerequisites

  • Have HubSpot as your Customer Relationship Management tool

  • Have Elements Connect installed on your instance

Configuration steps

The configuration is done in 4 steps:

  1. Create and configure the HubSpot datasource in Elements Connect

  2. Create and configure the Connected custom field in Elements Connect to retrieve customers, contacts and deals from the HubSpot datasource

  3. Associate the Connected custom field to a request type in your JSM project

1. Hubspot configuration

Please follow the documentation below explaining how to configure Hubspot and connect to our app: Configure Hubspot as a datasource 

2 - Configuring the connected items “Customer”, “Contacts” and “Deals”

In this tutorial, we are going to create 3 Connected custom fields:

  • Customer: A select list that retrieves customers configured in HubSpot based on what the user is typing

  • Contacts: A read-only table that displays the contact first name, last name and e-mail

  • Deals: a read-only table that display all deals associated to the customer selected

A. Customer

Click to expand...

Create one Connected custom field called “Customer” of type Select list. Set HubSpot (or the name you gave to the datasource configured previously) as the datasource and configure it as follows:

image-20260825-090507.png
image-20260825-084334.png
image-20260825-084352.png
  • Method: Post

  • REST Endpoint:

    /crm/v3/objects/companies/search
    
  • Request body:

    {
      "filterGroups":[
        {
          "filters":[
            {
              "propertyName": "name",
              "operator": "CONTAINS_TOKEN",
              "value": "*$userInput*"
            }
          ]
        }
      ],
      "sorts": [
        {
          "propertyName": "name",
          "direction": "ASCENDING"
        }
      ]
    }
    
  • Filter:

    $.results
    
  • Template ID:

    ${row.id}
    
  • Template display:

    ${row.properties.name}
    

B. Contacts

Click to expand...

Create a second Connected custom field called “Contacts” of type Read Only Table. Set HubSpot (or the name you gave to the datasource configured previously) as the datasource, and configure it as follows:

image-20260825-090415.png
image-20260825-084334.png
image-20260825-085534.png
  • Method: Post

  • REST Endpoint:

    /crm/v3/objects/contacts/search
    
  • Request body:

    {
      "properties" : ["firstname","lastname","email","company"],
      "filterGroups": [
          {
              "filters": [
                  {
                      "propertyName": "associations.company",
                      "operator": "EQ",
                      "value": "${issue.customfield_XXXXX.id}"
                  }
              ]
          }
      ],
      "sorts": [
        {
          "propertyName": "lastname",
          "direction": "ASCENDING"
        }
      ]
    }
    

    info Replace $issue.customfield_XXXXX.id with the ID of the parent connected custom field (Customer)

  • Filter:

    $.results
    
  • Template ID:

    ${row.id}
    
  • Template display:
    Column 1
    Title

    Last Name
    

    Value

    ${row.properties.lastname}
    

    Column 2
    Title

    First Name
    

    Value

    ${row.properties.firstname}
    

    Column 3
    Title

    E-mail
    

    Value

    ${row.properties.email}
    

C. Deals

Click to expand...

Create a third Connected custom fields called “Deals” of type Read Only Table. Set HubSpot (or the name you gave to the datasource configured previously) as the datasource, and configure it as follows:

image-20260825-091200.png
image-20260825-084334.png
image-20260825-091246.png
  • Method: Post

  • REST Endpoint:

    /crm/v3/objects/deals/search
    
  • Request body:

    {
      "properties": ["dealname","amount","dealstage","closedate"],
      "filterGroups": [
        {
          "filters": [
            {
              "propertyName": "associations.company",
              "operator": "EQ",
              "value": "${issue.customfield_XXXXX.id}"
            }
          ]
        }
      ],
      "sorts": [
        {
          "propertyName": "closedate",
          "direction": "DESCENDING"
        }
      ],
      "limit": 20
    }
    

    info Replace $issue.customfield_XXXXX.id with the ID of the parent connected custom field (Customer)

  • Template ID:

    ${row.id}
    
  • Template display:
    Column 1
    Title

    Deal
    

    Value

    ${row.properties.dealname}
    

    Column 2
    Title

    Amount
    

    Value

    ${row.properties.amount}
    

    Column 3
    Title

    Stage
    

    Value

    ${row.properties.dealstage}
    

    Column 4
    Title

    Close date
    

    Value

    ${row.properties.closedate}
    

3 - Associate the Connected custom fields to a request type in your JSM project

Now that your connected custom fields are configured, you need to associate them to a request-type in your JSM project:

  • Directly after saving a custom fields configuration, click on “Add field to portal”

    image-20260825-092328.png


  • Or go to Elements Connect admin section and find “Add field to portal” in the “Actions” button.

image-20260825-092221.png
  • Select the targeted project and Request type.

  • Add the Connected custom fields with a drag & drop action in the Request form section, as below:

    image-20260825-093219.png

That's it, your use case has been set. Don’t hesitate to reach our support if you have any question.