MemoryLake
Back to all articles
TutorialAugust 24, 2026·13 min read

How to Connect Your Team's Knowledge Base to Slack, Feishu, and DingTalk (2026)

"Nobody reads the wiki" gets filed as a culture problem. The behaviour it describes is closer to a routing problem.

Watch where a question actually goes. Someone types it into a group chat, because that is where their colleagues are and an answer arrives in under a minute. Nobody opens a knowledge base to ask a question. They open one to look something up — a slower, more deliberate act that requires already knowing the thing was written down, and roughly where.

So the knowledge base is not competing with itself. It is competing with a person in a chat window, and it loses every time. The fix is not more documentation or a better search box inside the wiki. It is putting the knowledge base on the other side of an @-mention, in the app where the question was going to be asked anyway.

This covers what that takes on the three platforms MemoryLake's IM connection supports — Slack, Feishu and DingTalk — what each requires from an administrator, and how each behaves once running. For the general shape of shared memory before the plumbing, start with how to set up a shared AI memory for your team. If your material is still scattered across documents, turning project docs into AI memory covers the conversion, which is a separate job from the delivery.

Why a good knowledge base still goes unread

The question and the answer live in different applications

This is the whole thing, and it is mundane. A question is a social act performed in a chat client. Consulting documentation is a solitary act performed in a browser tab. Asking a colleague costs one message; checking the wiki costs a context switch, a search, and the risk of finding nothing.

Teams close that gap with links — pinned messages, a channel bookmark, a bot posting the handbook URL weekly. Each still ends at "now go read this." The switch is intact.

A document answers a page, not a question

Even a well-maintained knowledge base returns documents. The reader does the extraction: skim the page, locate the paragraph, decide whether it is still current, translate it into an answer for the case in front of them.

That step is invisible in planning and enormous in practice, and it is why "we have that documented" coexists so comfortably with the same question arriving monthly. The information is present; the answer is not assembled. Retrieval and memory are not the same operation, the distinction drawn in why RAG isn't memory.

Your chat platform's search is scoped to your chat platform

Slack has invested here and it works, within a documented boundary. Its AI features are, in Slack's words, "backed by the knowledge in your workspace." Answers are "based on relevant information in Slack, rather than sifting through search results," and they "include citations that refer to the source messages or files that informed them."

Two documented constraints matter when your knowledge lives elsewhere. Availability is by plan — automatic search filters are listed from Pro upward, while Search answers appears on Business+ and Enterprise+. And the corpus is your own reachable content: "AI-generated responses only include information available to you (like messages and other content from public channels, and any private channels and direct messages you belong to)."

Reaching outside is a distinct capability: "If you're on the Enterprise+ plan, an Org Owner or Admin can enable enterprise search to include content and information from other sources (like Google Drive, GitHub, and more) in search results." That is a sensible design and it is also the answer to why the assistant in your chat app cannot quote the runbook that lives in your document system.

The material shared in chat is the most contextual and least durable

The most useful artefacts in most workspaces get pasted into chat: the error screenshot, the signed PDF, the spreadsheet someone rebuilt at midnight. Slack counts those inside the same history window — "Files include things like clips, PDFs, documents, images, screenshots, and audio and video files" — and on the free version, "You can view and search messages and files from the last 90 days," with data "more than one year old" deleted.

So the richest layer of your team's knowledge sits in the least permanent place you own, and no wiki update captures it, because nobody thinks of a pasted screenshot as documentation.

Everyone's private assistant has a private context

The workaround people reach for is their own AI subscription: paste in the background, get an answer. It works once, for one person. The context stays in an individual account, so nothing accumulates anywhere shared — the split described in cross-tool memory for knowledge workers, and at organisation scale in enterprise AI forgetting.

What teams try

Pinning the handbook link in every channel. Cheap, and it still ends at a context switch. Pins also become a curated list nobody curates.

A #handbook or announcements channel. Turns the knowledge base into a feed, and feeds are read once, on the day of posting, by whoever was online.

A search bot over chat history. Useful, and bounded to chat: it cannot answer from a document that was never posted.

Buying everyone a personal AI subscription. Solves individual throughput and leaves team knowledge where it was. Support teams feel this sharply — the pattern in when an assistant forgets your support tickets.

Appointing a knowledge owner. Sometimes right, and it concentrates the failure into one person's calendar rather than removing it.

The Fix: Let the Knowledge Base Answer Where the Question Is Asked

The reframe: stop trying to move people to the knowledge base and move the knowledge base to the group chat. Concretely, that means a bot in the channel that answers from a designated body of memory — not from a general-purpose model's generic knowledge — and that writes each exchange back into the same place.

That second half is what separates this from a search box with a chat interface. In MemoryLake's IM connection, the exchanges become memory, so the corpus grows from the questions your team actually asks rather than from a documentation sprint someone has to schedule. Setup is three steps, and the platform differences are all in step two.

Step 1: Add IM connection

In the console, open MemoryLake → Workspaces, open the workspace whose memory you want to expose, switch to the IM tab, and pick your platform. Two prerequisites before you begin: you need the owner or admin role on the team, since members "can neither see nor change integrations," and the workspace needs at least one project plus an agent linked to it.

Add IM connection: pick the chat platform for this workspace
Add IM connection: pick the chat platform for this workspace

Step 2: Enter the app credentials

Each platform issues a different pair, and each has a different approval reality. This is the part worth planning around.

PlatformWhat you pasteWhat it costs you administratively
SlackBot User OAuth Token (xoxb-) + App-Level Token (xapp-)Nothing to review. The docs state it directly: "Nothing on the Slack side requires a review cycle — one person can finish the setup in about ten minutes."
FeishuApp ID (cli_) + App SecretAdministrator rights, and "publishing a version requires admin review." Scopes are inert until then: "Permissions only take effect once a version has been published and approved."
DingTalkClient ID + Client SecretDingTalk administrator rights, because you create the app, request permissions and publish it.

Two notes that save real time. On Slack, creating the app from a manifest configures scopes, event subscriptions, the DM entrance and Socket Mode in one paste — and any later change to scopes or events needs a Reinstall to Workspace before it takes effect. On DingTalk there is an optional third field, an AI card template ID: leaving it empty means one message per answer, while setting it gives character-by-character streaming.

One naming trap worth catching before you request anything: "Feishu and Lark are two separate platforms." Feishu is the China edition, Lark the international one; accounts and apps do not carry across, and which one a given deployment talks to is a deployment-level setting rather than a per-integration choice. Confirm that with your admin before an app gets created in the wrong console.

Enter the app credentials issued by the chat platform
Enter the app credentials issued by the chat platform

Step 3: Create and connect

Choose the agent that answers messages from the chat side, then set the memory scope: one required read-write project the bot retrieves from and writes into, plus any number of read-only projects it may search but never write to.

Choose the agent and the read-write project, then create and connect
Choose the agent and the read-write project, then create and connect

Treat that as the security decision it is. The documentation says so outright — "The read-write project is an authorization decision" — because everyone who can reach the bot both writes into that project and can read what is already in it. Point it at a project you meant to share with the team, not the one holding sensitive material. Then create the integration and confirm the card shows Connected.

Three honest limits. The bot does not read your chat history: on every platform it only receives messages that mention it, so it cannot see other conversations in the channel or group. It answers from the project you connected, which means the quality of week one is the quality of what you loaded. And it is context rather than enforcement — for anything that must be true, a policy or a check is the guarantee, not a memory layer.

What differs by platform once it is running

The mechanics diverge in ways that surprise teams on day one.

Getting the bot's attention. In group chats all three require an @-mention — unmentioned messages are never delivered. DMs differ: on Slack, members find the app under Apps in the sidebar and ask with no @ needed; Feishu DMs are governed by the app's availability scope; DingTalk's integration is documented around group use.

Where the answer appears. Slack replies in a thread under your question, keeping a busy channel readable. Feishu quotes your message and @-mentions you back, which is what stops the answer getting lost in a fast group.

How answers stream. Feishu streams word by word. Slack streams by editing the same message in segments — the (edited) marker is expected, and the refresh rate slows after roughly the first twelve seconds. DingTalk sends one message per answer unless you supplied an AI card template ID.

Sending a file or a screenshot. Slack needs the file and the mention in one message: "A file posted to a channel on its own (without a mention) never reaches the bot — Slack does not deliver it." Feishu's documented path for a group document is to post the file, then reply to that message and @-mention the bot. DingTalk takes @bot plus text plus image as a single rich-text message.

How long context lasts. Slack channels are per-thread with no expiry — returning to the same thread a day later still works. Feishu and DingTalk groups are topic-scoped: after 8 minutes of silence the next question starts a new topic, and that window stretches to 30 minutes right after a file or screenshot so follow-ups about the same image keep working.

Starting over. On Feishu and DingTalk, send /new. On Slack the reset word has no slash — the client intercepts anything starting with / as a slash command, so it is new on its own in a DM, or @bot new inside a thread.

Who is allowed in. Access is decided on the chat platform's side, not by a second allowlist. Slack Connect users from external organisations are silently ignored — no quota use, no memory writes. DingTalk handles messages only from members of your own organisation. On Feishu, DMs follow the app's availability scope and groups follow group membership.

Privacy inside a group. On all three, conversation context is per-person: in the same group or thread, one person's exchange never appears in another's. Project memory is shared, which is the point of connecting it at all.

Best practices for a knowledge base that answers

Connect a project, not everything you own. Start with one project scoped to what the team should collectively know, and add read-only projects for material the bot may cite but never modify.

Seed it with the questions you already answer, not your document library. Twenty recurring questions with their answers and reasons beat two hundred pages, because the reason is what survives when specifics change.

Write one claim per entry. Short, self-contained entries retrieve cleanly. Long documents get returned in full and push the extraction work back onto the reader — the same failure the wiki had.

Pick the platform you actually live in. The integration is worth nothing if questions arrive somewhere else. A perfect Slack setup is dead weight in a company that runs on DingTalk.

Tell people the two rules on launch day. Mention the bot every time, including thread replies, and attach files in the same message as the mention. Nearly every "it ignored me" report traces back to one of those.

Ask an admin first on Feishu or DingTalk. Both need publishing and permission review, so a request submitted Monday is not a bot running Monday. Slack is the one you can finish yourself in an afternoon.

Keep judgement with people. The bot returns what the team has established; what to do about a case nobody documented is still a human call. That boundary is drawn in what AI memory actually is.

Conclusion

A knowledge base fails at the point of use, not the point of writing. Questions get asked in group chat because that is where colleagues are, and documentation asks people to leave that window, search, and assemble an answer themselves. Chat platforms have closed part of the gap — Slack's AI answers work well over Slack content, on the plans that include them, for the content each person can access — but knowledge living in documents rather than messages falls outside that scope unless you are on the tier that reaches external sources.

Putting the knowledge base behind an @-mention removes the context switch and the assembly step together, and writing each exchange back means the corpus grows from real questions instead of a documentation sprint. The setup is short; the parts to plan are administrative. Decide who can approve an app on Feishu or DingTalk, and which project you are comfortable making readable to everyone who can reach the bot. Get those two right and the wiki stops being something people are asked to read.

Frequently asked questions

Why doesn't anyone read our internal wiki?

Usually because the question and the documentation live in different applications. Asking a colleague costs one message and returns an answer; the wiki costs a context switch, a search, and the work of turning a page into an answer for your case. That gap is structural, so reminders don't close it.

Can Slack's AI search our Google Drive or Notion?

Only on the plan that includes it. Slack's documentation notes that on Enterprise+, an Org Owner or Admin can enable enterprise search to include content from other sources like Google Drive and GitHub in search results. Otherwise AI answers are based on relevant information in Slack, limited to the content each person can access.

Does the integration work with Lark, or only Feishu?

The documented integration is Feishu, and the two are separate platforms — Feishu is the China edition, Lark the international one, with accounts and apps that do not carry across. Which one a deployment talks to is a deployment-level setting rather than something chosen per integration, so confirm it with your team admin before creating an app.

What credentials does each platform need?

Slack needs a Bot User OAuth Token starting with xoxb- and an App-Level Token starting with xapp-. Feishu needs the app's App ID, which starts with cli_, and its App Secret. DingTalk needs the app's Client ID and Client Secret, with an optional AI card template ID if you want character-by-character streaming.

Do we need an administrator to approve this?

On Slack, no — the documentation states that nothing on the Slack side requires a review cycle and one person can finish in about ten minutes, though companies that gate app installs will still need an admin for that step. Feishu requires publishing a version with admin review, and permissions do not take effect until a version is published and approved. DingTalk requires administrator rights to create, request permissions for, and publish the app.

Can group members see each other's questions?

Conversation context is per-person, so in the same group or thread one person's exchange never appears in another's. Project memory is shared: anything written into the read-write project is retrievable by everyone who can reach the bot, which is why that project is described as an authorization decision.

What happens to our memory if we remove the integration?

Deleting an integration clears session records, identity mappings and session attachment references, irreversibly. Memory already written into projects and files already imported are not deleted — they belong to the project rather than the connection. For a temporary pause, the switch on the integration card is the safer option.