a question answered, a sale keptthe chat needs no cookie bannerunlimited teammatesreply from slack or our phone app

/blog / stories

why every chat can become a slack or discord thread

· by seba · 5 min read

The white Spookat ghost cat in a box on a green grid, with five arrows fanning out from it to five coloured bars.

In Spookat, connect Slack or Discord and a website chat turns into a thread in Slack or a post in Discord, and you answer it there. We built it that way because a separate support inbox is the tab nobody opens. We have one too, with a phone app, for teams that live in neither. This post covers the reasoning, how it works in practice, what we lean on Slack and Discord for, and what that dependency costs us.

the tab nobody opens

Every chat tool we used before came with its own inbox. A separate app, a separate login, a separate set of notifications. The idea is sound: one screen built for conversations.

In a small team it goes wrong in a very predictable way. Nobody’s job is “watch the inbox”, so nobody watches it. The person on support duty this week has it open. Everyone else is in Slack, where the real work is being discussed. A visitor asks something only the developer can answer, and the developer never sees it, because it lives in an app the developer doesn’t use.

You can patch that with notification settings and forwarding rules. It rarely sticks, because the fix still depends on someone remembering a second app. The team was already sitting in one app all day. The questions should go there.

what it looks like

Connect a Slack channel and every new conversation shows up as a card: a reference like SP-0001, the page the visitor was on, their browser and country, a status, who’s assigned, and buttons to reply, take it or close it. The visitor’s messages go into a thread under the card. So do yours.

Press Take and the chat is yours. The card shows you as the assignee and the visitor sees you join. Close it when you’re done, and if the visitor writes again it opens by itself. A spammer gets /spookat block and nothing they send reaches you after that.

Reply in the thread like you’d reply to a colleague. The visitor sees it in the widget, with your first name on it. Start a message with // and it stays a note for the team. Edit your reply and the widget shows the new text, marked edited. Delete it and it’s gone for the visitor too.

Discord works the same way. Pick a forum channel and every chat becomes its own post. Pick a text channel and every chat becomes a thread off a card. Visitors see your nickname, and if you’re typing in a Discord thread the visitor sees “Marta is typing…”. Slack doesn’t tell anyone when you type, so neither do we.

Everyone in the channel can answer. Nobody needs a Spookat account for that. /spookat me shows the name visitors see, and lets you change it or answer as the site instead.

why both

Slack is where companies work. Discord is where communities, indie games and developer tools live, and a lot of people who ship spend their day there instead. Picking one would have meant telling half the people we built this for to install something new, which is the exact problem we set out to remove.

Every paid plan gets both. Each site picks one channel. agency can connect several, Slack and Discord mixed, and route chats between them by the visitor’s language, the page they’re on or their country.

the inbox still exists

We didn’t delete the inbox idea. We made it optional.

The dashboard has an inbox with every conversation, assignment, “mine”, notes and search. It stays in sync with the thread both ways. Reply in Slack and the inbox shows it. Reply in the inbox and it lands in the thread. Some people like a screen built only for support. Some days you want to sit down and clear everything at once. It’s there for that.

Optional means nobody on the team has to open it for the product to work.

The same goes for agents. If you plug in your own AI agent on pro, it reads and answers the same conversations through MCP or the reply API. Its messages land in the thread labelled AI, so the team sees every word it says and can take over by simply replying.

what we lean on them for

Slack and Discord already solved a lot of hard problems, and we get those for free.

Notifications on every phone and laptop, with the settings each person already tuned. Threads, so conversations don’t mix. Mentions, so you can pull in the right person with an @. Search. Emoji reactions for “on it”. Presence, so you know who’s around.

Building any of those into our own app would have been months of work for a worse copy.

what it costs us

This choice has real downsides, and we’d rather list them than let you find them.

We depend on platforms we don’t control. Their APIs change. Their rate limits apply. When Slack says slow down on one channel, only that channel waits, and every other site keeps going. The messages are already saved by then, so a slow Slack delays a notification. It never loses a chat.

Their rules apply to what lands there. Once a message is in your Slack or Discord, your workspace’s retention settings decide how long it lives there. Our /privacy page says that plainly, because pretending otherwise would be a lie.

Their limits shape ours. Discord caps message length, so a long reply gets sent in chunks, and every chunk has to follow edits and deletes. Slack’s card layout decides what fits on a card. Neither is hard. Both are work that exists only because we chose to live inside someone else’s app.

We had to get state right. This is the big one. If Slack were the source of truth, every outage, deleted channel or lost webhook would corrupt your history. So it isn’t. Every message from every door (the widget, Slack, Discord, the inbox, the API, an agent over MCP) is saved in Spookat first, and only then copied to the thread, the widget and your webhooks. We never read Slack or Discord history to rebuild anything. The thread is a mirror of what Spookat holds. If someone archives the channel, your conversations are still in Spookat, and you can reconnect a new channel.

visitors who left

A thread-based setup has one obvious gap. Visitors don’t hang around while you finish your meeting.

The widget tells them a real person answers and that the reply waits for them if they close the tab. When they come back, it’s there. They can leave an email in the chat, and on pro and up your thread reply goes out to them by email when they’re gone. You still just reply in the thread.

what we didn’t add

Microsoft Teams, WhatsApp, Telegram and email-as-an-inbox all come up. We started with the two apps where the people we build for already spend their day, and we’d rather do those two properly. If that changes, it’ll be because customers asked, and we’ll say so here first.

The Slack guide and the Discord guide walk through setup step by step.

Answer from where you already are. See how it works.

liked it? get on the list.

invites go out in small batches. when yours lands: 14 days free, no card.

we only email you about your invite and the launch. you can stop them anytime. privacy