import{_ as t,o as s,c as a,ag as o}from"./chunks/framework.CvgP6Fyv.js";const g=JSON.parse('{"title":"Bot Access Control","description":"","frontmatter":{},"headers":[],"relativePath":"getting-started/access.md","filePath":"getting-started/access.md","lastUpdated":1773501089000}'),n={name:"getting-started/access.md"};function i(r,e,l,c,h,d){return s(),a("div",null,[...e[0]||(e[0]=[o('
Memoh uses an ACL (Access Control List) system to control who can interact with your bot. You can configure guest access, whitelist specific users or channel identities, and blacklist others — all from the bot's Access tab.
Bot access is enforced at two levels:
ACL rules can target three kinds of subjects:
| Subject | Description |
|---|---|
| Guest (all) | A global toggle — when enabled, anyone can chat with the bot without being explicitly listed. |
| User | A specific Memoh user account. |
| Channel Identity | A specific identity on an external channel (e.g. a Telegram user, a Discord member). Useful when the person doesn't have a Memoh account. |
When an incoming message arrives, the bot evaluates access in this order:
Blacklist (deny) rules are always checked before whitelist (allow) rules. This means a blacklisted user cannot bypass the block even if guest access is enabled.
Open a bot's Access tab to configure its access control.
Toggle Allow Guest Access to let anyone chat with the bot without an explicit whitelist entry. This is useful for public-facing bots.
When guest access is disabled, only the bot owner, admins, and explicitly whitelisted users/identities can trigger the bot.
The whitelist grants specific users or channel identities permission to chat with the bot.
private, group, or thread.Without source scope, the rule applies globally — the subject can chat with the bot from any channel.
The blacklist denies specific users or channel identities from chatting with the bot. The setup process is the same as the whitelist.
Blacklist rules take priority over whitelist rules and guest access. Use this to block specific users while keeping the bot open to others.
Source scope lets you create fine-grained rules. For example:
Scope fields form a hierarchy: Channel → Conversation Type → Conversation ID → Thread ID. Each level is optional, but a Thread ID requires a Conversation ID, and a Conversation ID requires a Channel.