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

# Partner Analytics

> Understand each partner's revenue and engagement, spot who needs attention, and give partners their own performance view in the portal.

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

> Healthy programs catch silent failure early. Partner analytics shows you each partner's revenue and engagement so you can see who is thriving, who is going quiet, and act before it shows up in a QBR.

## What it does

Partner analytics gives you a per-partner view of performance. On a partner's overview you see their
revenue, engagement, top deals, and goal progress; the analytics tab shows a dashboard scoped to just
that partner. Engagement metrics highlight who is active and who is going quiet, so you can intervene
before a partner stalls.

Partners get their own view too. In their portal you can surface a partner-scoped dashboard, a
collaboration dashboard with deal metrics like total revenue, deal count, average deal size, and
sales cycle, plus goals and embeds. All of it is sourced from your CRM and locked to the partner, so
each partner only ever sees their own numbers.

## The problem it solves

Without per-partner visibility, problems surface too late:

* **Silent failure is invisible** → Engagement metrics flag partners going quiet.
* **Performance is buried in the CRM** → A per-partner view surfaces revenue and engagement.
* **Partners have no self-serve view** → A portal dashboard shows them their own numbers.
* **Reviews start from scratch** → Partner overviews give you the picture before a QBR.

## From problem to solution

Partner analytics turns raw CRM activity into partner-level insight. See who needs attention, act
early, and give partners a scoped view of their own performance, all from trustworthy CRM data.

```mermaid theme={"theme":{"light":"github-light","dark":"github-dark"}}
flowchart LR
  activity["CRM activity"] --> insight["Partner-level insight"]
  insight --> act["Act early"]
  act --> surface["Scoped view for partners"]
```

## Use cases

<CardGroup cols={2}>
  <Card title="Catch at-risk partners" icon="circle-check">
    Spot declining engagement early.
  </Card>

  <Card title="Prep reviews fast" icon="circle-check">
    Open a partner's overview before a QBR.
  </Card>

  <Card title="Give partners insight" icon="circle-check">
    Show them their own dashboard.
  </Card>

  <Card title="Track deal metrics" icon="circle-check">
    Surface revenue and cycle in the partner portal.
  </Card>
</CardGroup>

## Impact

* **CRM-native** - Metrics are computed from live CRM deals and activity.
* **Work where you already are** - Analytics show up in the portal and the CRM, not a separate tool to open.

## Who it's for

<CardGroup cols={2}>
  <Card title="Partner Operations" icon="user">
    Monitors partner health and performance.
  </Card>

  <Card title="Partner Marketing" icon="user">
    Surfaces analytics to partners.
  </Card>
</CardGroup>

## Works with

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

<CardGroup cols={2}>
  <Card title="Shared Pipelines" icon="handshake" href="/features/co-selling/shared-pipelines">
    Analyze partner-attached pipeline.
  </Card>

  <Card title="Commission Lines" icon="hand-holding-dollar" href="/features/commissions/commission-lines">
    Report earned commissions.
  </Card>

  <Card title="Dashboards" icon="chart-line" href="/features/reporting/dashboards">
    Feed the home dashboard.
  </Card>
</CardGroup>

## Headless

<Headless
  prompts={[
"Which partners have the highest engagement this month?",
"Show partners whose activity has dropped off recently.",
"What's Acme's recent portal and deal activity?",
]}
/>

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