Skip to content
English
  • There are no suggestions because the search field is empty.

Bebop Ready-to-Sell: HubSpot API Integration Guide

This guide walks through how we will connect your Bebop Ready-to-Sell (RTS) Account with the HubSpot CRM via a direct API connection, including required fields, permissions, and how the data flows into your CRM.

Overview

Our HubSpot integration automatically pushes genuine contacts with enriched company details, contact details, and deal data from Bebop into your HubSpot CRM so your team can act quickly with full context.

The Bebop Integration can:

  • Create or update a Company

  • Create or update Contacts

  • Create a new Deal with enriched data

  • Assign records to the appropriate sales rep

  • Create a follow-up task for your team

Before You Begin — HubSpot Requirements

Make sure your HubSpot account meets the following requirements before proceeding:

  • You must be on a HubSpot tier that supports Private Apps (Professional or Enterprise for most hubs, or any tier with API access enabled)
  • You must have Super Admin access in HubSpot to create Private Apps and custom properties
  • Your account must have the Contacts, Companies, and Deals objects enabled (standard on all CRM tiers)
  • Important: HubSpot Free Plan Limit allows 10 custom properties total across your account. Our integration requires 9 custom properties, so you will be close to the limit. If you already have custom fields set up, we can map to those to avoid duplication, please share the field names with us.


Step 1: Create Custom Properties in HubSpot

Before setting up the API connection, you'll need to create a small number of custom properties in HubSpot. Everything else maps to fields that already exist by default.

You'll need to create 9 custom properties in total: We recommend creating 2 on Company, 1 on Contact, and 6 on Deal.

How to create a custom property

  1. In HubSpot, click the Settings icon (⚙️) in the top navigation bar
  2. In the left sidebar, go to Data Management → Properties
  3. Select the object type (Company, Contact, or Deal) from the Filter by dropdown
  4. Click Create property in the top right
  5. Fill in the details as listed below, then click Create

Company Properties (2 fields)

  • Bebop Match score (Number)
    → Indicates how well the company matches your ICP

  • Bebop Industry (Single-line text)
    → Free-text industry field (used instead of HubSpot’s default dropdown as our Industry categorization is more nuanced)


Contact Properties (1 field)

  • Contact score (Number)
    → Quality/relevance score for each contact


Deal Properties (6 fields)

We recommend storing enrichment data on the Deal so each opportunity keeps its own context over time.

  • Bebop Match score (Number): Overall match score for this lead

  • Bebop Match reason (Multi-line text): Plain-English explanation of why this company matched your ICP

  • Intent topics (Multi-line text): Buyer intent signals detected for this company

  • Contact reasons (Multi-line text): For each contact: who they are, their role, and why they were selected

  • Playbook URL (Single-line text): Link to the generated Bebop sales playbook

  • Lead source (Single-line text): Source tag identifying the lead origin (will be set to "Bebop RTS" or campaign specific)

Already have some of these fields? No need to recreate them. Just note down the exact internal field names (API names) and share them with us - we'll map directly to your existing fields.


Step 2: Confirm Standard Fields (No Setup Needed)

We automatically map to existing HubSpot fields, including:

Company

  • Name, domain, phone, address

  • LinkedIn page

  • Revenue, employee count

  • Description

Contact

  • Name, email, job title

  • Phone numbers

  • Location

  • LinkedIn URL

  • Owner + timezone

Deal

  • Deal name (company name)

  • Pipeline + stage

  • Deal owner


Step 3: Create a Private App in HubSpot and Set Up API Permissions

A Private App generates the API credentials we need to connect Bebop RTS to your HubSpot account securely.

  1. In HubSpot, click the Settings icon (⚙️) in the top navigation bar
  2. In the left sidebar, go to Integrations → Private Apps
  3. Click Create a private app
  4. Give your app a name, e.g. Bebop Ready to Sell

Now the Private App (or Legacy App) has been created, you need to navigate to the Scopes tab and enable the following permissions/scopes:

Companies

  • crm.objects.companies.read

  • crm.objects.companies.write

  • crm.schemas.companies.read

  • crm.schemas.companies.write

Contacts

  • crm.objects.contacts.read

  • crm.objects.contacts.write

  • crm.schemas.contacts.read

  • crm.schemas.contacts.write

Deals

  • crm.objects.deals.read

  • crm.objects.deals.write

  • crm.schemas.deals.read

  • crm.schemas.deals.write

Owners

  • crm.objects.owners.read

These permissions allow us to:

  • Create and update records

  • Manage custom properties

  • Assign records to your sales reps

Once all scopes are selected, click Create app.

HubSpot will display a confirmation screen — click Continue creating


Step 4: Copy Your Credentials and Share With Us

After the Private App is created, HubSpot will generate two credentials you need to share with us.

  1. On the Private App details page, click Show token under the Access Token section
  2. Copy the Access Token — this is a long string beginning with pat-
  3. Navigate to the Auth tab to locate your Client Secret
  4. Copy the Client Secret
  5. Share with us by emailing to your account manager or support@bebop.ai 

Step 5: How Data Flows Into HubSpot

Once connected, here’s what happens:

  1. A qualified lead is identified by Bebop RTS

  2. A Company is created or updated in HubSpot

  3. Relevant Contacts are added and scored

  4. A new Deal is created with:

    • Match insights

    • Intent signals

    • Recommended contacts

    • A link to the Bebop playbook (where applicable)

  5. The deal is assigned to a sales rep

  6. A follow-up task is created


Best Practice recommendations:

  • Keep enrichment on Deals → avoids overwriting historical data

  • Use Playbook URL → gives reps instant context before outreach

  • Review match & contact scores → prioritize high-quality matches

  • Align field names early → reduces setup time