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

# CRM

> Run your partner program on HubSpot, Salesforce, or Pipedrive without changing your RevOps setup - Introw adapts to how you already store partners and attribute revenue, works with any object including custom ones, and keeps partners, contacts, deals, and attribution in two-way sync.

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

> Your CRM is the source of truth, and Introw runs on top of it - not beside it. You don't restructure RevOps to adopt Introw. It plugs into how you already store partners and attribute revenue, works with any object including custom ones, and keeps partners, contacts, deals, and attribution flowing both ways.

## Why revenue teams love Introw

Most PRMs make you rebuild your partner data in a second system and reconcile it forever. Introw does the opposite: it reads your CRM as it is today, mirrors it live, and writes the partner context back. There is no migration and no parallel database.

It helps to see the CRM integration as **one connection with four jobs**, not three separate products:

<CardGroup cols={2}>
  <Card title="1. Connect & sync" icon="arrows-rotate" href="./technical">
    Authorize HubSpot, Salesforce, or Pipedrive once. Records flow in on a schedule and through webhooks; key Introw data flows back. Nothing to migrate.
  </Card>

  <Card title="2. Pull partners & contacts" icon="users" href="./guides/sync-partners-and-contacts">
    Every partner account and its contacts are pulled live, so access management and segments stay current without a second list to maintain.
  </Card>

  <Card title="3. Attribute revenue" icon="diagram-project" href="./guides/attribution-options">
    Introw matches whichever method you already use to link deals to partners - property, association, lookup, relation table, or custom object.
  </Card>

  <Card title="4. Work from your CRM" icon="window-restore" href="./guides/set-up-the-hubspot-partner-connect-card">
    Reps see partner context, register deals, and collaborate on the HubSpot or Salesforce record itself - no second tool to learn.
  </Card>
</CardGroup>

## What makes it different

### You don't change your RevOps structure

Introw adapts to the most common attribution methods **out of the box - no extra configuration or code**. However your team already records partners on a deal - a custom property, an association label, a lookup, a relation table, or a dedicated partner object - Introw reads it and attributes correctly. Sales keeps working exactly as they do today.

### It works with any object, including custom objects

Partners don't have to live on the standard Company/Account object. Point Introw at whatever object you use to model partners - including a **custom object** built for a large program - and attribute **any** object (deals, opportunities, contacts, companies, tickets, or custom objects) back to those partners. Object and field labels sync from the CRM, so Introw always speaks your terminology.

### Partners and contacts are pulled live, so access management is trivial

Introw pulls in **all your partner accounts and their contacts** straight from the CRM and keeps them current. New contact in the CRM → it appears in Introw. A field flips → portal access is granted or revoked automatically. Because the same fields sync for accounts *and* contacts, you can build [segments](/features/partners/segments) dynamically on CRM data (tier, region, lifecycle stage, contact role) and target onboarding, content, and notifications without maintaining a separate list. See [Sync partners & contacts from your CRM](./guides/sync-partners-and-contacts).

### Two-way by design

The CRM stays authoritative, but Introw writes context back: partner tiers, partnership managers, team roles, contact portal access, and partner engagement events all flow into the CRM so your revenue team sees the partner story on the records they already trust.

## The problem it solves

* **"We'd have to redo our RevOps setup"** → Introw reads your existing attribution model; nothing changes for sales.
* **"Our partners live on a custom object"** → Any object works, standard or custom, on both sides of attribution.
* **"Managing who gets portal access is a chore"** → Contacts sync live and access is driven by a CRM field.
* **"Partner data drifts between tools"** → One connection, two-way sync, CRM as the single source of truth.

## Use cases

<CardGroup cols={2}>
  <Card title="Attribute without re-platforming" icon="circle-check">
    Keep your current deal-to-partner model; Introw matches it.
  </Card>

  <Card title="Model partners on a custom object" icon="circle-check">
    Use a dedicated partner object at scale.
  </Card>

  <Card title="Automate access management" icon="circle-check">
    Let a CRM field grant and revoke portal access.
  </Card>

  <Card title="Segment on live CRM fields" icon="circle-check">
    Build dynamic segments from account and contact data.
  </Card>
</CardGroup>

## How it connects to the rest of Introw

The CRM connection is the foundation other features build on - they read and write the same synced data, so you configure attribution once and everything downstream stays accurate.

* **Forms** map directly to CRM fields: a partner submission can prefill from and write back to the same properties Introw syncs, so deal/lead registration lands in the CRM with the right partner attribution already attached. See [CRM field mapping for forms](/features/forms/crm-field-mapping).
* **Shared pipelines** are the synced deals/opportunities, presented to partners. You choose which objects, pipelines, and fields partners see, rename fields and stages for a partner-friendly view, decide what they can edit, nudge or notify on changes, and sync the resulting activity back to CRM notes/chatter. See [Shared pipelines](/features/co-selling/shared-pipelines).
* **Commissions** calculate on the revenue Introw attributes from the CRM, so payouts trace back to the original record. See [Commission plans](/features/commissions/commission-plans).

## Impact

* **CRM-native** - HubSpot, Salesforce, and Pipedrive stay the system of record, two-way synced.
* **Time to value** - Connect once and the program populates itself from records you already have, with no middleware to build and nothing to migrate.
* **Low total cost of ownership** - RevOps configures everything in the UI, no engineering or code.
* **Work where you already are** - reps work from the CRM record; partners are reached in their own channels.

## Who it's for

<CardGroup cols={2}>
  <Card title="RevOps" icon="user">
    Connects the CRM and owns attribution and sync.
  </Card>

  <Card title="Partner Operations" icon="user">
    Manages partners, contacts, access, and segments.
  </Card>

  <Card title="Sales Rep / AE" icon="user">
    Co-sells with partners from the CRM record.
  </Card>
</CardGroup>

## Works with

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

<CardGroup cols={2}>
  <Card title="Partner Management" icon="users" href="/features/partners/partner-management">
    Partners are pulled live from your CRM records.
  </Card>

  <Card title="Segments" icon="users" href="/features/partners/segments">
    Segment partners and contacts on any synced CRM field.
  </Card>

  <Card title="CRM Field Mapping" icon="table-list" href="/features/forms/crm-field-mapping">
    Forms read and write the same CRM fields.
  </Card>

  <Card title="Shared Pipelines" icon="handshake" href="/features/co-selling/shared-pipelines">
    Co-sell on the deals already synced from the CRM.
  </Card>

  <Card title="Commission Plans" icon="hand-holding-dollar" href="/features/commissions/commission-plans">
    Commissions run on attributed CRM revenue.
  </Card>
</CardGroup>

## Headless

<Headless
  prompts={[
"Show Acme's open deals from HubSpot with their stage and amount.",
"Update the close date on the Globex deal and sync it to Salesforce.",
"Which CRM deals are linked to partners but have no recent activity?",
]}
/>

## Going deeper

<CardGroup cols={2}>
  <Card title="How to set it all up" icon="screwdriver-wrench" href="./technical">
    Connect, store, filter, import, and attribute - with every how-to guide.
  </Card>

  <Card title="Attribution options" icon="diagram-project" href="./guides/attribution-options">
    Every way to link deals to partners in HubSpot and Salesforce, and how each is configured.
  </Card>

  <Card title="Sync partners & contacts" icon="users" href="./guides/sync-partners-and-contacts">
    Live partner and contact sync, access management, and dynamic segments.
  </Card>

  <Card title="API reference" icon="code" href="/general/introduction">
    Programmatic access to the same data.
  </Card>
</CardGroup>
