Select the existing app.
- 01.1
Open Slack API → Your Apps.
Sign in at api.slack.com/apps ↗.
- 01.2
Select the app and workspace.
Open the app that should run General Purpose. Confirm the workspace before changing its manifest.
Apply the recipe manifest.
The name and description are already set for General Purpose.
- 02.1
Open Features → App Manifest.
Choose App Manifest and select the JSON tab.
- 02.2
Back up the current manifest.
Copy the existing JSON to a secure working document before changing it so workspace-specific settings can be preserved or restored.
- 02.3
Replace or merge the configuration.
Copy the manifest below. Merge it when the existing app has settings your team still needs.
- 02.4
Save the manifest.
Review Slack's change summary, then click Save Changes.
{
"display_information": {
"name": "AgentBarn_General_Assistant",
"description": "A flexible starting template for a broad range of configured Slack tasks.",
"background_color": "#CC4400"
},
"features": {
"app_home": {
"home_tab_enabled": false,
"messages_tab_enabled": true,
"messages_tab_read_only_enabled": false
},
"bot_user": {
"display_name": "AgentBarn_General_Assistant",
"always_online": true
}
},
"oauth_config": {
"scopes": {
"bot": [
"app_mentions:read",
"canvases:read",
"canvases:write",
"channels:history",
"channels:join",
"channels:read",
"chat:write",
"chat:write.customize",
"chat:write.public",
"emoji:read",
"files:read",
"files:write",
"groups:history",
"groups:read",
"im:history",
"im:read",
"im:write",
"mpim:history",
"mpim:read",
"mpim:write",
"pins:read",
"pins:write",
"reactions:read",
"reactions:write",
"search:read.users",
"users:read",
"users:read.email"
]
},
"pkce_enabled": false
},
"settings": {
"event_subscriptions": {
"bot_events": [
"app_mention",
"channel_rename",
"member_joined_channel",
"member_left_channel",
"message.channels",
"message.groups",
"message.im",
"message.mpim",
"pin_added",
"pin_removed",
"reaction_added",
"reaction_removed"
]
},
"interactivity": {
"is_enabled": true
},
"org_deploy_enabled": false,
"socket_mode_enabled": true,
"token_rotation_enabled": false,
"is_mcp_enabled": false
}
}Create the app-level token.
- 03.1
Open Basic Information → App-Level Tokens.
Click Generate Token and Scopes.

Generate Token and Scopes. - 03.2
Name the token and add the scope.
Use
AgentBarn_General_Assistant, addconnections:write, and click Generate.
Name → connections:write → Generate. - 03.3
Copy the
xapp-value.Keep it ready for the Agent Barn App-level token field.

The value is blurred; use Copy.
Install the app and copy the bot token.
- 04.1
Open Install App.
Click Install to [your workspace].

Install App → Install to workspace. - 04.2
Review the workspace and permissions.
Confirm the workspace, review the requested access, and choose Allow.

Confirm workspace → review access → Allow. - 04.3
Copy the Bot User OAuth Token.
In Installed App Settings → OAuth Tokens, copy the
xoxb-value.
Bot User OAuth Token → Copy.
Connect both Slack values.
xapp-…Paste the value from App-Level Tokens.
xoxb-…Paste the Bot User OAuth Token.
- 05.1
Enter the values in their matching fields.
Paste the complete
xapp-andxoxb-values, then save. - 05.2
Confirm the connected app.
Check that Agent Barn resolves the expected Slack app and workspace.
Configure the agent.
- 06.1
Name the agent.
Use
AgentBarn_General, or another role-specific name your team will recognize. - 06.2
Select and test the model.
Choose an available model, then run one representative General Purpose task before connecting broader access.
- 06.3
Choose command approval.

Auto · Manual · Off Auto Runs low-risk commands automatically.
Manual Asks before every command.
Off Runs without approval prompts.
- 06.4
Choose response detail.

Verbose · Concise Verbose Shows progress while working.
Concise Returns the result without step narration.
- 06.5
Configure the recipe trigger and workflow.
Trigger: A request arrives in an allowed Slack channel or direct message.
- 06.6
Apply the recipe requirements and review rule.
TemplateThe selected model, role, restrictions, and instructions.
SkillsOnly the capabilities needed for the intended workflow.
PoliciesExplicit channel allowlists and direct-message behavior.
Set Slack access rules.
- 07.1
Choose channel access.

Allowlist · Open Allowlist Respond only in channels you add.
Open Respond in any channel the app can reach.
- 07.2
Choose direct-message access.

Off · Allowlist · Open Off Ignore direct messages.
Allowlist Reply only to approved people.
Open Reply to anyone who can reach the app.
- 07.3
Add and test the intended destinations.
Invite the Slack app to each allowed channel, add the same channels or people in Agent Barn, and send one test request.
Connect the skills for General Purpose.
Selected skills only
Add only the platforms required by the role you define for this agent.
- Credential
- A dedicated, least-privilege credential for each selected platform.
- Permissions
- No default integrations · Grant read before write where possible · Add one capability at a time and test it
- Write the role and success criteria before selecting tools.
- Connect the minimum useful skill set.
- Re-run representative tests whenever a new integration is added.
Select the skills this agent can use.
Select one or more skills to show their connection instructions.
Connect Jira.
- Copy the Atlassian site URL.
Use the site origin through
.atlassian.net. Do not include a project path.
Copy the site origin. - Open the API token manager.
Open Profile → Account settings → Security → Create and manage API tokens.

Account settings 
API token manager - Create the matching token type.
Choose standard or scoped, then select the same Authentication Type in Agent Barn. For a scoped token, include only the Jira API scopes required by the role.

Choose standard or scoped. - Complete the Jira credential.SITE URL
Atlassian site origin.
AUTHENTICATION TYPEMatch the token type.
EMAILAtlassian account email.
API TOKENCopied token value.
Grant only the Jira project and issue actions required by the general-purpose role.
- Validate the Jira boundary.
Test one permitted project and confirm a project outside the configured boundary remains unavailable.
Connect Confluence.
- Copy the Atlassian site URL.
Use the site origin through
.atlassian.net. Do not include a space or page path.
Copy the site origin. - Open Atlassian API tokens.
Open Profile → Account settings → Security → Create and manage API tokens.

Open the API token manager. - Create and copy the token.
Choose the token type used in Agent Barn, add a recognizable name and expiration, create it, and copy the value.

Name · expiration · create 
Copy the value. - Complete the Confluence credential.SITE URL
Atlassian site origin.
AUTHENTICATION TYPEMatch the token type.
EMAILAtlassian account email.
API TOKENCopied token value.
The same saved Atlassian credential can connect Jira and Confluence when the account and token cover both products.
- Validate the Confluence boundary.
Test one permitted space and confirm a space outside the configured boundary remains unavailable.
Connect GitHub with a Classic PAT.
- Open Personal access tokens.
Open github.com/settings/tokens ↗, choose Tokens (classic) → Generate new token, then add a note and expiration.
- Select the scopes.REPO
Repository access.
READ:ORGOrganization membership.
READ:USERUser profile data.
- Generate and copy the token.

The token is blurred; use the copy control. - Complete the GitHub credential.
Copy Owner / Org from the value before the slash and add every repository the agent may use.

Owner / Org appears before the slash. - Validate the GitHub boundary.
Test one permitted repository and confirm a repository outside the configured list remains unavailable.
Connect Bitbucket.
- Record the workspace ID.
Open the workspace. In
bitbucket.org/agentbarn/workspace/overview,agentbarnis the workspace ID. - Create a Bitbucket-scoped API token.
Open Profile → Account settings → Security → Create and manage API tokens. Choose Create API token with scopes, select Bitbucket, and continue to permissions.
- Select access.USER
Read the account.
WORKSPACERead the workspace.
REPOSITORYRead repository content.
PULL REQUESTSRead; add write only when the role posts comments.
- Complete the Bitbucket credential.WORKSPACE
Workspace ID.
REPOSITORIESPermitted repository names.
EMAILAtlassian account email.
API TOKENBitbucket-scoped value.
- Validate the Bitbucket boundary.
Test one permitted repository and confirm a repository outside the configured list remains unavailable.
Connect Gmail with Google OAuth.
- Click Authenticate with Google.
Choose the mailbox that the agent should read.
- Review and approve read-only access.
Approve
gmail.readonly. No manual key is required.
Google OAuth · gmail.readonly - Use a custom Google client only when required.
Keep the optional custom-client fields closed unless the workspace must supply and manage its own Google OAuth application.
- Set mailbox boundaries.
Choose the labels, folders, senders, recipients, and message types this general-purpose agent may inspect.
- Test the connection.
Confirm one included message is available and one excluded message remains outside the agent’s results.
- Define the role before selecting skills.
Write the tasks, inputs, outputs, and prohibited actions first.
- Test one skill at a time.
Connect the minimum access required, run a representative task, and confirm resources outside the selected boundary remain unavailable.
- Review every selected skill.
Confirm each connection uses the intended account and resources, then remove anything the defined role does not need.
Verify the complete recipe.
- The existing Slack app connects with both Slack values.
- The app responds in an allowed channel.
- A destination outside the selected access rule receives no response.
- Each required integration completes one representative task.
- The command-approval and response-detail choices behave as selected.
- The configured trigger runs: A request arrives in an allowed Slack channel or direct message.
- The result follows Receive request → Apply role → Use skills → Return answer.
- The review rule is applied: Start with the narrowest useful scope and add tools only when the workflow genuinely needs them.
General Purpose is ready for a controlled pilot.
Start with a narrow audience and reversible work, then widen access after observing representative tasks.
Return to recipes →