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

# HubSpot ↔ Flex pipeline

> Keep HubSpot deal stages, Flex quotes, and Soundcheck gigs in lockstep through a signed n8n sync.

The HubSpot ↔ Flex pipeline keeps three systems in lockstep: a **deal** in HubSpot, a **quote** in Flex, and a **gig** in Soundcheck. As a deal advances in HubSpot, a matching quote moves in Flex and the gig's status moves in Soundcheck — and when the show happens and gets paid, Soundcheck's [closeout](/features/gigs/closeout) status feeds back the other way.

Like [n8n CRM sync](/crm/integrations/n8n-crm-sync), this runs through **n8n**, which owns every external API call. Soundcheck never calls HubSpot or Flex directly — it records state through signed webhooks and exposes its own state for n8n to read.

<Info>
  This pipeline is configured per organization as part of an n8n integration. [Contact support](mailto:support@soundcheck.live) to set it up.
</Info>

## Status mapping

The three systems share one canonical status map. A representative slice:

| HubSpot deal    | Flex quote | Soundcheck gig                                                               |
| --------------- | ---------- | ---------------------------------------------------------------------------- |
| Quote requested | Inquiry    | Draft                                                                        |
| Quote sent      | Tentative  | Draft                                                                        |
| Closed won      | Confirmed  | Active                                                                       |
| —               | —          | [Completed](/reference/event-lifecycle) → [Settled](/features/gigs/closeout) |

A new inquiry in HubSpot opens a draft gig and a Flex quote; when the client commits, the gig goes **Active**. After the show, Soundcheck drives the back half — **Active → Completed → Settled** — and the pipeline propagates the close back to HubSpot.

## Direction of flow

<CardGroup cols={2}>
  <Card title="Inbound (CRM → Soundcheck)" icon="arrow-right-to-bracket">
    A deal-stage or quote-status change in HubSpot/Flex is normalized by n8n and posted to Soundcheck through a **signed** webhook, which advances the gig's status.
  </Card>

  <Card title="Outbound (Soundcheck → CRM)" icon="arrow-right-from-bracket">
    Soundcheck-driven transitions — confirming, completing, and settling a gig — are read by n8n and pushed to Flex and HubSpot so the deal and quote close.
  </Card>
</CardGroup>

## Why n8n owns the external calls

Keeping HubSpot and Flex behind n8n means the integration logic — auth, rate limits, retries, field mapping — lives in one place you can change without touching Soundcheck. Soundcheck stays the system of record for the gig itself and trusts only **signed** requests for the right organization.

## Related

<CardGroup cols={3}>
  <Card title="n8n CRM sync" icon="arrows-rotate" href="/crm/integrations/n8n-crm-sync">
    The signed-webhook foundation this builds on.
  </Card>

  <Card title="Event lifecycle" icon="diagram-project" href="/reference/event-lifecycle">
    How a gig's status moves.
  </Card>

  <Card title="Closeout" icon="circle-check" href="/features/gigs/closeout">
    Completed and settled, the back half of the map.
  </Card>
</CardGroup>
