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

# Communication Tools

> The Introw agent lives in your shared Slack, Teams, and WhatsApp channels so partners register deals, ask questions, and act where they already talk.

export const Headless = ({children, intro = true}) => {
  const [copied, setCopied] = useState(null);
  const copy = event => {
    const row = event.target.closest("li");
    if (!row) return;
    const text = row.textContent.trim();
    try {
      navigator.clipboard?.writeText(text);
    } catch {}
    setCopied(text);
    setTimeout(() => setCopied(null), 1600);
  };
  return <>
      {intro ? <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> : null}

      {children ? <div className="not-prose" data-prompts="block">
          <div data-prompts="head">
            <span>{copied ? "Copied" : "Try it from your LLM"}</span>
          </div>
          <div data-prompts="rows" onClick={copy}>
            {children}
          </div>
          <a href="/headless/prompts" data-prompts="more">
            See all prompts
          </a>
        </div> : <Card title="See the headless motion" icon="wand-magic-sparkles" href="/headless">
          The agentic motion - lifecycle deep dives and a Claude Code skill library that run your partner program from
          Claude, ChatGPT, Slack, and your CRM.
        </Card>}
    </>;
};

export const Tour = ({children}) => {
  const [active, setActive] = useState(0);
  const wrappers = (Array.isArray(children) ? children : [children]).filter(c => c && c.props);
  const frames = wrappers.length === 1 && Array.isArray(wrappers[0].props.children) ? wrappers[0].props.children.filter(c => c && c.props) : [];
  if (frames.length < 2) {
    return <div className="not-prose" data-overview="tour">
        {children}
      </div>;
  }
  const thumb = (frame, index) => <button key={index} type="button" onClick={() => setActive(index)} aria-label={`Frame ${index + 1}`} data-active={index === active ? "true" : "false"} data-index={index + 1}>
      {frame}
    </button>;
  return <div className="not-prose" data-overview="tour">
      <div data-tour="hero">{frames[active] ?? frames[0]}</div>
      <div data-tour="strip">{frames.map((frame, index) => thumb(frame, index))}</div>
    </div>;
};

export const Impact = ({children}) => <div className="not-prose" data-overview="impact">
    {children}
  </div>;

export const Personas = ({children}) => <div className="not-prose" data-overview="personas">
    {children}
  </div>;

export const Pains = ({children}) => <div className="not-prose" data-overview="pains">
    {children}
  </div>;

> Communication Tools brings the partnership into chat: a shared Slack or Microsoft Teams channel you run with the vendor's team - and WhatsApp for the partner who works from their phone - with the same Introw agent in it, so a partner makes fast commercial moves in one sentence, right where the conversation already happens.

## The problem it solves

<Pains>
  | Without Introw                      | With Introw                   |
  | ----------------------------------- | ----------------------------- |
  | Partners live in chat, not a portal | The agent is in the channel   |
  | Registering means opening a form    | One sentence in the thread    |
  | They cannot see where a deal is     | They ask, and get live status |
  | Support questions wait on you       | Answered in-channel, 24/7     |
</Pains>

## Impact

The deal comes up in chat, and chat is where it gets lost. Being the vendor a partner can register with in one sentence, in the thread, is worth more than any portal feature.

<Impact>
  for your business

  * **No new tool**
    The partnership arrives in the shared Slack or Teams channel you already have, and on WhatsApp for the rep on a phone
  * **AI, not admin**
    The agent fills in your own form from the conversation, asks for what is missing, and submits only once it validates

  for your partners

  * **Self-serve**
    This is the one surface needing no account of their own: chat recognises them from their contact record
  * **Enabled**
    Status, earnings and support answers come back in the same thread, in their own language
  * **Efficient**
    The commercial move happens the moment the conversation does, not after somebody logs in

  [A day in the life of your partners](/days-in-the-life)
</Impact>

<Personas>
  * **Partner sales teams** - register in one sentence
  * **Partner alliance managers** - the shared channel with you
  * **Your own reps** - co-selling without leaving chat
</Personas>

## How it works

<Info>
  <Frame>
    <img src="https://assets.introw.io/docs/features/partner-connect/communication-tools/shots/thread.png" alt="A shared thread on a submission, where a comment reaches the partner in their own channel and their reply lands back on the record." />
  </Frame>

  Partners set up nothing on any of these channels. The vendor connects the workspace and invites the partner into a shared Slack or Teams channel. WhatsApp is the partner's own channel, and all it needs from them is a text. The vendor enables WhatsApp in one click and shares the number. Introw recognizes the partner from the phone number on their CRM contact record. See [Set up WhatsApp](/features/integrations/chat/guides/set-up-whatsapp).

  This is the one surface where the partner needs no account of their own. The other two are turned on by the partner at [partners.introw.io](https://partners.introw.io); chat identifies them from the contact record you already have, so there is nothing for them to create. That makes it the surface to reach for with a partner who will not sign up for anything.
</Info>

A partner rep spends their day in chat, not a portal. Communication Tools meets them there. You and the vendor share a Slack or Microsoft Teams channel. The partner is invited into a channel with the vendor's team, not asked to stand up a workspace of their own. And the same Introw agent that runs the rest of the program lives in it. WhatsApp is the exception: it is the partner's own channel, for the rep who works from their phone.

The channel is built for the fast commercial moves. Sharing a lead or registering a deal takes one sentence: *"@Introw, share this \$20k deal for me"*. It happens in the same thread where the deal came up, with the vendor's team watching it land. The partner checks where a deal stands, asks what it will earn, or gets a support answer without leaving the conversation. Every action is scoped to the partner and writes back to the vendor's CRM. The vendor keeps a clean, attributed record even when the partner never opens a portal.

One sentence is the interface, not the standard. The agent submits the vendor's own form. It reads that form's real fields, asks in the thread for anything required that is missing or invalid, and submits only once everything validates. Then the vendor's normal conflict checks, approval gates and automations run exactly as they would for a portal submission. Registering from chat changes the entry point, not the qualification. See [Register a deal from chat](./guides/register-a-deal-from-chat).

This is the partner-side framing of Introw's chat surface; the channels, the agent, and the notifications are configured once on the vendor side. [Slack & Teams](/features/integrations/chat) is the canonical setup - this page is about what it means for the partner.

Before, chat was where the deal came up and the portal was where it had to be registered - two places, and the second one rarely happened. Now the agent is in the channel, so the commercial move happens the moment the conversation does, attributed and synced to the vendor's CRM.

The channel does different work per [partner type](/partner-types):

* **Referral** - shares a lead the moment it comes up ("@Introw, refer Acme to the vendor") and asks what it will earn, without a login.
* **Co-sell** - the shared channel is where both teams keep one account moving, so status lands where they already talk.
* **Reseller** - registers from the channel to lock in margin early, and asks the agent about tier progress and pending commission instead of emailing their alliance manager.
* **Distributor** - runs a channel per relationship and moves deals and questions through it, without a portal seat for every rep.

```mermaid theme={"theme":{"light":"github-light","dark":"github-dark"}}
flowchart LR
  channel["Shared channel / WhatsApp"] --> agent["@Introw agent"]
  agent --> move["Register, share, check status in one sentence"]
  move --> crm["Synced to vendor CRM"]
```

## Run it from your AI assistant

<Headless>
  * @Introw, share this \$20k deal for me.
  * Register the deal we just discussed with the vendor.
  * What's the vendor-side status of our shared deal?
  * Ask the vendor's team to review my registration.
</Headless>

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

**Works with**

<CardGroup cols={2}>
  <Card title="Slack & Teams" icon="plug" href="/features/integrations/chat">
    Canonical setup for shared Slack and Teams channels and the agent.
  </Card>

  <Card title="Partner Support Agent" icon="robot" href="/features/ai/partner-support">
    The same agent answers and acts in these channels.
  </Card>

  <Card title="Deal Registration" icon="file-signature" href="/features/deal-registration/registration">
    Register a deal from chat in one sentence.
  </Card>

  <Card title="Lead Sharing" icon="share-from-square" href="/features/referrals/lead-sharing">
    Share a lead from chat in one sentence.
  </Card>
</CardGroup>
