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

# Build Smarter Audiences from Your Existing Segments

> Combined Lists Audience Builder—create precise targeting audiences by merging your uploaded customer lists

export const ChangelogActions = () => {
  return <>
      <style>{`
        .changelog-actions {
          display: flex;
          justify-content: center;
          gap: 12px;
          margin-top: 2rem;
          padding-top: 1.5rem;
          border-top: 1px solid #e5e7eb;
        }
        
        [data-theme="dark"] .changelog-actions {
          border-top-color: #374151;
        }
        
        .changelog-btn {
          display: inline-flex;
          align-items: center;
          gap: 6px;
          padding: 8px 16px;
          border-radius: 9999px;
          border: 1px solid #d1d5db;
          background: transparent;
          color: #6b7280;
          font-size: 14px;
          cursor: pointer;
          transition: all 0.2s ease;
        }
        
        .changelog-btn:hover {
          border-color: #9ca3af;
          background: #f9fafb;
        }
        
        [data-theme="dark"] .changelog-btn {
          border-color: #4b5563;
          color: #9ca3af;
        }
        
        [data-theme="dark"] .changelog-btn:hover {
          border-color: #6b7280;
          background: #1f2937;
        }
      `}</style>
      <div className="changelog-actions">
        <button className="changelog-btn" onClick={() => {
    const btn = event.target.closest("button");
    btn.innerHTML = "❤️ Like";
    btn.style.borderColor = "#ec4899";
  }}>
          🤍 Like
        </button>
        <button className="changelog-btn" onClick={() => {
    const btn = event.target.closest("button");
    navigator.clipboard.writeText(window.location.href);
    const originalContent = btn.innerHTML;
    btn.innerHTML = "✓ Copied";
    btn.style.borderColor = "#22c55e";
    btn.style.color = "#22c55e";
    setTimeout(() => {
      btn.innerHTML = originalContent;
      btn.style.borderColor = "";
      btn.style.color = "";
    }, 2000);
  }}>
          ↗ Share
        </button>
      </div>
    </>;
};

<div
  style={{
display: "flex",
gap: "8px",
flexWrap: "wrap",
marginBottom: "16px",
}}
>
  <Badge color="gray" size="sm" icon="calendar">
    February 9, 2026
  </Badge>

  <Badge color="blue" size="sm" icon="rectangle-ad">
    Ad Platform
  </Badge>

  <Badge color="green" size="sm" icon="sparkles">
    New Feature
  </Badge>
</div>

<Note>
  **Why We Built This**

  You had customer lists. Good ones—uploaded from your CDP, segmented by behavior, purchase history, loyalty status. But each list lived in its own silo. Want to target "high-value customers who also browsed electronics"? You'd need to manually cross-reference lists and upload yet another one. Audience upload got you started. Combined Lists get you to precision.
</Note>

<Frame>
  <img src="https://mintcdn.com/topsort/FDavlCE3VpFA3-Oz/images/card-bg.png?fit=max&auto=format&n=FDavlCE3VpFA3-Oz&q=85&s=4cf38c04745f62b039d3c66cbfc80c26" alt="Audience Builder interface showing include and exclude blocks for combining uploaded customer lists" width="2400" height="1260" data-path="images/card-bg.png" />
</Frame>

## What Changed

You can now create audiences by combining your existing uploaded customer lists—no more re-uploading or manual merging. From the new **Audience Hub**, hit **New Audience → Create Audience from Lists** to open the Audience Builder.

<div className="ab-mockup-wrapper">
  <div className="ab-mockup-card">
    <div className="ab-mockup-header">New Combined Audience</div>

    <div className="ab-section">
      <div className="ab-section-title">Audience Information</div>

      <div className="ab-form-row">
        <div className="ab-form-group">
          <div className="ab-label">Audience Name</div>
          <div className="ab-input">Type a name</div>
        </div>

        <div className="ab-form-group">
          <div className="ab-label">Segment ID</div>
          <div className="ab-input">Type a segment ID</div>
        </div>
      </div>
    </div>

    <div className="ab-section">
      <div className="ab-section-title">Segments</div>
      <div className="ab-section-desc">Create combined segments for your campaign based on your previous created audiences. Note: It may take a few minutes after creating your segment for the size to be calculated.</div>

      <div className="ab-include-block">
        <div className="ab-block-label">Include <span className="ab-info-dot">i</span></div>

        <div className="ab-include-row">
          <div className="ab-form-group ab-small">
            <div className="ab-label">Any or All</div>
            <div className="ab-select">Select ▾</div>
          </div>

          <div className="ab-form-group ab-large">
            <div className="ab-label">Select segments <span className="ab-muted">(Max 3)</span></div>
            <div className="ab-select">Select segments to combine ▾</div>
          </div>
        </div>

        <div className="ab-add-btn">+</div>
      </div>

      <div className="ab-exclude-block">
        <div className="ab-block-label">Exclude <span className="ab-info-dot">i</span> <span className="ab-muted">(Optional)</span></div>

        <div className="ab-exclude-row">
          <div className="ab-form-group ab-full">
            <div className="ab-label">Select segments <span className="ab-muted">(Max 3)</span></div>
            <div className="ab-select">Select segments to combine ▾</div>
          </div>
        </div>
      </div>
    </div>

    <div className="ab-footer">
      <div className="ab-btn ab-btn-secondary">Back</div>
      <div className="ab-btn ab-btn-primary">Create</div>
    </div>
  </div>
</div>

The builder uses **include** and **exclude** blocks to give you full control over who ends up in your audience:

* **Include blocks**: Add up to two include groups, each with up to 3 uploaded lists. Within each group, choose **Any** (union) or **All** (intersection) to control how lists combine. Groups are connected by OR.
* **Exclude block**: Optionally exclude users from up to 3 lists. Anyone in the exclude list is removed from the final audience.

## What You Get

* **Visual audience builder**: Combine lists with include/exclude logic—no CSVs or spreadsheets needed
* **Flexible logic**: ANY (union) or ALL (intersection) within include blocks, OR between blocks, and exclusion support
* **Up to 3 lists per block**: Layer multiple segments for precision targeting
* **Audience Hub**: See all your audiences—uploaded and combined—in one place, with source type clearly labeled
* **Campaign-ready**: Combined audiences show up in the campaign creation flow just like uploaded lists

## Who This Helps

**Campaign managers**: Build nuanced audiences without going back to your data team. Combine "Holiday Shoppers" with "High Spenders" in a few clicks.

**Marketplace admins**: Give vendors more powerful targeting tools without requiring complex CDP integrations.

**Vendors**: Target the exact users you want by layering your customer segments—no more one-size-fits-all campaigns.

<div
  style={{
margin: "3rem 0",
height: "3px",
background:
  "linear-gradient(to right, transparent, #00ff88 20%, #00d4ff 40%, #8280ff 60%, #ff6b9d 80%, transparent)",
borderRadius: "2px",
opacity: "0.6",
}}
/>

Interested in the Audience Builder? Reach out to your account team to get it enabled for your marketplace.

<ChangelogActions />
