Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions fern/products/ask-fern/ask-fern.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ navigation:
path: ./pages/features/insights.mdx
- page: Evaluation
path: ./pages/features/evals.mdx
- page: Slack app
path: ./pages/features/slack-app.mdx
- api: API reference
api-name: fai
paginated: true
Expand Down
91 changes: 91 additions & 0 deletions fern/products/ask-fern/pages/features/slack-app.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
---
title: Ask Fern Slack app
description: Enable your customers to get instant answers to product questions directly in Slack using Ask Fern's AI-powered documentation bot.
---

The Ask Fern Slack app allows customers to ask questions about your products directly in Slack channels and receive AI-generated answers from your documentation database.

Fern stores all questions and answers from Slack interactions for [analytics purposes](/ask-fern/features/analytics).

## Setup

Install the Ask Fern app and add the bot to customer channels.

<AccordionGroup>
<Accordion title="Install for your organization">

To install Ask Fern in your organization's Slack workspace, you must be a Slack admin. Follow these steps:

1. In your Fern dashboard, click the **Install to Slack** button. You'll be redirected to Slack to authorize the app
1. Select the workspace where you want to add Ask Fern and click **Allow**

</Accordion>
<Accordion title="Enable for customer workspaces">

To give customers access to the Ask Fern bot in their own Slack workspaces:

1. Generate a customer installation link by making a request to:
```
https://fai.buildwithfern.com/slack/get-install?domain={your-domain}
```
This returns a unique URL that your customers can use to install Ask Fern to their own Slack workspace.
1. Forward this link to your customer so they can install the Ask Fern app to their workspace.
1. Once the customer has installed the Ask Fern app, you must add the bot to your customer Slack channel to give it access.

Once added, customers will see that `@Ask Fern was added to the channel`. They can start asking questions immediately.
</Accordion>
</AccordionGroup>

## Configuration

Customize the bot's behavior to match your workflow needs.

<AccordionGroup>
<Accordion title="Bot settings per channel">

Use the `/configure` command in any channel to adjust the following settings:

- **respond_to**: Controls whether the Ask Fern bot responds to all messages (`all`) or only when directly mentioned with `@Ask Fern` (`mentions_only`)
- **roles**: Specifies which RBAC roles should be used to filter Ask Fern responses (if you have [role-based access control](/docs/authentication/rbac) configured)
</Accordion>
<Accordion title="Customize the bot name">

You can rename the bot to match your brand (example: "YourCompanyName Support"):

1. In Slack, go to **Apps** in the sidebar and click **Add Apps**
2. Search for **Ask Fern** and select it
3. Click the **About** tab, then **Configuration**
4. Scroll to **Bot User** section and click **Edit**
5. Enter your preferred bot name and save changes

Now customers will see `@YourCompanyName Support was added to the channel` instead of the default `@Ask Fern` name.
</Accordion>
</AccordionGroup>

## Architecture

When a user asks Ask Fern a question in Slack, a webhook triggers Fern's servers to search your documentation database and retrieve relevant context. Using that context, Ask Fern generates a response.

<Accordion title="Diagram">

```mermaid
sequenceDiagram
autonumber
participant U as User (Slack)
participant S as Slack Webhook
participant F as Fern Servers
participant V as Documentation Database
participant A as Ask Fern

U->>S: Ask question to @Ask Fern
S->>F: Webhook fires to Fern servers
F->>F: Convert query to vector
F->>F: Check user roles (if RBAC enabled)
F->>V: Search for relevant chunks
V->>F: Return matching documents user can access
F->>A: Send query + context
A->>A: Generate response
A->>U: Return answer in Slack thread
F->>F: Store question and answer for analytics
```
</Accordion>