Skip to main content
@frogbotai/piece-slack connects an agent to Slack. Mention the bot or message it in a thread it follows, and the agent replies in the same thread. When the agent uses the question tool, participants answer with buttons, menus, and forms in the thread.

Connect an agent

The instance slug defaults to slack. Give each instance its own slug when you connect more than one workspace. See factory options for slug, auth, oauth, and scopes.

Create the Slack app

Create the app from the bundled manifest, node_modules/@frogbotai/piece-slack/slack-manifest.yaml. Replace {{FROGBOT_URL}} with your public server URL and {{SLACK_INSTANCE_SLUG}} with the instance slug. Opening the typed-answer form needs no extra scope. After changing scopes, reinstall the app to the workspace.

Who can answer

FrogBot matches the Slack user who clicks to a FrogBot user by the email on their Slack profile. It then runs the agent’s access check for that user. Anyone who passes can answer, including a teammate who did not start the conversation. Being a member of the Slack channel is not enough on its own. A user without access gets a private notice, and the question stays open. Slack users with no matching email have no FrogBot user; the default agent access denies them. Write an access function if unmatched users should be able to answer.

What participants see

Every card has a Dismiss button. Dismissing tells the agent the question was declined and stops the turn. When a question is answered, the card is replaced with the answer and Answered by @name, and the agent continues in the same thread. The first answer wins; anyone who clicks afterwards gets a private “already answered” notice. Selections in a form are private to each participant until they press Submit. Questions are answered only in Slack. The FrogBot admin chat shows the conversation read-only.

Limits and failures

Slack expects a response to a click within 3 seconds. FrogBot records the answer and updates the card within that time and runs the agent’s next step as a job, so a slow model does not delay the click. If identity lookups are slow, Slack may briefly show a warning on the click even though the answer was recorded.