> ## 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.

# Asset Library

> One governed home for every partner-facing asset - organized, access-controlled, multilingual, and tracked for engagement.

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>}
    </>;
};

> The Asset Library is the single source of truth for partner content: every file, link, and embed in one place, with the right partners seeing the right thing and a clear view of what they actually use.

## What it does

The Asset Library holds everything partners need: documents, presentations, links, and embeds,
organized into folders and tagged with categories. You upload or import content once and manage
it centrally, so partners always reach the current version instead of a stale copy floating in
someone's inbox. Visibility controls let you decide per asset whether it is public, portal-only,
or restricted to specific segments.

The library is built for partner enablement at scale. You can generate language variants of
documents so partners read content in their own language, produce co-branded versions for
partners to use, and track engagement to see which assets get viewed. Because the same library
feeds the portal, share links, and CRM surfaces, your content reaches partners wherever they
work.

## The problem it solves

Scattered, stale content is the quiet killer of partner enablement:

* **Content lives in too many places** → Store every asset in one governed library.
* **Partners get stale versions** → Manage one source of truth that always serves the current file.
* **Everyone sees everything, or nothing** → Set visibility per asset across public, portal, and restricted.
* **Partners need content in their language** → Generate language variants with AI.
* **You cannot tell what content works** → Track which assets partners view.

## From problem to solution

The Asset Library turns content chaos into a governed system. Organize once, control visibility,
localize with AI, and watch engagement. Enablement becomes a managed, measurable program instead
of a pile of files nobody can find.

```mermaid theme={"theme":{"light":"github-light","dark":"github-dark"}}
flowchart LR
  organize["Add and organize"] --> govern["Control visibility"]
  govern --> localize["Localize with AI"]
  localize --> track["Track engagement"]
```

## Use cases

<CardGroup cols={2}>
  <Card title="Centralize partner content" icon="circle-check">
    Keep every asset in one organized, current library.
  </Card>

  <Card title="Govern visibility" icon="circle-check">
    Decide who sees each asset, from public to segment-restricted.
  </Card>

  <Card title="Localize content" icon="circle-check">
    Generate language variants so partners read in their language.
  </Card>

  <Card title="Measure enablement" icon="circle-check">
    See which assets partners actually use.
  </Card>
</CardGroup>

## Impact

* **Time to value** - Upload what you already have and it powers every partner-facing surface immediately, with nothing to migrate.
* **Low total cost of ownership** - Partner marketing runs the full library, no engineering.
* **AI-native** - AI translates documents and powers content-based partner answers.

## Who it's for

<CardGroup cols={2}>
  <Card title="Partner Marketing & Enablement" icon="user">
    Curates and localizes the content partners use.
  </Card>

  <Card title="Partner Operations" icon="user">
    Governs folders, categories, and access.
  </Card>
</CardGroup>

## Works with

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

<CardGroup cols={2}>
  <Card title="Experiences" icon="browser" href="/features/portal/experiences">
    Assets surface in portal experiences.
  </Card>

  <Card title="Co-branded Assets" icon="folder-open" href="/features/content/co-branded-assets">
    Co-brand assets from the library.
  </Card>

  <Card title="Synced Sections" icon="folder-open" href="/features/content/synced-sections">
    Reuse library content in synced sections.
  </Card>
</CardGroup>

## Headless

<Headless
  prompts={[
"Which assets are partners viewing most?",
"Has Acme downloaded the security whitepaper?",
]}
/>

## 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>
