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

# Shared Pipeline

> Give resellers one CRM-drawn view of the deals they own and let them work each one on the live record - see the fields you expose, edit the ones you allow, manage line items, and build quotes, all without a CRM seat.

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

> A reseller who owns the sale needs more than a read-only deal - they need to run it. Shared pipeline gives resellers a CRM-drawn view of every deal they own and turns each one into a workspace where they update the fields you allow, manage line items, and build quotes, while you keep full control and your team keeps its CRM seats.

## What it does

Shared pipeline is the reseller-applied version of [co-selling's shared pipelines](/features/co-selling/shared-pipelines): the same CRM-drawn pipeline and record collaboration, scoped to the deals a reseller owns. After a reseller registers a deal and it lands attributed in your CRM, it appears in their pipeline view in the portal. Your team sees the same opportunities org-wide or per partner inside Introw, and because the records are CRM-drawn the two views never diverge.

Each deal in that pipeline is a workspace, not just a row. You decide which properties the reseller can **see** and which they can **edit**, and your changes write back to the CRM under your rules. For deals, the embed adds commercial controls: resellers can manage line items and, where supported, create and publish quotes, so a reseller can run the full commercial side of their own opportunity. None of it requires a CRM seat for the partner.

You stay in control of scope. Attribution decides which deals belong to the reseller, visible properties decide what they see, editable properties decide what they can change, and line item and quote settings decide how far their commercial control extends. Anything you do not explicitly open stays read-only.

## The problem it solves

Resellers stall when they can see a deal but cannot work it:

* **Partners cannot see the deals they own** → A pipeline view in the portal shows resellers every deal attributed to them.
* **Partners email the vendor for every field change** → Resellers edit the fields you mark editable directly on the CRM record.
* **Giving partners CRM seats is costly and risky** → The pipeline, edits, line items, and quotes all work through the portal and embeds, with no CRM seat.
* **You cannot let partners touch everything** → Visible and editable properties scope the record field by field; everything else stays read-only.
* **Quoting goes back and forth over email** → Resellers manage line items and build quotes on the deal itself.

## From problem to solution

Put registered deals on a shared pipeline, expose the fields a reseller owns as visible and editable, and optionally enable line items and quotes. The reseller runs their deal on your CRM record - viewing pipeline, updating fields, assembling line items, and quoting their customer - while your team stops being a data-entry relay and the data stays clean because every change writes back to the CRM under your rules.

```mermaid theme={"theme":{"light":"github-light","dark":"github-dark"}}
flowchart LR
  registered["Registered deal"] --> pipeline["Shared pipeline"]
  pipeline --> work["Reseller edits and quotes"]
  work --> writeback["Writes back to CRM"]
```

## Use cases

<CardGroup cols={2}>
  <Card title="Show resellers their deals" icon="circle-check">
    Give resellers a pipeline view of every deal attributed to them.
  </Card>

  <Card title="Let partners update their deal" icon="circle-check">
    Allow edits on the fields the reseller owns; keep the rest read-only.
  </Card>

  <Card title="Manage line items and quotes" icon="circle-check">
    Let resellers run the commercial detail on their deal.
  </Card>

  <Card title="Skip the CRM seat" icon="circle-check">
    Everything works from the portal or an embed.
  </Card>
</CardGroup>

## Impact

* **CRM-native** - Pipeline, edits, line items, and quotes are all drawn from and written to the CRM record, no seat required.
* **Low total cost of ownership** - You choose, field by field, what resellers see and change.
* **Trust & accuracy** - Attribution and visible/editable scope keep the shared view correct and the partner's deal protected.

## Who it's for

<CardGroup cols={2}>
  <Card title="Partner Manager (CAM / PAM)" icon="user">
    Decides what resellers see and edit on shared deals and keeps their pipeline moving.
  </Card>

  <Card title="Partner - Sales (Reseller)" icon="user">
    Sees their deals and works each one directly on the CRM record.
  </Card>

  <Card title="RevOps" icon="user">
    Configures attribution and the field-level scope resellers get.
  </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">
    Registered deals land on the shared pipeline.
  </Card>

  <Card title="Quotes & Line Items" icon="file-invoice-dollar" href="/features/cpq/quotes">
    Resellers build quotes on their shared deals.
  </Card>

  <Card title="Shared Pipelines" icon="handshake" href="/features/co-selling/shared-pipelines">
    The cross-motion shared pipeline this builds on.
  </Card>
</CardGroup>

## Headless

<Headless
  prompts={[
"Show the partner-attributed deals closing this quarter and their stage.",
"Which registered deals haven't been updated in 30 days?",
"Update the close date on the Globex deal to end of Q3.",
]}
/>

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