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

# Reporting & Dashboards

> See your partner program in the numbers that matter - build reports, assemble dashboards, track goals, and give partners their own view, all sourced from your CRM.

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

> Reporting in Introw turns partner activity into answers. Build custom reports from your CRM data, assemble them into dashboards, track goals against targets, and surface the right view to partners in their portal - no separate BI project required.

## What this area does

Reporting starts with the report builder, where you pick a data source, from CRM objects like deals
to Introw-native sources like engagement, assets, commissions, and certifications, then choose a
visualization and grouping. Reports become building blocks you arrange into dashboards, and the home
page gives you a program-wide overview the moment you log in.

Goals let you set targets by tier, partner, or segment and track progress automatically. Partner
analytics shows each partner's revenue and engagement, and you can surface a partner's own dashboard,
goals, or an embedded Power BI report in their portal. Everything is sourced from your CRM and
respects partner access, so the numbers are trustworthy and scoped correctly.

## Why it matters

* **CRM-native** - Reports and goals are computed from live CRM data, so partner-sourced and partner-influenced numbers sit in the same defensible model RevOps uses for direct revenue, and the board sees one set of figures.
* **Time to value** - Dashboards read live CRM data from day one. There is no data warehouse to build, no ETL to schedule, and no BI project, so the metrics that matter are visible as soon as the CRM is connected.
* **Low total cost of ownership** - Partner teams build reports, dashboards, and goals themselves, so a new question gets answered without opening a RevOps ticket.

## How it fits together

CRM and Introw data become reports, dashboards, and views for both sides:

```mermaid theme={"theme":{"light":"github-light","dark":"github-dark"}}
flowchart LR
  data["CRM and Introw data"] --> reports["Report builder"]
  reports --> dashboards["Dashboards"]
  dashboards --> team["Your team"]
  dashboards --> partners["Partner portal"]
```

## Capabilities

<CardGroup cols={2}>
  <Card title="Report Builder" icon="chart-column" href="./report-builder">
    Build custom reports from CRM and Introw data.
  </Card>

  <Card title="Dashboards" icon="table-cells-large" href="./dashboards">
    Assemble reports and see your program at a glance.
  </Card>

  <Card title="Partner Analytics" icon="chart-line" href="./partner-analytics">
    Track each partner's revenue and engagement.
  </Card>

  <Card title="Goals & KPIs" icon="bullseye" href="./goals">
    Set targets and track progress automatically.
  </Card>

  <Card title="Power BI" icon="chart-pie" href="./power-bi">
    Embed external Power BI reports with per-partner access.
  </Card>
</CardGroup>

## Who works in this area

<CardGroup cols={2}>
  <Card title="Partner Operations" icon="user">
    Builds reports, dashboards, and goals.
  </Card>

  <Card title="RevOps" icon="user">
    Owns metrics and pipeline definitions.
  </Card>

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

## Headless

<Headless
  prompts={[
"Which Gold partners are at risk?",
"How is Acme tracking against its goals this quarter?",
"Prepare a QBR for Acme with pipeline, goals, activity, and commissions.",
]}
/>

## All guides

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

<CardGroup cols={2}>
  <Card title="Build a dashboard" icon="book-open" href="/features/reporting/dashboards/guides/build-a-dashboard">
    Assemble saved reports into a single dashboard: create it, add and arrange reports on the grid, and scope it with audience filters and a date range.
  </Card>

  <Card title="Embed a dashboard in the portal" icon="book-open" href="/features/reporting/dashboards/guides/embed-a-dashboard-in-the-portal">
    Show a dashboard to partners.
  </Card>

  <Card title="Set a custom fiscal year" icon="book-open" href="/features/reporting/dashboards/guides/set-a-custom-fiscal-year">
    Define your fiscal year start date so Introw dashboards, analytics, and time ranges align with your internal reporting periods.
  </Card>

  <Card title="Set the home pipeline and date range" icon="book-open" href="/features/reporting/dashboards/guides/set-the-home-pipeline-and-date-range">
    Tune your program overview.
  </Card>

  <Card title="Launch a partner goal" icon="book-open" href="/features/reporting/goals/guides/launch-a-partner-goal">
    Set a goal end to end: define what it measures, set targets by tier, assign it to partners, and surface live progress in the partner portal.
  </Card>

  <Card title="Add a collaboration dashboard section" icon="book-open" href="/features/reporting/partner-analytics/guides/add-a-collaboration-dashboard-section">
    Give partners ready-made deal metrics in their portal, scoped to their own data, and choose which deal properties they see.
  </Card>

  <Card title="Read a partner's analytics" icon="book-open" href="/features/reporting/partner-analytics/guides/read-a-partners-analytics">
    See revenue and engagement.
  </Card>

  <Card title="Show a partner dashboard in the portal" icon="book-open" href="/features/reporting/partner-analytics/guides/show-a-partner-dashboard-in-the-portal">
    Give partners their own view.
  </Card>

  <Card title="Surface Power BI in the portal" icon="book-open" href="/features/reporting/power-bi/guides/surface-power-bi-in-the-portal">
    Connect your Power BI tenant, register a report, scope it per partner with row-level security, and embed it in the partner portal.
  </Card>

  <Card title="Build a report" icon="book-open" href="/features/reporting/report-builder/guides/build-a-report">
    Create a custom report end to end: choose a data source, shape the metric and grouping, filter the audience, and pick the right chart.
  </Card>

  <Card title="Export report data to CSV" icon="book-open" href="/features/reporting/report-builder/guides/export-report-data-to-csv">
    Get the raw data out.
  </Card>
</CardGroup>
