Welcome to the PartnerStack Integration Docs

Here you can find guides, documentation, support and FAQs to get you setup on PartnerStack.

Chat with us by clicking the message bubble in the bottom right if you are having any trouble!

Get Started

HubSpot CRM


The PartnerStack Hubspot Zap will trigger a transaction in PartnerStack when a deal moves into a designated section of your pipeline.

This guide assumes you are triggering a reward when a deal is moved into closed/won.

Before you begin

  1. Complete the PartnerStack Zapier Introduction
  2. Connect your Hubspot CRM to Zapier
  3. Have PartnerStackJS installed on your signup form with user's Email as the customer_key

Step 1. Create a new Zap

In your Zapier dashboard, click "Make a Zap" in the top menu. Or just click here.

Step 2. Add Hubspot CRM Trigger: "New Deal in Stage"

Search for, and select HubSpot CRM as Trigger app
Select "New Deal in Stage" as the trigger, Click "save + continue".

Authenticate with HubSpot CRM

Authenticate with HubSpot CRM by adding Hubspot CRM Hub ID. (How do I find my Hub ID?)

Edit Options – Pipeline and Stage

Select the Pipeline you want this Zap to apply to, and then the stage you want to reward for.

In this example we will be using the "Sales" Pipeline, and be firing the Zap when a Deal has hit the "Closed Won" stage

Test this Step

Make sure sure you have a deal in the "closed won" status column and a contact connected to the Deal.

Step 5: Convert Transaction Amount to Cents

HubSpot CRM transaction amounts are stored in dollar format ($5.00), however, PartnerStack requires all amounts to be in cents ("500" would equal $5.00).

We'll use the Formatter by Zapier to convert the HubSpot CRM transaction into cents.

  • Click the "+" icon in the Zap menu to add a new step immediately after the HubSpot CRM new stage in deal
  • Click "Action"
  • Search for "Formatter", and select the "Formatter by Zapier" action
  • Select "Numbers"
  • In the "Transform" drop-down, select "Spreadsheet Style-Formula"
  • In the "Formula" field, add a dynamic input of the Properties Amount Value and multiply by 100.

Step 6: Search for Referral Customer in PartnerStack

If you attempt to add a transaction to a referral customer that does not exist in PartnerStack this Zap will fail. After multiple failures, Zapier will turn off this Zap.

This step will keep the Zapier connection alive by ending the Zap if there is no matching customer_key in PartnerStack to add the transaction to.

6.a) Retrieve PartnerStack customer list

  • Click "+" to add a PartnerStack action step after the Number Formatter.


Growsumo Zap not showing up?

Please complete the Zapier Introduction.

  • Once in the PartnerStack Actions menu, select "Find Customers", then click "Continue"
  • Click "Test" to ensure Zapier is connected to PartnerStack, then click "Save + Continue"
  • Click "Search & Continue" to pull a list of your PartnerStack Customers.
    Wait until you see "Test Successful", then click "Continue"

6.b) Search PartnerStack customer list

We will be injecting a python snippet into your Zap to filter your customer list based on the customer key from HubSpot CRM.

  • Click the "+" icon in the Zap menu to add a new step immediately after PartnerStack Customer step
  • Search for and select "Code by Zapier"
  • Select "Run Python", then click "Continue"
  • In the first "input data" field, type customer_key, and select the "Properties Customer Key Value"
  • In the second "input data field", type customer_keys, and select the "GrowSumo Rdata Key"
  • In the "code" section copy & paste the below code HubSpot.py, as is...
result = {'exists': False}
# split customer keys into list and see if customer exists 
customer_keys = input_data['customer_keys'].split(',')
customer_key = input_data['customer_key']
result['exists'] = True if customer_key in customer_keys else False
return result

Step 7: Filter

This step will keep your Zap alive by not failing repeatedly for non-referral transactions.

  • Click the "+" icon in the Zap menu to add a new step immediately after the Run Python step
  • Search for and select "Filter by Zapier"
  • Select "only continue if...", click "save + continue"
  • in the first field, select "exists" (from Run Python)
  • in the second field, search for "true", and select "(Boolean) is True"

Step 8: Add PartnerStack Transaction action

Click the "+" and add PartnerStack as an Action after the "Filter by Zapier" step.

Setup GrowSumo Transaction

  • Customer Key : Identifies which customer the transaction applies to Select: Properties Customer Key Value (from HubSpot CRM)
  • Transaction Key: Unique transaction reference Select: Deal ID (from HubSpot CRM)
  • Amount: Transaction amount in cents Select: Amount (from Numbers)
  • Currency: Three character ISO code Enter: Your account default currency (found under settings in HubSpot CRM)

Trouble Shooting

Sometimes when attempting to fetch a custom field, the HubSpot CRM Zapier trigger needs to be "jumpstarted" into recognizing that this field exists. To do this we're going to send tests for multiple triggers. First select the "New Deal" trigger from HubSpot CRM, making sure that you have recently created a test Deal with the customer_key as a test key.

Test this trigger, and look under "view your deal" to see if the customer_key custom field was passed along this time (should look something like the image below)

If this troubleshooting step didn't work send us a message, there are a few other steps that sometimes get the HubSpot CRM Zapier action to recognise customer fields.

HubSpot Pages/Forms

If your landing page is hosted by HubSpot steps to load the PartnerStack Snippet can be found here.

To pass data to the growsumo object refer to example below (elements should be selected by classname or name).


    // find the first form by classname and store
    var form = document.getElementsByClassName('hs-form')[0]; 

    // add a submit event listener to the form
    form.addEventListener('submit', function(event){signup(event)});

function signup(event){
    // prevent the form from submitting temporarily  

    // find the name and email input fields by Name and store
    var name = document.getElementsByName('firstname')[0].value + ' ' + document.getElementsByName('lastname')[0].value;
    var email = document.getElementsByName('email')[0].value;

    // assign values to growsumo object
    growsumo.data.name = name;
    growsumo.data.email = email;
    growsumo.data.customer_key = email;
    growsumo.createSignup(function() {
        // use callback function to print to console to debug 
       console.log('signup successful'); 

    return true 

Creating/Updating Contacts in Hubspot

If you need to track customer changes in PartnerStack and relay them back to HubSpot CRM. You will need to create another zap

Step 1. PartnerStack > HubSpot

Step 1. Create a new Zap

  • Create a new Zap

Step 2. Select PartnerStack - New Customer Event as the Trigger

Step 3. Connect your PartnerStack Account

Step 4. Select Customer Created or Customer Updated from the Drop Down

Step 5. Add HubSpot CRM Create or Update Contact Action

Step 6. Connect your HubSpot CRM account

Step 7. Pass the customer's email and any other desired fields to their input

Updated 11 months ago

HubSpot CRM

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.