# HubSpot Audience Destination

<p>RudderStack now supports the <a href="https://www.rudderstack.com/docs/destinations/reverse-etl-destinations/hubspot-audience/" >HubSpot Audience</a> destination — you can use it to keep a HubSpot static contact list in sync with a warehouse table, SQL model, or Lookout audience. HubSpot Audience adds contacts who enter the source and removes contacts who leave it. This sync changes list membership only — it does not create or update HubSpot contacts.</p>

<blockquote class="announcement">
  <div class="tip-quote">
    
    <div class="tip-text"><p><strong>HubSpot Audience</strong> is in <strong>Private Beta</strong>.</p>
<p>Reach out to <a href="mailto:support@rudderstack.com" >Customer Success</a> to enable it for your workspace.</p>
</div>
  </div>
</blockquote>

<!-- end-chunk -->
<!-- begin-chunk -->
<h2 id="why-we-built-this-integration">Why we built this integration</h2><p>The Event Stream <a href="https://www.rudderstack.com/docs/destinations/streaming-destinations/hubspot/" >HubSpot</a> destination creates and updates contacts and sends event data. HubSpot campaigns run from static contact lists, and those lists go stale when membership lives in the warehouse or in Lookout.</p>
<p>HubSpot Audience keeps one static contact list aligned with that membership. You attach an existing list or create an empty one during setup. Mirror mode adds people who join and removes people who leave, so the list stays current for campaigns.</p>
<!-- end-chunk -->
<!-- begin-chunk -->
<h2 id="key-features">Key features</h2><ul>
<li><strong>List membership only</strong>: The sync adds and removes contacts on a static list. It does not create or update contact records.</li>
<li><strong>Existing or new list</strong>: Select a static contact list that already exists, or create an empty one during setup. Active lists do not appear in the picker.</li>
<li><strong>Record ID, then email</strong>: A mapped HubSpot Record ID is used first. Email is used only when the Record ID is empty. A Record ID that HubSpot does not recognize does not fall back to email.</li>
<li><strong>Warehouse, Audience Builder, and Lookout</strong>: Connect a Reverse ETL source, sync an Audience Builder audience, or activate a Lookout audience.</li>
</ul>
<!-- end-chunk -->
<!-- begin-chunk -->
<h2 id="get-started">Get started</h2><ol>
<li>Create a HubSpot Service Key with <code>crm.lists.read</code>, <code>crm.lists.write</code>, <code>crm.objects.contacts.read</code>, and <code>crm.objects.contacts.write</code>.</li>
<li>Connect a Reverse ETL source to <strong>HubSpot Audience</strong>, add an Audience Builder sync, or activate a Lookout audience.</li>
<li>Select an existing static contact list, or create a new one.</li>
<li>Map at least one identifier: HubSpot Record ID, email, or both.</li>
</ol>
<p>See the <a href="https://www.rudderstack.com/docs/destinations/reverse-etl-destinations/hubspot-audience/" >HubSpot Audience</a> documentation for scopes, list behavior, and what a sync does.</p>
<!-- end-chunk -->
<!-- begin-chunk -->
<h2 id="known-limitations">Known limitations</h2><ul>
<li>A full sync adds everyone currently in the source and removes no one. Contacts who left before that run can stay on the list.</li>
<li>An email that does not match a HubSpot contact fails on both add and delete. This sync never creates the contact.</li>
</ul>
<!-- end-chunk -->
<!-- begin-chunk -->
<h2 id="resources">Resources</h2><ul>
<li><a href="https://www.rudderstack.com/docs/destinations/reverse-etl-destinations/hubspot-audience/" >HubSpot Audience</a>: Scopes, sync failures, and what happens when you stop a sync</li>
<li><a href="https://www.rudderstack.com/docs/destinations/reverse-etl-destinations/hubspot-audience/#how-membership-is-written-to-hubspot" >How membership is written to HubSpot</a>: Insert, delete, and full sync behavior</li>
<li><a href="https://www.rudderstack.com/docs/destinations/reverse-etl-destinations/hubspot-audience/connect-retl-source/" >Connect Reverse ETL Source to HubSpot Audience</a>: Connect a warehouse table or SQL model</li>
<li><a href="https://www.rudderstack.com/docs/audiences/syncs/hubspot-audience/" >Sync Audiences to HubSpot Audience</a>: Sync an Audience Builder audience</li>
<li><a href="https://www.rudderstack.com/docs/activate/lookout/audiences/activate-an-audience/" >How to Activate an Audience to a Destination</a>: Activate a Lookout audience</li>
</ul>

