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

# Segments

> Group partners into dynamic or static segments that target content, notifications, permissions, and more - audiences that keep themselves current.

export const Headless = ({prompts = []}) => {
  const PromptRow = ({prompt}) => {
    const [copied, setCopied] = useState(false);
    const copy = () => {
      try {
        navigator.clipboard?.writeText(prompt);
      } catch {}
      setCopied(true);
      setTimeout(() => setCopied(false), 1600);
    };
    return <div className="group flex items-center justify-between gap-3 px-4 py-3 transition-colors hover:bg-[#FD90FF]/[0.06]">
        <span className="text-sm leading-relaxed text-zinc-700 dark:text-zinc-200">{prompt}</span>
        <button type="button" onClick={copy} aria-label={copied ? "Copied to clipboard" : "Copy prompt"} className={`shrink-0 rounded-md p-1.5 transition-all hover:bg-[#FD90FF]/10 focus:opacity-100 focus:outline-none ${copied ? "text-[#FD90FF] opacity-100" : "text-zinc-400 opacity-0 group-hover:opacity-100 dark:text-zinc-500"}`}>
          {copied ? <svg viewBox="0 0 24 24" fill="none" className="h-4 w-4" aria-hidden="true">
              <path d="M20 6L9 17l-5-5" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
            </svg> : <svg viewBox="0 0 24 24" fill="none" className="h-4 w-4" aria-hidden="true">
              <rect x="9" y="9" width="11" height="11" rx="2" stroke="currentColor" strokeWidth="2" />
              <path d="M5 15V5a2 2 0 0 1 2-2h10" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
            </svg>}
        </button>
      </div>;
  };
  return <>
      <p>
        Introw is <strong>headless</strong> by design: run everything here in plain language from Claude, ChatGPT,
        Slack, Teams, or your own CRM through Introw's <a href="/features/developer/mcp">MCP server</a>, with every
        action written straight back to your CRM source of truth. The portal is one surface, never the only one.
      </p>

      {prompts.length > 0 ? <div className="not-prose my-6 overflow-hidden rounded-2xl border border-zinc-200/80 bg-white shadow-sm dark:border-white/10 dark:bg-white/[0.02]">
          <div className="flex items-center gap-2 border-b border-zinc-200/80 bg-gradient-to-r from-[#FD90FF]/10 via-[#FD90FF]/5 to-transparent px-4 py-2.5 dark:border-white/10">
            <svg viewBox="0 0 24 24" fill="none" className="h-4 w-4 text-[#FD90FF]" aria-hidden="true">
              <path d="M12 2.5l2 5.5 5.5 2-5.5 2-2 5.5-2-5.5L4.5 10l5.5-2 2-5.5z" fill="currentColor" />
              <path d="M18.5 14l1 2.6 2.6 1-2.6 1-1 2.6-1-2.6-2.6-1 2.6-1 1-2.6z" fill="currentColor" opacity="0.55" />
            </svg>
            <span className="text-xs font-semibold uppercase tracking-wider text-zinc-500 dark:text-zinc-400">
              Try it from your LLM
            </span>
          </div>

          <div className="flex flex-col divide-y divide-zinc-100 dark:divide-white/[0.06]">
            {prompts.map(prompt => <PromptRow key={prompt} prompt={prompt} />)}
          </div>

          <a href="/headless" className="flex items-center justify-between gap-2 border-t border-zinc-200/80 px-4 py-2.5 text-sm font-medium text-zinc-600 no-underline transition-colors hover:text-[#FD90FF] dark:border-white/10 dark:text-zinc-300">
            <span>See the full headless playbook</span>
            <svg viewBox="0 0 24 24" fill="none" className="h-4 w-4" aria-hidden="true">
              <path d="M5 12h14M13 6l6 6-6 6" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
          </a>
        </div> : <Card title="See the headless motion" icon="wand-magic-sparkles" href="/headless">
          The agentic playbook - lifecycle deep dives and a Claude Code skill library that run your partner program
          from Claude, ChatGPT, Slack, and your CRM.
        </Card>}
    </>;
};

> Segments are how you target the right partners: build an audience from live filters or a hand-picked list, then use it across the product so the right partners get the right experience.

## What it does

A segment is a named group of partners and contacts you can reuse everywhere. You can
build a **dynamic** segment from filters, so membership updates itself as partner data
changes in your CRM, or a **static** segment by hand-picking exactly who belongs. Either
way, the segment becomes a single audience you point other features at.

Segments do more than tag partners. They drive what partners see and receive: which
portal experiences appear, which notifications go out, what permissions apply, and who
gets targeted by courses, content, and campaigns. Because dynamic segments react to live
CRM data, your targeting stays accurate without anyone maintaining lists, which is what
lets you move beyond static tiers toward audiences defined by real behavior and fit.

Segments are also safe to layer. When a partner belongs to several segments, the most
permissive settings win, so each segment a partner earns only ever adds capabilities.
That is what powers progressive unlocking: start everyone restricted, and let the portal
open up as partners qualify for more.

## The problem it solves

Targeting partners usually means maintaining lists that are out of date the moment you
save them:

* **Targeting lists go stale immediately** → Dynamic segments update from live filters, so the audience is always current without manual upkeep.
* **One-size-fits-all messaging misses the mark** → Segments let partner marketing tailor content, courses, and campaigns to the partners they actually fit.
* **Static tiers are too blunt for targeting** → Multi-axis segments group partners by real attributes and behavior, not just a single tier label.
* **Reusing an audience means rebuilding it** → A segment is defined once and reused across portal, notifications, courses, and more.

## From problem to solution

Segments give your program a reusable targeting layer. Partner ops defines an audience
once, as a live filter or a fixed list, and every other feature can target it. Dynamic
segments keep themselves accurate from CRM data, so partner marketing reaches the right
partners with the right experience instead of curating lists by hand.

```mermaid theme={"theme":{"light":"github-light","dark":"github-dark"}}
flowchart LR
  define["Define an audience"] --> keep["Live filter or fixed list"]
  keep --> target["Every feature targets it"]
```

## Use cases

<CardGroup cols={2}>
  <Card title="Target by fit and behavior" icon="circle-check">
    Build dynamic segments from partner attributes that update as the data changes.
  </Card>

  <Card title="Hand-pick an audience" icon="circle-check">
    Create a static segment for a specific, fixed group of partners.
  </Card>

  <Card title="Tailor the portal" icon="circle-check">
    Show different experiences and content to different segments.
  </Card>

  <Card title="Control notifications" icon="circle-check">
    Tune which updates a segment receives and how they are delivered.
  </Card>
</CardGroup>

## Impact

* **Low total cost of ownership** - Partner ops defines and reuses segments with no-code, no list maintenance.
* **CRM-native** - Dynamic segments react to live CRM data, so targeting stays accurate automatically.

## Who it's for

<CardGroup cols={2}>
  <Card title="Partner Operations" icon="user">
    Defines the segments the rest of the program targets.
  </Card>

  <Card title="Partner Marketing & Enablement" icon="user">
    Uses segments to tailor content, courses, and campaigns to the right partners.
  </Card>
</CardGroup>

## Works with

{/* CONNECTS:START - generated content goes here */}

<CardGroup cols={2}>
  <Card title="Experiences" icon="browser" href="/features/portal/experiences">
    Gate portal tabs and sections.
  </Card>

  <Card title="Partner Onboarding" icon="users" href="/features/partners/onboarding">
    Power progressive unlocking.
  </Card>

  <Card title="Asset Library" icon="folder-open" href="/features/content/asset-library">
    Control which assets and folders partners see.
  </Card>

  <Card title="Announcements" icon="browser" href="/features/portal/announcements">
    Target an announcement at the right partners.
  </Card>

  <Card title="Enrollments" icon="graduation-cap" href="/features/courses/enrollments">
    Auto-enroll a segment in a course.
  </Card>

  <Card title="Certificates" icon="graduation-cap" href="/features/courses/certificates">
    Issue a certificate to a segment.
  </Card>

  <Card title="Form Builder" icon="table-list" href="/features/forms/form-builder">
    Show a form only to selected partners.
  </Card>

  <Card title="Product Catalog" icon="file-invoice-dollar" href="/features/cpq/product-catalog">
    Restrict products to a segment.
  </Card>

  <Card title="Goals & KPIs" icon="chart-line" href="/features/reporting/goals">
    Set goal targets for a segment.
  </Card>

  <Card title="Report Builder" icon="chart-line" href="/features/reporting/report-builder">
    Control who can see a report or dashboard.
  </Card>

  <Card title="Deal Coaching" icon="robot" href="/features/ai/deal-coaching">
    Scope a deal coach to a segment.
  </Card>

  <Card title="Tiers" icon="users" href="/features/partners/tiers">
    Target tier benefits and assignments.
  </Card>
</CardGroup>

## Headless

<Headless
  prompts={[
"List partners in the healthcare vertical with over $100k in sourced pipeline.",
"Which partners match our top-performer profile?",
"Show partners grouped by tier and country.",
]}
/>

## Going deeper

<CardGroup cols={2}>
  <Card title="How to" icon="screwdriver-wrench" href="./technical">
    Setup, configuration, and all how-to guides.
  </Card>

  <Card title="API reference" icon="code" href="/general/introduction">
    Integration surface and code.
  </Card>
</CardGroup>
