From c077adb4f41fc595ced062abdbbb439ace88cdc6 Mon Sep 17 00:00:00 2001 From: Rami Date: Wed, 21 Oct 2026 21:04:21 +0100 Subject: [PATCH] docs(global): a person who connects slack has a page that says how to add, use and remove it Connect Slack takes the shape of Connect Zoom: what you need, add, use, remove, get help. It says that a person connects as themselves through Slack's MCP server, with their own access, that a workspace taking only approved apps asks for the app to be requested first, and that a Slack app's bot is the `slack-api` provider. It gives the ask a person types, the Studio page and its ten-minute link, and what Slack shows where whoever runs Auto registered an app, where consent through Auto is on, and where neither is. It lists what a playbook can do with the scopes the `slack` entry asks, and says that the messages a call answers stay in the playbook's history unless the connection keeps only each answer's size. Removing Slack in Auto forgets the tokens without asking Slack to revoke them, since Slack's metadata for its MCP server names no revocation endpoint; under token rotation the access token ends within twelve hours. At Slack, a member revokes their own authorization, or the app is removed for the workspace, with the steps from Slack's help. What remains names the consent service's lines, those for Slack's notices that the app was removed among them. The docs index and the tools guide link both Connect pages, and the navigation lists Slack's after Zoom's. Co-Authored-By: Claude Fable 5.1 --- docs/guides/tools.md | 1 + docs/index.md | 2 +- docs/integrations/slack.md | 97 +++++++++++++++++++++++++++++++++++ docs/integrations/zoom.md | 2 +- docs/nav.json | 4 ++ docs/self-host/connections.md | 2 +- 6 files changed, 105 insertions(+), 3 deletions(-) create mode 100644 docs/integrations/slack.md diff --git a/docs/guides/tools.md b/docs/guides/tools.md index dd99d32b2..891efdc54 100644 --- a/docs/guides/tools.md +++ b/docs/guides/tools.md @@ -173,4 +173,5 @@ When they confirm, start again at [Find the tools](#find-the-tools). - [Reasoning function format](../reference/reasoning-format.md#tools) has the rules and limits of `tools`. - [Add a tool server](../self-host/tool-servers.md) is for whoever runs Auto. It adds a server, limits its tools and keeps its key out of the settings file. - [Use Auto with Apollo](../integrations/apollo.md) connects a function to your business graph as a tool server. +- [Connect Zoom](../integrations/zoom.md) and [Connect Slack](../integrations/slack.md) let a function use your own Zoom or Slack account through its tools. - [Interaction function format](../reference/interaction-format.md) shows an interaction function that calls one tool, or sends its request through one, without a model. diff --git a/docs/index.md b/docs/index.md index ed49d9e90..53e7413cf 100644 --- a/docs/index.md +++ b/docs/index.md @@ -16,7 +16,7 @@ Follow the [quick start](get-started/local.md) to run Auto on your computer and ## Do a task -The guides show how to [give a function tools](guides/tools.md), [run a workflow on a schedule or event](guides/triggers.md), [make a playbook remember](guides/remember.md), [calculate with a computation function](guides/computation.md), [forecast with a prediction function](guides/forecast.md) and [use Auto with Apollo](integrations/apollo.md). +The guides show how to [give a function tools](guides/tools.md), [run a workflow on a schedule or event](guides/triggers.md), [make a playbook remember](guides/remember.md), [calculate with a computation function](guides/computation.md), [forecast with a prediction function](guides/forecast.md), [use Auto with Apollo](integrations/apollo.md) and connect [Zoom](integrations/zoom.md) or [Slack](integrations/slack.md) for your playbooks to use. ## Run it for a team diff --git a/docs/integrations/slack.md b/docs/integrations/slack.md new file mode 100644 index 000000000..d2f8ec4af --- /dev/null +++ b/docs/integrations/slack.md @@ -0,0 +1,97 @@ +--- +description: Connect your Slack account to Auto, use your messages, channels and threads in a playbook, and remove the connection when you no longer want it. +--- + +# Connect Slack + +Connect your Slack account to Auto, so that the functions in your playbooks can search and read your messages, channels and threads, and send messages and add reactions as you. Your agent does the setup. You sign in to Slack and allow access. + +## What you need + +- Auto running, with your agent connected to it as you. The [quick start](../get-started/local.md) sets this up on your own computer. On an Auto your team runs, your agent is signed in as you, with permission to change your org; an agent connected with a key cannot add a connection. +- A Slack account in the workspace you want to connect. Auto reaches Slack at `slack.com` and `mcp.slack.com`. +- If your workspace takes only the apps its owners approve, Slack asks you to request the app, and you allow access once a workspace owner or app manager approves it. + +You connect as yourself, through Slack's MCP server. The connection has your access to the workspace: it reads the channels, conversations and people you can see, and a message it sends is from you. The connection belongs to your org, so a function in a playbook it is for acts in Slack as you, whoever in your org runs it. + +Acting as a Slack app's bot instead is the `slack-api` provider, connected with the bot token of a Slack app installed in your workspace, as [the providers Auto ships](../self-host/connections.md#the-providers-auto-ships) lists. This page is about connecting as yourself. + +## Add Slack + +1. Ask your agent to connect Slack as you: + + ```text + Connect my own Slack account to Auto, so that the functions in my + "" playbook can search and read my Slack messages. + ``` + + Your agent may ask which playbook the connection is for. Name the playbooks that may use it, or say that every playbook of your org may. A connection that names no playbook is for every playbook of the org. + +2. Your agent asks you to open a page of Studio, or gives you its link. The link works for ten minutes. On an Auto that signs people in, only you can use it, signed in as yourself. +3. Check what the page says you are connecting, and press Continue. +4. Slack asks you to sign in, if you are not signed in already, and shows the workspace you are connecting; you can switch to another there. Check that it is the workspace you mean, and allow access. +5. Slack sends you back to Studio, which finishes the connection and shows Slack as connected. Your agent sees it connected too. + +If the link runs out before Slack is connected, ask your agent to remove the connection and add it again, for a new link. + +### What you see when you allow access + +The Slack app you allow depends on how your Auto is set up: + +| How your Auto is set up | What you see | +| -------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Whoever runs your Auto registered a Slack app of their own | Slack asks you to allow their app, and then sends you back to Studio. Their app comes first, even where consent through Auto is on | +| They registered none, and [consent through Auto](../self-host/connections.md#consent-through-auto) is on | Slack asks you to allow Auto, under Auto's name. It then sends you to the hosted Studio, `https://studio.on.auto`, where you sign in to Auto if you have not already, and on to the Studio you started from | +| Neither | Your agent cannot add Slack, and says that Slack takes a client whoever runs Auto registers, which is not set up here. Ask whoever runs your Auto to set one up | + +## Use Slack in a playbook + +Once Slack is connected, ask your agent to give a function in your playbook the Slack tools it needs, as [Give a function tools](../guides/tools.md) shows. Say what you want done, in your own words: + +| A playbook can | You might ask | +| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | +| Search messages in public and private channels, direct messages and group direct messages | "Find what the team said about the spring price change this month." | +| Read a channel's history and a thread | "Summarize yesterday's thread in the support channel about the delayed order." | +| Look up people and channels | "Find the channel about the trade show, and the job titles of the people who post there." | +| Send a message | "Post the weekly summary in the marketing channel." | +| Add a reaction | "Add a check mark to each question in the support channel we answered today." | + +The `slack` row of [the providers Auto ships](../self-host/connections.md#the-providers-auto-ships) is the full list of what a function may do with Slack. + +What Slack answers each call, the messages a function reads among it, is kept in the playbook's history, for anyone who may read the playbook, as [the configuration reference](../self-host/configuration.md#fields-of-an-entry) says of every tool server. Someone who may read the playbook can then read messages from your private channels and direct messages that Slack would not show them. If you would rather the history keep only the size of each answer, ask your agent to add Slack that way. + +## Remove Slack + +You can remove Slack in Auto or at Slack. + +### In Auto + +In Studio, find Slack among your org's connections, press Remove and confirm. Or ask your agent: + +```text +Remove my Slack connection from Auto. +``` + +Auto then forgets the connection's tokens, and no playbook may use the connection any more. What Slack publishes for signing in to its MCP server names no address that revokes a token, so Auto does not ask Slack to revoke them, and your authorization of the app stands at Slack until you revoke it there, as below. + +### At Slack + +To revoke your own authorization, in Slack on your desktop: + +1. Click your workspace name in the sidebar. +2. Select Tools & settings, then Manage apps. +3. Select Installed apps, find the app you allowed and click App details. +4. Open the Configuration tab. Under Authorizations, find Authorized members, click See all and Revoke. + +To remove the app for the whole workspace instead, choose Remove app on the same Configuration tab. Where app approval is on, only workspace owners and app managers can remove apps. Slack's help on [removing apps](https://slack.com/help/articles/360003125231-Remove-apps-and-custom-integrations-from-your-workspace) has the steps. + +Either way, Slack then refuses the connection's tokens, and the functions that use the connection can no longer reach Slack. A connection cannot be mended, so remove it in Auto too, as above, and add Slack again to use it again. + +### What remains + +Removing Slack does not remove what Slack answered before. The playbook's history keeps what earlier calls answered, for anyone who may read the playbook, for as long as whoever runs your Auto keeps it. Where you allowed Auto's own app, Auto's consent service keeps a line for each time you allowed access, each renewal and each removal, naming you, Slack and the Studio you went back to, and no token. It also keeps a line for each notice Slack sends it that the app was removed or its tokens revoked, naming the workspace, the Slack members and the time Slack gives. + +## Get help + +- For help with Slack in Auto, use Auto's [support page](https://on.auto/contact-us). +- Read Auto's [privacy policy](https://on.auto/privacy) and [terms](https://on.auto/terms). diff --git a/docs/integrations/zoom.md b/docs/integrations/zoom.md index dbf0b8094..07f336f7a 100644 --- a/docs/integrations/zoom.md +++ b/docs/integrations/zoom.md @@ -80,7 +80,7 @@ Sign in to the [Zoom App Marketplace](https://marketplace.zoom.us), open Manage, ### What remains -Removing Zoom does not remove what Zoom answered before. The playbook's history keeps what earlier calls answered, for anyone who may read the playbook, for as long as whoever runs your Auto keeps it. Where you allowed Auto's own app, Auto's consent service keeps a line for each time you allowed access, each renewal and each revocation, naming you, Zoom and the Studio you went back to, and no token. +Removing Zoom does not remove what Zoom answered before. The playbook's history keeps what earlier calls answered, for anyone who may read the playbook, for as long as whoever runs your Auto keeps it. Where you allowed Auto's own app, Auto's consent service keeps a line for each time you allowed access, each renewal and each revocation, naming you, Zoom and the Studio you went back to, and no token. It also keeps a line for each notice Zoom sends it that you removed the app, naming your Zoom user and account, the app and the time Zoom gives. ## Get help diff --git a/docs/nav.json b/docs/nav.json index e889ff31e..a1dad8f2a 100644 --- a/docs/nav.json +++ b/docs/nav.json @@ -89,6 +89,10 @@ { "text": "Connect Zoom", "link": "/integrations/zoom" + }, + { + "text": "Connect Slack", + "link": "/integrations/slack" } ] } diff --git a/docs/self-host/connections.md b/docs/self-host/connections.md index db4e7cc3e..66a772e97 100644 --- a/docs/self-host/connections.md +++ b/docs/self-host/connections.md @@ -298,7 +298,7 @@ Each way names as its issuer the authorization server its server names in its ow Zoom's way writes out its revocation endpoint, so removing a connection to `zoom` asks Zoom to revoke its tokens there. None of the other three authorization servers publishes an endpoint that revokes a token, so removing a connection to one forgets its tokens without revoking them at the vendor. Of the authorization servers of Microsoft's, Amazon's and Adobe's providers, Adobe IMS publishes one, `https://ims-na1.adobelogin.com/ims/revoke`, which the metadata of Adobe's MCP server names too, so removing a connection to `adobe-analytics` or `adobe-analytics-mcp` made by consent revokes its tokens there; Microsoft's and Login with Amazon publish none, so removing a connection to `microsoft-advertising`, `outlook`, `amazon-ads` or `amazon-ads-mcp` revokes nothing at the vendor, and its tokens end on their own. GitHub's access token ends within eight hours and its refresh token after six months unused. Slack's tokens do not expire unless the app turns on token rotation, after which an access token lasts twelve hours: without it, a removed connection's token stays valid at Slack until the person removes the app there. -A Zoom app serves people outside your own Zoom account only once Zoom has reviewed it. As a beta, Zoom approves on request a link that adds the app, for four weeks at a time, renewed twice at most, and for 100 additions of a user-level app, unless Zoom raises the limit on request; the link stops working once the app is published. As a published app, it passes Zoom's app review and gives Zoom a deauthorization notification address, to which Zoom posts when a person removes the app, and after which the app deletes what it holds of that person. Auto's own app at Zoom, the client [consent through Auto](#consent-through-auto) uses, gives Zoom an address of Auto's consent service, which acknowledges each such notice and keeps a line naming the identifiers Zoom sent. The service holds nothing of the person's to delete: a start and the tokens it hands on last ten minutes at most, it keeps a connection key by its hash beside the person as Auto knows them and never as Zoom does, and the person's runtime holds the tokens. A runtime serves no such address: it learns that a person removed the app when Zoom refuses the connection's tokens, which breaks the connection, and deleting what it kept of that person falls on you. An app you publish yourself offers Zoom an address of your own. +A Zoom app serves people outside your own Zoom account only once Zoom has reviewed it. As a beta, Zoom approves on request a link that adds the app, for four weeks at a time, renewed twice at most, and for 100 additions of a user-level app, unless Zoom raises the limit on request; the link stops working once the app is published. As a published app, it passes Zoom's app review and gives Zoom a deauthorization notification address, to which Zoom posts when a person removes the app, and after which the app deletes what it holds of that person. Auto's own app at Zoom, the client [consent through Auto](#consent-through-auto) uses, gives Zoom an address of Auto's consent service, which acknowledges each such notice and keeps a line naming the identifiers Zoom sent. The service holds nothing of the person's to delete: a start and the tokens it hands on last ten minutes at most, it keeps a connection key by its hash beside the person as Auto knows them and never as Zoom does, and the person's runtime holds the tokens. A runtime serves no such address: it learns that a person removed the app when Zoom refuses the connection's tokens, which breaks the connection, and deleting what it kept of that person falls on you. An app you publish yourself offers Zoom an address of your own. Auto's own app at Slack gives Slack the same service's address for its notices that the app was removed from a workspace or that its tokens were revoked, and the service keeps a line for each, naming the workspace, the members and the time Slack sent; a runtime learns of it when Slack refuses the connection's tokens. What `zoom`'s calls answer is kept as every answer is, whole and scrubbed of secrets in the playbook's history, for anyone who may read the playbook, unless the connection is added with `record_content: false`. A meeting's answer holds its start link, with which anyone who has it signs in to Zoom as the meeting's host, and its passwords, and a recording's answer holds its passwords. No call fetches the file of a recording or a transcript, which an answer names by an address outside the API.