> ## 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 Portal & Branding

> Launch a personalized, white-labeled partner portal on your own domain - built no-code, branded as yours, and used to announce what matters.

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

> Partner Portal & Branding is how you give partners a home that looks like you: a no-code portal experience, branded end to end, served on your own domain, with announcements that reach partners wherever they are.

## What this area does

A partner portal should feel like an extension of your brand, not a generic tool partners tolerate. This area lets your team build that portal without engineering. You design experiences from sections and stages, brand every surface with your colors, fonts, and logos, and serve the whole thing on your own custom domain so partners never see someone else's name.

Getting partners in and keeping them informed is part of the same story. You decide how partners log in and who can see what, invite the right people, and broadcast announcements that land in the portal, by email, and in Slack or Teams. Because Introw is built to meet partners off-portal too, the portal is the polished home base while updates still reach partners where they already work.

## Why it matters

* **Low total cost of ownership** - Partner marketing and ops build and brand the entire portal with no-code, never waiting on engineering.
* **Time to value** - Launch a branded portal on your own domain in minutes, not a multi-month implementation.
* **Work where you already are** - Announcements reach partners in the portal and beyond it, by email and in Slack or Teams.

## How it fits together

A branded portal goes from build to live partners on your own domain:

```mermaid theme={"theme":{"light":"github-light","dark":"github-dark"}}
flowchart LR
  build["Build experience"] --> brand["Brand it"]
  brand --> domain["Serve on your domain"]
  domain --> access["Partners get access"]
  access --> announce["Announcements reach them"]
```

## Capabilities

<CardGroup cols={2}>
  <Card title="Experiences" icon="browser" href="./experiences">
    Build the portal no-code from stages, sections, and blocks, and publish it to partners.
  </Card>

  <Card title="Branding & White-label" icon="palette" href="./branding">
    Apply your colors, fonts, and logos across the portal, emails, and reports.
  </Card>

  <Card title="Custom Domains" icon="globe" href="./custom-domains">
    Serve the partner portal on your own domain with verified DNS.
  </Card>

  <Card title="Email Domain" icon="envelope" href="./email-domain">
    Send partner notifications from your own authenticated domain.
  </Card>

  <Card title="Portal Access" icon="key" href="./portal-access">
    Decide how partners log in, who gets access, and what each segment can see.
  </Card>

  <Card title="Announcements" icon="bullhorn" href="./announcements">
    Broadcast updates to partners in the portal, by email, and in Slack or Teams.
  </Card>

  <Card title="Partner Directory" icon="address-book" href="./partner-directory">
    Publish a searchable directory of your partners, composed from partner data, forms, and the API.
  </Card>

  <Card title="Mobile" icon="mobile" href="./mobile">
    Let partners install and use the portal as an app on their phone.
  </Card>
</CardGroup>

## Who works in this area

<CardGroup cols={2}>
  <Card title="Partner Marketing & Enablement" icon="user">
    Builds and brands the portal and runs announcements to keep partners engaged.
  </Card>

  <Card title="Partner Operations" icon="user">
    Configures access, domains, and login so the right partners get in safely.
  </Card>

  <Card title="VP Partnerships / CPO" icon="user">
    Wants a credible, branded partner experience live fast.
  </Card>
</CardGroup>

## Headless

<Headless
  prompts={[
"Show recent partner portal activity - visits, comments, and asset views - this week.",
"Which partners have been most active in the portal this month?",
"List partners in the directory by category and country.",
]}
/>

## All guides

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

<CardGroup cols={2}>
  <Card title="Generate an announcement with AI" icon="book-open" href="/features/portal/announcements/guides/generate-an-announcement-with-ai">
    Draft a partner announcement in seconds from a URL or prompt using an AI preset, then refine and send it.
  </Card>

  <Card title="Review announcement engagement" icon="book-open" href="/features/portal/announcements/guides/review-announcement-engagement">
    See who an announcement was sent to, who opened it, and who clicked, then decide who to nudge.
  </Card>

  <Card title="Send an announcement" icon="book-open" href="/features/portal/announcements/guides/send-an-announcement">
    Compose an announcement, set who it comes from and who handles replies, target the right segments, choose channels, and publish or nudge.
  </Card>

  <Card title="Brand email notifications" icon="book-open" href="/features/portal/branding/guides/brand-email-notifications">
    Make the emails partners receive carry your logo and colors so off-portal messages still look like your product.
  </Card>

  <Card title="Brand the partner portal" icon="book-open" href="/features/portal/branding/guides/brand-the-partner-portal">
    Apply your logos, colors, font, and login copy so the portal, login screen, and experiences all look like your product.
  </Card>

  <Card title="Connect a custom domain" icon="book-open" href="/features/portal/custom-domains/guides/connect-a-custom-domain">
    Add your hostname, create the DNS records it generates, and verify so the partner portal serves securely on your own domain.
  </Card>

  <Card title="Remove a custom domain" icon="book-open" href="/features/portal/custom-domains/guides/remove-a-custom-domain">
    Disconnect a custom domain so the portal falls back to its default address without locking partners out.
  </Card>

  <Card title="Send notifications from your own domain" icon="book-open" href="/features/portal/email-domain/guides/send-notifications-from-your-own-domain">
    Set your sender, add the DNS records Introw generates, and verify so partner notifications send from your own authenticated address instead of the default Introw one.
  </Card>

  <Card title="Add a partner profile section" icon="book-open" href="/features/portal/experiences/guides/add-a-partner-profile-section">
    Show each logged-in partner their own details, tier, and key information inside a portal experience.
  </Card>

  <Card title="Build and publish a portal experience" icon="book-open" href="/features/portal/experiences/guides/build-and-publish-a-portal-experience">
    Create an experience, structure it into stages, fill it with sections and calls to action, then assign it to partners and publish.
  </Card>

  <Card title="Embed external content" icon="book-open" href="/features/portal/experiences/guides/embed-external-content">
    Embed documents, videos, and meeting schedulers from the providers Introw supports directly inside a portal experience.
  </Card>

  <Card title="Restore a previous experience version" icon="book-open" href="/features/portal/experiences/guides/restore-a-previous-experience-version">
    Use experience history to review every change to a partner portal experience and roll back to a previous version in one click.
  </Card>

  <Card title="Install Introw on mobile" icon="book-open" href="/features/portal/mobile/guides/install-introw-on-mobile">
    Add the partner portal to a phone home screen.
  </Card>

  <Card title="Navigate the mobile portal" icon="book-open" href="/features/portal/mobile/guides/navigate-the-mobile-portal">
    Find deals, content, and commissions on a phone.
  </Card>

  <Card title="Build a partner directory" icon="book-open" href="/features/portal/partner-directory/guides/build-a-partner-directory">
    Assemble a partner directory from Introw's building blocks: partner-maintained profiles via forms, an in-portal profile section, a public listing from the partners API, and a take-in form that auto-attributes buyer demand to the right partner.
  </Card>

  <Card title="Give a partner access to multiple portals" icon="book-open" href="/features/portal/portal-access/guides/give-access-to-multiple-portals">
    Let one partner contact reach more than one portal with a single login across a multi-portal program.
  </Card>

  <Card title="Invite partners and their teams" icon="book-open" href="/features/portal/portal-access/guides/invite-partners-and-their-teams">
    Invite specific partner contacts into a portal, then let trusted partners bring in their own teammates.
  </Card>

  <Card title="Restrict a tab to segments" icon="book-open" href="/features/portal/portal-access/guides/restrict-a-tab-to-segments">
    Show a portal tab only to the partner segments it is meant for, so one portal serves different partner types.
  </Card>

  <Card title="Set up portal access" icon="book-open" href="/features/portal/portal-access/guides/set-up-portal-access">
    Choose how partners sign in, decide whether access is by invite or by email domain, and handle email verification.
  </Card>
</CardGroup>
