Skip to content

HubSpot Integration

Connect Automatum with HubSpot CRM for streamlined sales and marketing operations.

Overview

The HubSpot integration synchronizes your cloud marketplace data with HubSpot CRM, enabling your sales and marketing teams to work with unified customer data.

How it works

The integration has two parts:

  • The HubSpot app (connector) — a settings page and the CRM cards you see on a Deal or Opportunity. It is a thin UI: it renders what the Automatum backend sends and collects your input. No marketplace logic runs in HubSpot.
  • The Automatum backend — owns the OAuth tokens, the field mappings, and every call to AWS and Azure. All the logic lives here.

When you install the connector, Automatum stores your HubSpot portal's OAuth tokens against your Automatum organization. That link is one-to-one: each HubSpot portal maps to exactly one Automatum organization. Every request the app makes is scoped to that portal's organization, so one tenant can never read or write another tenant's data.

App-to-app authentication

The connector never sends your personal credentials to Automatum. Each request from the app to the backend is signed by HubSpot and identifies the calling portal. The backend trusts the portal identity from that signature — not any value the page supplies — and looks up the matching organization and tokens. Because the app is a trusted, signed caller, it does not log in as a user.

Setup and property bootstrap

In Settings you connect AWS or Azure and define a field mapping — which HubSpot Deal properties map to which marketplace fields, which values are fixed, and which are dropdowns (enums). The mapping is saved on the backend, not in HubSpot.

The first time you save a mapping, the backend creates the HubSpot custom properties it needs, grouped under an Automatum property group. You never create these by hand. HubSpot's API is called with the backend's stored token, so property creation is proxied through Automatum.

Outbound: Deal → marketplace

  1. You open a Deal and click Sync (co-sell / private offer).
  2. The backend resolves your mapping into a prefilled form — statics filled, Deal values looked up, enums constrained to the allowed list.
  3. You review, adjust, and submit.
  4. The backend submits to AWS or Azure and writes the response — opportunity or referral ID, status, timestamps — back into the HubSpot custom properties.
  5. The card renders that state directly from those properties.

Inbound: marketplace → HubSpot

Changes on the marketplace side — acceptance, information requests, stage and status transitions — flow back to Automatum by webhook or poll. The backend writes the new values into the HubSpot properties, and the card reflects them on next load. A reconciliation job links opportunities lodged directly in AWS Partner Central to the matching HubSpot Deal.

Because marketplace state lives as HubSpot custom properties under the Automatum group, it is filterable and reportable in HubSpot's own lists and reports.

Features

  • Contact Sync: Sync marketplace customers to HubSpot Contacts
  • Company Sync: Create and update HubSpot Companies
  • Deal Pipeline: Manage private offers as HubSpot Deals
  • Activity Tracking: Log all marketplace interactions
  • Marketing Automation: Trigger workflows from marketplace events
  • Revenue Attribution: Track marketplace revenue in HubSpot

Prerequisites

  • HubSpot account (Professional or Enterprise)
  • HubSpot API access
  • Automatum Professional or Enterprise plan
  • Admin access in HubSpot

Setup

Step 1: Connect HubSpot

  1. Navigate to Settings > Integrations > HubSpot
  2. Click Connect HubSpot
  3. Log in to your HubSpot account
  4. Review and grant permissions
  5. Click Connect App

Step 2: Grant Permissions

Automatum requests these HubSpot scopes:

  • crm.objects.contacts.read
  • crm.objects.contacts.write
  • crm.objects.companies.read
  • crm.objects.companies.write
  • crm.objects.deals.read
  • crm.objects.deals.write
  • timeline

Step 3: Configure Sync Settings

Sync Direction:

  • Automatum → HubSpot (one-way)
  • Bi-directional

Sync Frequency:

  • Real-time
  • Every 15 minutes
  • Hourly

Step 4: Map Properties

Create custom properties in HubSpot:

Contact Properties:

marketplace_customer_id (Single-line text)
aws_account_id (Single-line text)
azure_tenant_id (Single-line text)
marketplace_source (Dropdown: AWS, Azure)
contract_status (Dropdown: Active, Expired, Pending)

Company Properties:

marketplace_company_id (Single-line text)
total_contract_value (Number)
active_contracts (Number)
marketplace_vendor (Multiple checkboxes: AWS, Azure)

Deal Properties:

private_offer_id (Single-line text)
marketplace (Dropdown: AWS, Azure)
contract_duration_months (Number)
marketplace_status (Dropdown: Created, Sent, Viewed, Accepted, Expired)

Data Mapping

Contact Mapping

Automatum FieldHubSpot PropertyDirection
EmailemailBi-directional
First NamefirstnameBi-directional
Last NamelastnameBi-directional
CompanycompanyAutomatum → HubSpot
Customer IDmarketplace_customer_idAutomatum → HubSpot
AWS Account IDaws_account_idAutomatum → HubSpot

Company Mapping

Automatum FieldHubSpot PropertyDirection
Company NamenameBi-directional
WebsitewebsiteBi-directional
IndustryindustryBi-directional
Total Valuetotal_contract_valueAutomatum → HubSpot

Deal Mapping

Automatum FieldHubSpot PropertyDirection
Offer NamedealnameAutomatum → HubSpot
ValueamountAutomatum → HubSpot
StatusdealstageBi-directional
Close DateclosedateAutomatum → HubSpot
Offer IDprivate_offer_idAutomatum → HubSpot

Deal Pipeline

Configure Pipeline Stages

Map Automatum offer statuses to HubSpot deal stages:

Recommended Pipeline:

Stage NameProbabilityAutomatum Status
New Opportunity10%-
Offer Created20%Created
Offer Sent40%Email Sent
Offer Viewed60%Email Seen
Negotiation70%-
Closed Won100%Accepted
Closed Lost0%Expired, Cancelled

Create Pipeline in HubSpot

  1. Go to Settings > Objects > Deals
  2. Click Pipelines
  3. Create new pipeline: "Marketplace Deals"
  4. Add stages matching the mapping above
  5. Set as default for marketplace deals

Automation

HubSpot Workflows

Trigger HubSpot workflows from marketplace events:

Example: New Customer Workflow

Trigger: Contact property marketplace_customer_id is known

Actions:

  1. Add to "Marketplace Customers" list
  2. Send welcome email sequence
  3. Create task for account manager
  4. Add company to target account list

Example: Offer Accepted Workflow

Trigger: Deal stage changed to "Closed Won"

Actions:

  1. Send celebration notification to team
  2. Create onboarding tasks
  3. Add to "Active Customers" list
  4. Update contact lifecycle stage to "Customer"

Enrollment Triggers

Available marketplace triggers:

  • Customer created
  • Private offer created
  • Private offer sent
  • Private offer accepted
  • Contract expiring (30/60/90 days)
  • Contract renewed

Activity Timeline

Tracked Activities

Activities logged to HubSpot timeline:

EventTimeline Entry
Offer created"Private offer created for [Product]"
Email sent"Private offer email sent"
Email opened"Customer viewed private offer"
Offer accepted"Private offer accepted - $X"
Contract start"Contract activated"
Usage reported"Usage: X units reported"

Custom Timeline Events

Create custom timeline events:

json
{
  "eventType": "marketplace_offer_accepted",
  "objectId": "hubspot_contact_id",
  "tokens": {
    "offerValue": "$50,000",
    "productName": "Enterprise Plan",
    "vendor": "AWS"
  }
}

Marketing Integration

List Segmentation

Create HubSpot lists based on marketplace data:

Static Lists:

  • All marketplace customers
  • AWS customers
  • Azure customers
  • High-value customers ($100K+)

Active Lists (auto-updating):

  • Customers with expiring contracts
  • Customers with high usage
  • At-risk customers (low usage)
  • Upsell candidates

Lead Scoring

Add marketplace signals to lead scoring:

Positive Signals:

SignalPoints
Private offer viewed+10
Multiple offer views+5 per view
Offer accepted+50
High usage+20

Negative Signals:

SignalPoints
Offer expired-20
Low usage-10
Contract cancelled-50

Forms & CTAs

Capture marketplace leads:

  1. Create landing page for marketplace interest
  2. Add hidden field: marketplace_source
  3. Set up workflow to route to sales
  4. Track conversion from marketplace

Reporting

HubSpot Reports

Build reports with marketplace data:

Revenue Reports:

  • Marketplace revenue by quarter
  • Revenue by sales rep
  • Revenue by cloud platform

Pipeline Reports:

  • Offer conversion rates
  • Average deal size
  • Sales cycle length

Customer Reports:

  • Customer acquisition by source
  • Customer lifetime value
  • Renewal rates

Attribution

Track marketplace influence:

  1. Enable revenue attribution in HubSpot
  2. Map deal revenue to contacts
  3. Include in attribution reports
  4. Measure marketing influence on marketplace deals

Sync Management

View Sync Status

  1. Go to Settings > Integrations > HubSpot
  2. View Sync Dashboard
  3. See recent sync activity
  4. Review errors and warnings

Manual Sync

Force sync specific records:

bash
POST /api/integrations/hubspot/sync
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

{
  "objectType": "contact",
  "automatumId": "cust_123",
  "direction": "to_hubspot"
}

Sync Logs

View detailed sync logs:

  • Object type
  • Sync direction
  • Status (success/failed)
  • Error details
  • Timestamp

Troubleshooting

Connection Issues

"Authentication failed":

  1. Reconnect HubSpot integration
  2. Verify API access enabled
  3. Check user permissions
  4. Clear browser cache and retry

Sync Failures

"Contact not found":

  1. Check if contact exists in HubSpot
  2. Verify email address format
  3. Review matching criteria

"Property not found":

  1. Create missing custom property
  2. Check property internal name
  3. Verify property permissions

Duplicate Records

Prevent duplicates:

  1. Enable deduplication rules
  2. Set primary matching field (email)
  3. Configure duplicate handling

API Access

Query HubSpot

bash
GET /api/integrations/hubspot/contacts/:email
Authorization: Bearer YOUR_API_KEY

Create HubSpot Record

bash
POST /api/integrations/hubspot/contacts
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

{
  "email": "customer@example.com",
  "properties": {
    "firstname": "John",
    "lastname": "Doe",
    "marketplace_customer_id": "cust_123"
  }
}

Security

Data Access

Automatum accesses:

  • Contacts (read/write)
  • Companies (read/write)
  • Deals (read/write)
  • Timeline (write)
  • Properties (read)

Permission Management

  • OAuth tokens stored encrypted
  • Automatic token refresh
  • Revoke access anytime
  • Audit all API calls

Best Practices

  1. Map fields carefully - Ensure data types match
  2. Test in sandbox - Use HubSpot test portal first
  3. Clean data regularly - Remove duplicates
  4. Train your team - Document workflows
  5. Monitor sync health - Review logs weekly

Next Steps

Need Help?

Contact support@automatum.io for HubSpot integration assistance.

Automatum GTM Platform