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

# Announcements

> Publish partner announcements once and fan out across the portal, email, and shared Slack and Microsoft Teams channels, with AI to help draft and target.

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

> Announcements keep partners informed wherever they work. Publish once and it fans out at the same time across the portal feed, email, and every shared Slack and Microsoft Teams channel connected to the partners you target - with AI helping you draft and target the right partners.

## The problem it solves

Partner updates that only live in a portal mostly go unseen:

<Pains>
  | Without Introw                   | With Introw                          |
  | -------------------------------- | ------------------------------------ |
  | Partners do not check the portal | It also lands in inbox and chat      |
  | Writing every update is slow     | AI drafts it from a source           |
  | Updates reach the wrong partners | Target the segments it is for        |
  | You cannot tell what landed      | Sent, opened and clicked per partner |
</Pains>

## Impact

Partners sell what they know about. Reaching their whole team on the channel they already watch is the difference between an update that becomes revenue and one that becomes an unread post.

<Impact>
  for your business

  * **No new tool**
    One publish fans out to the portal feed, email, and every connected Slack and Teams channel at the same time
  * **AI, not admin**
    AI drafts from a webinar, product update or blog post, and turns your LinkedIn posts into partner drafts weekly
  * **Cost to run**
    Partner marketing runs the whole thing, from draft to engagement report, with no engineering

  for your partners

  * **Self-serve**
    The news arrives where they already are, so staying current costs them no deliberate effort
  * **Enabled**
    A product update or a promotion reaches the reps who need it, not just the alliance manager
  * **Efficient**
    One message in the channel their team already uses, instead of a portal visit to find out

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

<Personas>
  * **Partner Marketing** - one publish, every channel
  * **VP Partnerships** - partners who are actually informed
  * **Partner sales teams** - news where they already are
</Personas>

## See it work

<Tour>
  * ![A content stage in the partner portal, with its banner and call to action over the latest announcements as cards, each carrying its author and date.](https://assets.introw.io/docs/partner-portal/updates-stage.png)

    **Where it lands**

    On the partner's own stage, beside everything else they use.

  * ![The recipient step of an announcement, targeting specific partner segments.](https://assets.introw.io/docs/features/engagement/announcements/guides/send-an-announcement/steps/07.png)

    **Target the audience**

    Pick the segments the update is actually for.

  * ![The delivery channel picker with portal, email, Slack and Microsoft Teams selectable together.](https://assets.introw.io/docs/features/engagement/announcements/guides/send-an-announcement/steps/08.png)

    **Pick the channels**

    Portal, email, Slack and Teams, all from one publish.

  * ![The AI announcement generator with presets for a webinar, a product update and a blog post, and a source to draft from.](https://assets.introw.io/docs/features/engagement/announcements/guides/generate-an-announcement-with-ai/steps/04.png)

    **Or start with AI**

    Point AI at a webinar, a product update or a blog post.

  * ![An announcement's engagement view, showing sent and opened counts across the partners it went to.](https://assets.introw.io/docs/features/engagement/announcements/guides/review-announcement-engagement/steps/04.png)

    **See what landed**

    Who it reached, who opened it, who clicked.
</Tour>

## How it works

Announcements broadcast updates to your partners across the channels they actually check. You
compose an announcement once and target the partner segments it is for; publishing then fans it
out across every channel you enable, all at once:

* **Portal feed** - an entry in the portal of every targeted partner.
* **Email** - to every contact at those partners.
* **Slack** - into each targeted partner's connected shared channel(s).
* **Microsoft Teams** - into each targeted partner's connected channel(s).

So one message travels across the partner's whole ecosystem. Slack and Teams are independent, so
a partner can receive it in both. Partners do not have to live in the portal to stay informed,
which fits how partner attention is split across many tools.

AI helps you move faster. Instead of writing every update from a blank page, you can generate
announcement drafts and shape them to the audience, then send. After it goes out, you can see
who was reached, who opened, and who clicked, and nudge the partners who missed it.

AI drafting reaches outside Introw too: connect your LinkedIn and Introw turns your
partner-relevant posts into announcement drafts each week, rewritten for a partner
audience, so news you have already published does not have to be written twice.

Announcements meet partners off-portal. Draft with AI, target the right segments, and publish
once - the update fans out across the portal, email, and every shared Slack and Teams channel of
the targeted partners at the same time. Then measure engagement and follow up, so important
updates actually get through instead of sitting unread.

```mermaid theme={"theme":{"light":"github-light","dark":"github-dark"}}
flowchart LR
  draft["Draft with AI"] --> target["Target segments"]
  target --> publish{"Publish once"}
  publish --> portal["Portal feed"]
  publish --> email["Email every contact"]
  publish --> slack["Slack shared channels"]
  publish --> teams["Teams shared channels"]
  portal --> measure["Measure engagement"]
  email --> measure
  slack --> measure
  teams --> measure
```

## Run it from your AI assistant

<Headless>
  * Which announcements have partners seen recently?
  * Show partner engagement with our latest announcement.
</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="Segments" icon="users" href="/features/partners/segments">
    Target announcements by segment.
  </Card>

  <Card title="Slack & Teams" icon="plug" href="/features/integrations/chat">
    Deliver into Slack and Teams.
  </Card>

  <Card title="Notifications" icon="bell" href="/features/engagement/notifications">
    Ride the notification system.
  </Card>
</CardGroup>
