Skip to content

This Ballerina connector provides capabilities to integrate with HubSpot CRM Discount API.

License

Notifications You must be signed in to change notification settings

ballerina-platform/module-ballerinax-hubspot.crm.commerce.discounts

Repository files navigation

Ballerina HubSpot CRM Commerce Discounts connector

Build Trivy GraalVM Check GitHub Last Commit GitHub Issues

Overview

HubSpot is an AI-powered customer relationship management (CRM) platform.

The ballerinax/hubspot.crm.commerce.discounts connector offers APIs to connect and interact with the Hubspot Discounts API endpoints, specifically based on the HubSpot REST API.

Setup guide

You need a HubSpot developer account with an app to use HubSpot connectors.

To create a HubSpot Developer account, click here

Step 1: Create HubSpot Developer Project

  1. Login to HubSpot developer account.

  2. Create a public app by clicking on "Create app".

    Building public image

  3. Click on "Create app".

    Creating App

  4. Under "App Info"

    • Enter Public app name.
    • Update App logo (optional).
    • Update Description (optional).

    Entering App details

  • Then move to "Auth" tab.
  1. Setup the "Redirect URLs" with respective links.

    Auth Tab

Finally Create the app.

Step 2: Get Client ID and Client secret.

Navigate to "Auth" tab.

Client ID & Secret

Step 3: Get access token and refresh token.

  1. Set scopes under "Auth" tab for your app based on the API requirements.

    API Reference page.

    Enable scopes required for HubSpot CRM Discounts API.

    • crm.objects.line_items.read
    • crm.objects.line_items.write
    • oauth
  2. Under "Auth" tab under Sample install URL (OAuth) section copy the full URL.

    https://app.hubspot.com/oauth/authorize?client_id=<client_id>&redirect_uri=<redirect_url>&scope=<scopes>
    
  3. Choose the preferred account.

    Choosing Accounts

    Choose account and authorize the client.

  4. Check URL tab and find the authorization code.

  5. Send a http request to the HubSpot.

    • 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=http://localhost:9090&client_id=<client_id>&client_secret=<client_secret>'
  6. Above command returns the access token and refresh token.

  7. Use these tokens to authorize the client.

Quickstart

Follow the below steps to use the HubSpot CRM Commerce Discounts connector in your Ballerina application.

Step 1: Import the module

Import the hubspot.crm.commerce.discounts module and oauth2 module.

import ballerina/oauth2;
import ballerinax/hubspot.crm.commerce.discounts;

Step 2: Instantiate a new connector

  1. Instantiate a OAuth2RefreshTokenGrantConfig with the obtained credentials and initialize the connector with it.

    configurable string clientId = ?;
    configurable string clientSecret = ?;
    configurable string refreshToken = ?;
    
    ConnectionConfig config = {
      auth: {
         clientId,
         clientSecret,
         refreshToken,
         credentialBearer: oauth2:POST_BODY_BEARER
      }
    };
    final Client hubSpotClient = check new (config);
  2. Create a Config.toml file inside the Ballerina package and add the following configurations with the values retrieved in the earlier steps.

     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 New Discount

SimplePublicObjectInputForCreate payload = {
   associations: [],
   objectWriteTraceId: "1234",
   properties: {
      "hs_label": "test_discount",
      "hs_duration": "ONCE",
      "hs_type": "PERCENT",
      "hs_value": "40",
      "hs_sort_order": "2"
   }
};

SimplePublicObject createResponse = check hubspotClient->/.post(payload, {});

List all discounts

GetCrmV3ObjectsDiscountsQueries params = {
   'limit: 10,
   archived: false,
   properties: ["hs_label", "hs_value", "hs_type"]
};

CollectionResponseSimplePublicObjectWithAssociationsForwardPaging response = check hubspotClient->/.get({}, params);

Examples

The HubSpot CRM Commerce Discounts connector provides practical examples illustrating usage in various scenarios. Explore these examples, covering the following use cases:

  1. Discount Manager - see how the Hubspot API can be used to create discount and manage it through endpoints.
  2. Festival Discounts - see how the Hubspot API can be used to create and to manage multiple discounts at a time.

Build from the source

Setting up the prerequisites

  1. Download and install Java SE Development Kit (JDK) version 21. You can download it from either of the following sources:

    Note: After installation, remember to set the JAVA_HOME environment variable to the directory where JDK was installed.

  2. Download and install Ballerina Swan Lake.

  3. Download and install Docker.

    Note: Ensure that the Docker daemon is running before executing any tests.

  4. Export Github Personal access token with read package permissions as follows,

    export packageUser=<Username>
    export packagePAT=<Personal access token>

Build options

Execute the commands below to build from the source.

  1. To build the package:

    ./gradlew clean build
  2. To run the tests:

    ./gradlew clean test
  3. To build the without the tests:

    ./gradlew clean build -x test
  4. To run tests against different environments:

    ./gradlew clean test -Pgroups=<Comma separated groups/test cases>
  5. To debug the package with a remote debugger:

    ./gradlew clean build -Pdebug=<port>
  6. To debug with the Ballerina language:

    ./gradlew clean build -PbalJavaDebug=<port>
  7. Publish the generated artifacts to the local Ballerina Central repository:

    ./gradlew clean build -PpublishToLocalCentral=true
  8. Publish the generated artifacts to the Ballerina Central repository:

    ./gradlew clean build -PpublishToCentral=true

Contribute to Ballerina

As an open-source project, Ballerina welcomes contributions from the community.

For more information, go to the contribution guidelines.

Code of conduct

All the contributors are encouraged to read the Ballerina Code of Conduct.

Useful links

About

This Ballerina connector provides capabilities to integrate with HubSpot CRM Discount API.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •