> For the complete documentation index, see [llms.txt](https://portavi.gitbook.io/portavi-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://portavi.gitbook.io/portavi-docs/connecting-your-tools/communication-tools.md).

# Communication tools

Portavi can watch your team's chat channels for early warning signs: the "we're blocked on this" that shows up in conversation days before it shows up in a ticket.

<figure><picture><source srcset="https://4189291014-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx6fERvLd0cQQBYlynE5O%2Fuploads%2Fgit-blob-479f03360a746d28111db9071da98c0baacbd290%2Fintegrations-comm-dark.png?alt=media" media="(prefers-color-scheme: dark)"><img src="https://4189291014-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx6fERvLd0cQQBYlynE5O%2Fuploads%2Fgit-blob-32a80f200ebc31e79f2d89eb8e1dc2ea1280419b%2Fintegrations-comm.png?alt=media" alt=""></picture><figcaption></figcaption></figure>

## Supported tools

* **Slack**
* **Microsoft Teams**
* **Google Chat**: coming soon

## How it works

1. Connect the tool from **Integrations**, the same way as a PM tool.
2. Open a project and map it to one or more channels or spaces.
3. Portavi watches those channels for keywords and records a **signal** when one appears.

### Private channels

Public channels appear in the picker as soon as the tool is connected, and Portavi joins them itself when it first reads one.

A private channel is different, and the difference is Slack's rather than ours: an app can only see a private channel someone has invited it to. Invite Portavi from the channel itself — `/invite @Portavi` — and it appears in the picker, marked **Private**. A private channel nobody has invited it to is not hidden from you so much as invisible to the app, which is why it is not in the list at all.

Leaving the channel, or removing Portavi from it, stops the signals without unmapping anything.

Signals show in the project's Activity tab alongside PM-tool events, each with a deep link back to the original message.

## Signal types

| Signal       | Means                         |
| ------------ | ----------------------------- |
| **Blocker**  | Something is stopping work    |
| **Delay**    | Something is going to be late |
| **Urgency**  | Something needs attention now |
| **Issue**    | A problem has been raised     |
| **Progress** | Something moved forward       |

Keywords for each type are configurable per workspace in **Settings → General**, so you can tune them to how your teams actually write.

## What Portavi stores

{% hint style="success" %}
**Message content is never saved.** Portavi reads messages in memory to check for keywords, then keeps only the signal type, who sent it, when, and a link back to the original message. The text of your conversations never enters Portavi's database.
{% endhint %}

## Signals are not flagged items

These are two different mechanisms and it is worth keeping them apart:

* **Signals** come from conversation and are informational; they appear in the Activity feed.
* [**Flagged items**](/portavi-docs/tracking-delivery/flagged-items.md) come from task data and feed a project's health status.

A chat message never changes a project's health. It tells a human to go and look.
