Module hubspot.crm.properties
ballerinax/hubspot.crm.properties Ballerina library
Overview
HubSpot is an AI-powered customer relationship management (CRM) platform.
The HubSpot connector offers APIs to connect and interact with the Hubspot Properties API endpoints, specifically based on the HubSpot REST API.
Key Features
- Create, read, update, and delete CRM object properties
- Manage property groups and field types
- Batch operations for bulk property management
- Support for custom property definitions across CRM objects
Setup guide
To use the HubSpot Properties connector, you must have access to the HubSpot API through a HubSpot developer account and a HubSpot App under it. Therefore, you need to register for a developer account at HubSpot if you don't have one already.
Step 1: Create/Login to a HubSpot Developer Account
If you have an account already, go to the HubSpot developer portal
If you don't have a HubSpot Developer Account you can sign up to a free account here
Step 2 (Optional): Create a Developer Test Account under your account
Within app developer accounts, you can create developer test accounts to test apps and integrations without affecting any real HubSpot data.
Note: These accounts are only for development and testing purposes. In production you should not use Developer Test Accounts.
-
Go to Test Account section from the left sidebar.

-
Click Create developer test account.

-
In the dialogue box, give a name to your test account and click create.

Step 3: Create a HubSpot App under your account
-
In your developer account, navigate to the "Apps" section. Click on "Create App"

-
Provide the necessary details, including the app name and description.
Step 4: Configure the Authentication Flow
-
Move to the Auth Tab.

-
In the Scopes section, add necessary scopes for your app using the "Add new scope" button.

-
Add your Redirect URI in the relevant section. You can also use localhost addresses for local development purposes. Click Create App.

Step 5: Get your Client ID and Client Secret
- Navigate to the Auth section of your app. Make sure to save the provided Client ID and Client Secret.

Step 6: Setup Authentication Flow
Before proceeding with the Quickstart, ensure you have obtained the Access Token using the following steps:
-
Create an authorization URL using the following format:
https://app.hubspot.com/oauth/authorize?client_id=<YOUR_CLIENT_ID>&scope=<YOUR_SCOPES>&redirect_uri=<YOUR_REDIRECT_URI>Replace the
<YOUR_CLIENT_ID>,<YOUR_REDIRECT_URI>, and<YOUR_SCOPES>with your specific value. -
Paste it in the browser and select your developer test account to install the app when prompted.
-
A code will be displayed in the browser. Copy the code.
-
Run the following curl command. Replace the
<YOUR_CLIENT_ID>,<YOUR_REDIRECT_URI>, and<YOUR_CLIENT_SECRET>with your specific value. Use the code you received in the above step 3 as the<CODE>.-
Linux/macOS
curl --request POST \ --url https://api.hubapi.com/oauth/v1/token \ --header 'content-type: application/x-www-form-urlencoded' \ --data 'grant_type=authorization_code&code=<CODE>&redirect_uri=<YOUR_REDIRECT_URI>&client_id=<YOUR_CLIENT_ID>&client_secret=<YOUR_CLIENT_SECRET>' -
Windows
curl --request POST ^ --url https://api.hubapi.com/oauth/v1/token ^ --header 'content-type: application/x-www-form-urlencoded' ^ --data 'grant_type=authorization_code&code=<CODE>&redirect_uri=<YOUR_REDIRECT_URI>&client_id=<YOUR_CLIENT_ID>&client_secret=<YOUR_CLIENT_SECRET>'
This command will return the access token necessary for API calls.
{ "token_type": "bearer", "refresh_token": "<Refresh Token>", "access_token": "<Access Token>", "expires_in": 1800 } -
-
Store the access token securely for use in your application.
Quickstart
To use the HubSpot Properties connector in your Ballerina application, update the .bal file as follows:
Step 1: Import the module
Import the hubspot.properties module and oauth2 module.
import ballerinax/hubspot.properties as hsproperties; import ballerina/oauth2;
Step 2: Instantiate a new connector
-
Instantiate a
hsproperties:ConnectionConfigwith the obtained credentials and initialize the connector with it.configurable string clientId = ?; configurable string clientSecret = ?; configurable string refreshToken = ?; final hsproperties:ConnectionConfig config = { auth : { clientId, clientSecret, refreshToken, credentialBearer: oauth2:POST_BODY_BEARER } }; final hsproperties:Client hsproperties = check new (config); -
Create a
Config.tomlfile and, configure the obtained credentials in the above steps as follows:clientId = <Client Id> clientSecret = <Client Secret> refreshToken = <Refresh Token>
Step 3: Invoke the connector operation
Now, utilize the available connector operations. A sample use case is shown below.
Create a Property Group
public function main() returns error? { hsproperties:PropertyGroupCreate propertyGroupInput = { "name": "examplePropertyGroup", "displayOrder": -1, "label": "This is an example Property Group" }; hsproperties:PropertyGroup response = check hubSpotProperties->/[testObjectType]/groups.post(payload = propertyGroupInput); }
Run the Ballerina application
bal run
Examples
The Ballerina HubSpot CRM Properties Connector connector provides practical examples illustrating usage in various scenarios. Explore these examples, covering the following use cases: