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

# Submissions & Approvals

> Every form submission in one inbox - reviewed, approved through gates you define, with AI handling the routine cases.

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

> Submissions & Approvals gives every form submission a home: one inbox to review, accept, decline, or return, with optional approval gates and AI that clears the routine cases so your team handles only the judgment calls.

## What it does

Every form submission lands in one inbox where your team can review it and accept, decline, or
return it for more information. You see who submitted, which partner it belongs to, and its
status at a glance, and you can tailor the columns you review by. No submission falls through the
cracks, and partners get a clear answer.

For workflows that need sign-off, you add an approval gate, including multi-step approvers, so a
submission is only accepted once the right people agree. AI can review routine submissions
against your instructions and auto-handle the obvious ones, collapsing approval time from days to
seconds while keeping humans in the loop where judgment matters.

## The problem it solves

Manual review of partner submissions is slow, inconsistent, and easy to drop:

* **Submissions scatter across inboxes** → Every submission lands in one reviewable place.
* **Approvals stall for days** → Approval gates route to the right people, and AI clears routine cases in seconds.
* **Review is inconsistent** → Accept, decline, and return follow one standard flow.
* **You cannot see what is outstanding** → A submissions inbox shows status and what needs action.

## From problem to solution

Submissions & Approvals turns review into a fast, consistent workflow. Submissions land in one
inbox, gates route the ones that need sign-off, and AI handles the routine majority. Your team
spends its time on the decisions that actually need a human.

```mermaid theme={"theme":{"light":"github-light","dark":"github-dark"}}
flowchart LR
  submit["Submission"] --> inbox["One inbox"]
  inbox --> gate["Approval gate or AI"]
  gate --> decision["Decision"]
```

## Use cases

<CardGroup cols={2}>
  <Card title="Centralize review" icon="circle-check">
    Handle every submission from one inbox.
  </Card>

  <Card title="Gate what needs sign-off" icon="circle-check">
    Add single or multi-step approval gates.
  </Card>

  <Card title="Automate the routine" icon="circle-check">
    Let AI clear obvious submissions in seconds.
  </Card>

  <Card title="Keep partners informed" icon="circle-check">
    Accept, decline, or return with a clear outcome.
  </Card>
</CardGroup>

## Impact

* **Low total cost of ownership** - Partner ops defines review and approval flows with no engineering.
* **AI-native** - AI reviews routine submissions so your team focuses on judgment calls.

## Who it's for

<CardGroup cols={2}>
  <Card title="Partner Operations" icon="user">
    Reviews submissions and configures approval gates.
  </Card>

  <Card title="VP Partnerships / CPO" icon="user">
    Wants fast, consistent, auditable approvals.
  </Card>
</CardGroup>

## Works with

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

<CardGroup cols={2}>
  <Card title="Form Builder" icon="table-list" href="/features/forms/form-builder">
    Approvals are configured per form.
  </Card>

  <Card title="Deal & Lead Registration" icon="handshake" href="/features/co-selling/deal-lead-registration">
    Approve registrations submitted via forms.
  </Card>

  <Card title="Partner Team" icon="users" href="/features/partners/team">
    Route approvals to the partner's manager.
  </Card>
</CardGroup>

## Headless

<Headless
  prompts={[
"Show all pending submissions across every form.",
"Approve Acme's submission and notify them.",
"Return Globex's registration for missing fields.",
]}
/>

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