{#if slackLoading}
Loading…
{:else if !slackTeamName}
Connect Slack to the workspace, with AI agents enabled, to ask this agent from Slack,
by its name or as a channel's default.
{#if isAdmin}
{:else}
A workspace admin can connect it.
{/if}
{:else}
{#if !signingSecretSet}
Windmill needs the Slack app's signing secret to tell who sent a message.
{#if isAdmin}
A workspace's own Slack app takes it in the workspace settings, the instance's app
in the instance settings.
{:else}
A workspace or instance admin can set it.
{/if}
{/if}
{#if !botName}
Slack refused the workspace's bot token or couldn't be reached, so agents can't
answer there.
{#if isAdmin}
Reconnect Slack to fix it.
{:else}
A workspace admin can reconnect Slack to fix it.
{/if}
{/if}
{#if botName && missingScopes.length > 0}
The connection lacks {missingScopes.join(', ')}, so agents can't check who is
asking.
{#if isAdmin}
Disconnect Slack, then
connect it again with AI agents enabled.
{:else}
A workspace admin can reconnect Slack with AI agents enabled.
{/if}
{/if}
Ask it in Slack
{#if canShare}
{/if}
{#if channels.length === 0}
Not shared in any channel of {slackTeamName}.
{:else}
@{botName ?? ''} {handle} your question
{handle} matches the last part of the agent's path. Use the whole path,
+{agentPath}, when two agents shared in a channel have that name.
Replies in the thread that mention the bot go to the same agent, no name needed.
in
{#each channels as channel (channel.channel_id)}
#{channel.channel_name}{channel.is_default ? ' · default' : ''}
{/each}
{#if anyone}
Anyone in these channels can ask it, with {runsAs}'s permissions.
{:else if runsAs}
Workspace members can ask it, with {runsAs}'s permissions.
{:else}
Workspace members can ask it, with their own permissions.
{/if}
{/if}