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

# Multi-tier Attribution

> Credit both a reseller and a distributor on the same deal - map multiple partner roles onto one CRM record so each tier gets attribution, and each partner sees the deal in their own 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>}
    </>;
};

> In a two-tier channel, a single deal often belongs to more than one partner: the reseller who closes it and the distributor who stands behind them. Multi-tier attribution credits both on the same CRM record and shows each tier the deal in their own portal.

## What it does

Multi-tier attribution lets one CRM deal carry more than one partner with distinct roles, such
as a reseller and the distributor above them. You map each role to the deal through your CRM
attribution mapping, so each partner is credited in their own right on the same opportunity.
Because attribution drives portal visibility, each partner sees that deal in their own pipeline,
giving a distributor and its reseller shared sight of the same record.

You can also capture the distributor at the moment of registration with a distributor field on
the form. The credit itself always lives on the CRM record, so it is reportable and reconcilable
like any other attributed deal.

## The problem it solves

Two-tier channels lose clarity when only one partner can be credited:

* **A deal can only be credited to one partner** → Multiple partner roles attach to the same CRM deal.
* **Distributors lose sight of their resellers' deals** → Attribution gives each tier visibility into the shared deal.
* **Tier roles get captured inconsistently** → A distributor field on the registration form records the relationship up front.
* **Credit cannot be reconciled** → Each tier's attribution lives on the CRM record and reports like any deal.

## From problem to solution

Map reseller and distributor roles onto your CRM deals, capture the distributor at registration,
and let attribution drive who sees what. Both tiers get credit and shared visibility on the same
opportunity, on your CRM's terms.

```mermaid theme={"theme":{"light":"github-light","dark":"github-dark"}}
flowchart LR
  roles["Map reseller and distributor roles"] --> capture["Capture distributor at registration"]
  capture --> attribution["Attribution drives visibility"]
  attribution --> credit["Both tiers credited"]
```

## Use cases

<CardGroup cols={2}>
  <Card title="Credit both tiers" icon="circle-check">
    Attribute a deal to a reseller and a distributor.
  </Card>

  <Card title="Capture the distributor" icon="circle-check">
    Record the distributor at registration.
  </Card>

  <Card title="Share the same deal" icon="circle-check">
    Give both partners visibility into the opportunity.
  </Card>

  <Card title="Keep credit reportable" icon="circle-check">
    Reconcile tier attribution from the CRM.
  </Card>
</CardGroup>

## Impact

* **CRM-native** - Multi-tier credit lives on the CRM record, not a separate ledger.
* **Trust & accuracy** - Each tier's attribution is explicit and reconcilable.

## Who it's for

<CardGroup cols={2}>
  <Card title="Partner Ops / RevOps" icon="user">
    Maps tier roles so credit holds up in the CRM.
  </Card>

  <Card title="Partner Manager (CAM / PAM)" icon="user">
    Runs the distributor and reseller relationship on shared deals.
  </Card>
</CardGroup>

## Works with

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

<CardGroup cols={2}>
  <Card title="Deal Registration" icon="file-signature" href="/features/deal-registration/registration">
    Built on registered deals.
  </Card>

  <Card title="Commission Plans" icon="hand-holding-dollar" href="/features/commissions/commission-plans">
    Split commission across tiers.
  </Card>
</CardGroup>

## Headless

<Headless
  prompts={[
"Register a deal on behalf of our distributor's sub-reseller.",
"Show registrations submitted through second-tier partners.",
"Which multi-tier registrations are waiting on approval?",
]}
/>

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