Before you start
- A chat agent with the End-user audience, tested in the dashboard with Test as end-client.
- The client company in Companies. Slack needs no tenant ID or domain on the record: the install link carries the company.
- An icon: a square PNG or JPEG, at least 512 × 512 px and at most 2 MB. Slack refuses smaller icons.
- Someone at the client who can install apps in their Slack workspace, usually a Workspace Owner or Admin.
Deploy
Create the channel
Request the Slack app

Generate the install link
Send it to the client's Slack admin
Verify
- Find the app under Apps in the Slack sidebar and open its Messages tab. Your welcome message appears.
- Ask a question. Your agent answers.
- Type
/new. The bot starts a fresh conversation.
Test in your own workspace first
Test as end-client checks the agent’s answers without any install. To check the Slack side too (your branding, the welcome message, buttons and forms, relayed technician replies), install the app into your own Slack workspace: generate an install link for a company in Companies that stands for your own business, and install it yourself. The bot treats you like any client’s employee, scoped to that company. A workspace stays linked to the first company it was installed for. Pick the company for your own workspace with care; see Offboarding a client.What end users see
Where they talk to it. Three places, each its own conversation:- Direct messages: the app’s Messages tab, found under Apps in the sidebar. Every message gets an answer, and the conversation carries on across days.
- The Agents & AI apps panel: Slack can open the app in a side panel next to whatever the person is reading. Each new thread there is a new conversation. While the agent works, the panel shows that it is thinking.
- Channels: add the app to a channel, and people @mention it. It answers in a thread under the message, and later mentions in that thread continue the same conversation. It never reads or answers a channel message that doesn’t mention it.
/help and a line saying that replies are generated by AI and can be wrong. The app posts nothing when it is installed.
Replies. In a thread (the side panel, or a channel thread) the reply appears as the agent writes it. At the top level of direct messages it arrives in one message when it is complete. With Show progress updates on in the channel’s settings, a small card lists what the agent is doing with plain labels such as “Checking your tickets”, and a Show steps button opens the list. End users never see tool names or what a tool returned.
Buttons and forms. When the agent asks a question with a few likely answers, the options come as buttons (up to six), or as tick boxes with a Something else box when several answers can apply. Several questions at once come as one form with Submit. In the side panel, one short question with up to four answers shows its answers as suggested prompts instead. Intent forms show in the conversation with a Submit button; a form with a long-text field opens in a Slack form window from an Open form button. After a long pause, a Start fresh / Continue previous chat card lets the person choose; see starting fresh after a pause.
Commands. /new starts a fresh conversation, and typing “start a new chat” does the same. /help shows what the app does and its commands, visible only to the person who ran it. In a channel, each thread is already its own conversation, so a fresh start there is a new message that mentions the app.
Files. People can attach up to six files per message: screenshots, which the agent reads, and documents, which it can attach to their ticket. The accepted types are on end-user tools. Files over 20 MB, and other types, are skipped. The app never sends files back.
Technician replies. A client-facing reply on the person’s ticket arrives in the same conversation, the way live ticket updates work in Teams. It shows who replied (the technician’s name and picture, or your own name) and one footer line with the ticket number, title and status. The channel’s Relayed technician messages, Show the ticket title and Show the ticket status settings apply as they do for Teams, and Don’t label them sends the note as plain text with no footer. Which PSA entries relay, and the Autotask client portal address for ticket links, are set once for Teams and Slack together, on the Microsoft Teams — End-user Chat Bot card under Integrations. The person’s replies land on the ticket as the ticket records describes.
Who the bot serves
- The company is the one the workspace’s install link was generated for. One workspace is linked to exactly one company.
- The person is matched by the email on their Slack profile against that company’s active contacts in your PSA. With a match, they can see and reply to their own tickets. Without one, the bot can still file a ticket, noting the email it came from, but it can’t show them tickets until you add them as a contact.
- What the agent can reach is the same end-user tool set as in Teams, locked to that one person and company: see what end users can access and how end-user bots work.
What the app can access in the workspace
A client’s Slack admin sees these permissions on the Allow screen. The app can:- Read direct messages sent to it, and channel messages that mention it. It has no access to other channel messages.
- Send messages, and show its status and suggested prompts in the side panel.
- Read people’s names and email addresses, to match each person to a PSA contact.
- Read files people send to it.
- Run its
/newand/helpcommands. - Read the workspace’s name.
How it differs from Teams
Updating the app
Offboarding a client
Click Disconnect on the workspace under Connected Slack workspaces, then Disconnect it. Neo stops answering there and asks Slack to remove the app. If the app still shows in the workspace, a Slack admin there can remove it. If the client removes the app in Slack first, Neo drops the workspace from the list by itself. The workspace stays linked to its company. Installing the app again for the same company works as before; to link the workspace to a different company, contact Neo support.Billing
The Slack bot is billed like the Teams bot: a flat monthly price per client company where someone used it, with the same free trial, which starts with your first install on either transport. See end-user bot pricing.Over the API
The same steps are in the public API:POST /public-api/channels/{id}/slack-apprequests the app, retries a failed request, or sends changed branding.GET /public-api/channels/{id}/slack-appreturns its status.POST /public-api/channels/{id}/slack-app/iconuploads the icon.POST /public-api/channels/{id}/slack-install-linkwith apsa_company_idmakes an install link.GET /public-api/channels/{id}/slack-installslists the connected workspaces, andDELETE /public-api/channels/{id}/slack-installs/{install_id}disconnects one.
Troubleshooting
The app request failed
The app request failed
The icon upload was refused
The icon upload was refused
The admin sees 'This link has expired'
The admin sees 'This link has expired'
The admin sees 'The install was cancelled'
The admin sees 'The install was cancelled'
The admin sees 'This Slack workspace is already connected to another company'
The admin sees 'This Slack workspace is already connected to another company'
The admin sees that an Enterprise Grid organization is not supported
The admin sees that an Enterprise Grid organization is not supported
The bot says the app isn't connected for this workspace yet
The bot says the app isn't connected for this workspace yet
The bot says the app isn't fully set up for the organization yet
The bot says the app isn't fully set up for the organization yet
A user can't see their tickets
A user can't see their tickets
The bot ignores a channel
The bot ignores a channel
The bot says it can't reach the service, or couldn't finish
The bot says it can't reach the service, or couldn't finish
/new and ask again. This is also what a conversation that was open when you assigned another agent to the channel shows. If the same message comes back in the fresh conversation, contact Neo support.The bot says the assistant isn't active any more
The bot says the assistant isn't active any more
