> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mavera.io/llms.txt
> Use this file to discover all available pages before exploring further.

# HubSpot

> Integrate Mavera with HubSpot — lifecycle personas, deal replay, meeting analysis, form analysis, blog brand voice, and engagement-weighted refinement

## Overview

Pull data from **HubSpot** (Contacts, Deals, Emails, Meetings, Companies, Forms, Blog) → analyze with **Mavera** (Personas, Brand Voice, Focus Groups, Mave, Chat, Generate) → get persona-validated insights for marketing, sales, and product teams.

<Info>
  **HubSpot API** — Base URL: `https://api.hubapi.com/crm/v3/`. Auth: Private App access tokens or OAuth 2.0. Rate limits: 100–250 req/10s burst; CRM Search: **4 req/sec**.
</Info>

```mermaid theme={"dark"}
flowchart TD
    subgraph data["HubSpot CRM Data"]
        contacts["Contacts"]
        deals["Deals"]
        companies["Companies"]
        meetings["Meetings"]
        forms["Forms"]
        blogPosts["Blog Posts"]
        engagementData["Engagement Data"]
    end
    subgraph surfaces["Mavera Surfaces"]
        personas["Personas"]
        brandVoice["Brand Voice"]
        focusGroups["Focus Groups"]
        mave["Mave"]
        generate["Generate"]
        chat["Chat"]
    end
    subgraph outputs["Outputs"]
        funnelPersonas["Funnel Personas"]
        emailContent["Email Content"]
        segmentFeedback["Segment Feedback"]
        patternAnalysis["Pattern Analysis"]
        abmPersonas["ABM Personas"]
        categorization["Categorization"]
        blogVoice["Blog Voice"]
        evolvedPersonas["Evolved Personas"]
    end
    contacts --> personas
    contacts --> focusGroups
    deals --> brandVoice
    deals --> generate
    companies --> mave
    companies --> personas
    meetings --> mave
    forms --> chat
    blogPosts --> brandVoice
    engagementData --> personas
    personas --> funnelPersonas
    personas --> abmPersonas
    personas --> evolvedPersonas
    brandVoice --> emailContent
    brandVoice --> blogVoice
    generate --> emailContent
    focusGroups --> segmentFeedback
    mave --> patternAnalysis
    mave --> abmPersonas
    chat --> categorization
```

***

## Prerequisites

<Steps>
  <Step title="HubSpot access token">Create a [Private App](https://developers.hubspot.com/docs/api/private-apps) with scopes: `crm.objects.contacts.read`, `crm.objects.deals.read`, `crm.objects.companies.read`, `content`, `forms`, `sales-email-read`.</Step>
  <Step title="Mavera API key">Get your key from [Mavera dashboard](https://app.mavera.io/settings/api-keys).</Step>
  <Step title="Environment variables">`export HUBSPOT_ACCESS_TOKEN="pat-na1-xxxxx"` and `export MAVERA_API_KEY="mvra_live_xxxxx"`</Step>
</Steps>

***

## Jobs

| # | Job                                                                                  | HubSpot Data            | Mavera Surface         | Output                     |
| - | ------------------------------------------------------------------------------------ | ----------------------- | ---------------------- | -------------------------- |
| 1 | [Lifecycle Stage Persona Builder](/integrations/hubspot/lifecycle-persona-builder)   | Contact search by stage | Custom Personas        | Funnel-stage persona set   |
| 2 | [Deal-Closed Content Replay](/integrations/hubspot/deal-closed-content-replay)       | Closed Won + emails     | Brand Voice + Generate | Email content from winners |
| 3 | [Contact Property → Focus Group](/integrations/hubspot/contact-focus-group)          | Custom properties       | Personas + Focus Group | Segment feedback           |
| 4 | [Meeting Notes → Mave Research](/integrations/hubspot/meeting-notes-research)        | Meeting notes           | Mave Agent             | Pattern analysis           |
| 5 | [Company Enrichment + Personas](/integrations/hubspot/company-enrichment-personas)   | Companies               | Mave + Personas        | ABM buying committee       |
| 6 | [Form Submission Analysis](/integrations/hubspot/form-submission-analysis)           | Form responses          | Chat with persona      | Structured categorization  |
| 7 | [Blog → Brand Voice](/integrations/hubspot/blog-brand-voice)                         | Published posts         | Brand Voice (URL)      | Voice from blog            |
| 8 | [Engagement-Weighted Refinement](/integrations/hubspot/engagement-weighted-personas) | Engagement data         | Personas (update)      | Evolved personas           |

***

## Rate Limits & Production Notes

| HubSpot Endpoint        | Limit       | Strategy                             |
| ----------------------- | ----------- | ------------------------------------ |
| CRM Search              | 4 req/sec   | 250ms delay; retry on 429            |
| CRM Read / Associations | 100 req/10s | Batch where possible                 |
| Forms / CMS Content     | 100 req/10s | Paginate with `after`; cache locally |

<Warning>
  CRM Search is the strictest at **4 req/sec**. All code includes 429-retry logic. For production, implement a token-bucket rate limiter or use HubSpot's batch APIs.
</Warning>

**Checklist:** Secure credentials in env vars or secrets manager. Handle pagination via `after` cursor (max 100 per page). Retry with exponential backoff on 429/5xx. Monitor Mavera credits at [Dashboard](https://app.mavera.io/settings/usage). Cache HubSpot data for daily jobs; use webhooks for real-time.

***

<CardGroup cols={3}>
  <Card title="All Integrations" icon="plug" href="/integrations" />

  <Card title="HubSpot API" icon="envelope-open" href="https://developers.hubspot.com/docs/api/overview" />

  <Card title="Personas" icon="user" href="/features/personas" />

  <Card title="Focus Groups" icon="users" href="/features/focus-groups" />

  <Card title="Brand Voice" icon="microphone" href="/features/brand-voice" />

  <Card title="Mave Agent" icon="brain" href="/features/mave-agent" />
</CardGroup>
