Bots de MAX
Documentación: v0.25.0
max bot usa el Bot API oficial de MAX con el token del bot. Es independiente de tu cuenta personal: tiene nombre, chats y token propios. max … sin bot utiliza tu cuenta personal (Guía de uso).
Crea el bot en business.max.ru. MAX solo permite bots a organizaciones verificadas, empresarios individuales y autónomos registrados; todos pasan moderación.
Consulta la Referencia para todas las opciones.
Primer minuto
max sales bot auth set # токен — в скрытом вводе
max sales bot me # какой это ботauth set comprueba el dueño del token con MAX antes de guardarlo. Una errata no sobrescribe el token válido.
Obtener el ID del chat
MAX no proporciona una lista completa de chats del bot. Obtén el ID de sus operaciones o actualizaciones.
-
Conversación con una persona: usa
user:<номер>. La respuesta de envío incluyechatId. -
Grupo o canal: añade el bot y consulta actualizaciones:
max sales bot api get-updates --limit 10El ID aparece en
chat_id. Sin novedades espera hasta 30 segundos;--poll-timeout 0evita esperar. MAX no entrega otra vez estas actualizaciones. No funciona con un webhook configurado.
Abre el chat con max sales bot chats show y su ID para aprender el título y usarlo después. chats list muestra todos los chats vistos.
- Los IDs de grupos y canales son negativos.
- Un número positivo suele ser una persona. Usa
user:<номер>; sinuser:, MAX lo interpreta como chat y devuelve «no encontrado», código6, con una indicación demax.
Varios bots
El nombre elegido va como primera palabra, igual que un perfil personal:
max sales bot auth set
max support bot auth set
max support bot messages send user:4815162342 "Ваша заявка принята"
max bot list --check # все имена с токеном бота и какой бот за каждымSin nombre se usa defaultProfile, o default si falta: max bot me. MAX_PROFILE selecciona para toda la sesión del terminal.
Token
El token se guarda en el llavero del sistema bajo bot:<имя>, separado del personal. Sin llavero, se guarda en archivo 0600.
max sales bot auth show # откуда взят токен и какой это бот
max sales bot auth remove # забыть токенMAX_BOT_TOKEN prevalece para CI. auth set no guarda el token de esa variable.
Mensajes
Usa ID para chats, user:<номер> para personas, o título de un chat conocido:
max sales bot messages send "Команда продаж" "Сборка готова"
max sales bot messages send user:4815162342 "Здравствуйте"
max sales bot messages send "Команда продаж" "**Итоги недели** в закрепе" --md
max sales bot messages send "Команда продаж" "Принято" --reply-to mid.0000019a7f3c21de
echo "Текст из трубы" | max sales bot messages send "Команда продаж" ---silent evita notificaciones. Máximo 4.000 caracteres. user:4815162342 y mid.0000019a7f3c21de son ejemplos ficticios; sustituye tus IDs.
Archivos
--file adjunta desde disco; detecta imagen, vídeo y audio por extensión, y lo demás como documento. --photo envía foto, --voice Ogg Opus como nota de voz, --as-file vídeo como documento. Archivos ocultos o de directorios de max requieren --allow-any-file. El texto es opcional:
max sales bot messages send "Команда продаж" "Отчёт за неделю" --file report.pdf
max sales bot messages send "Команда продаж" --file screenshot.pngPrimero se carga y después se envía. Mientras MAX procesa vídeo o archivos grandes, puede indicar «no listo»; se espera hasta cuatro veces, unos nueve segundos. Si la carga falla, no se envía nada.
uploads put solo carga y muestra un objeto para attachments en bot api send-message:
max sales bot uploads put report.pdfmax sales bot messages list "Команда продаж" --limit 20
max sales bot messages show "Команда продаж" mid.0000019a7f3c21de
max sales bot messages edit "Команда продаж" mid.0000019a7f3c21de "Исправленный текст"
max sales bot messages delete "Команда продаж" mid.0000019a7f3c21de --allow-dangerous
max sales bot messages pin "Команда продаж" mid.0000019a7f3c21de --notify
max sales bot messages unpin "Команда продаж" mid.0000019a7f3c21deIndica siempre chat y mensaje, coherente con tg, cuyos IDs solo son únicos dentro del chat. No se modifica un mensaje de otro chat. --html y --md son incompatibles. Borrar pide confirmación; --allow-dangerous acepta. Fijar es silencioso salvo --notify. El envío devuelve mensaje y operationId del registro.
Si se corta la conexión al enviar, no se repite: código 14, resultado desconocido. Comprueba el chat antes de reintentar.
Chats
chats list muestra chats vistos por este bot en este ordenador: abiertos con chats show, enviados o leídos. MAX no tiene una lista completa.
max sales bot chats list
max sales bot chats show "Команда продаж"
max sales bot chats action "Команда продаж" typing # typing, photo, video, voice, file
max sales bot chats leave "Команда продаж" # вернуть бота может только админ чатаMiembros y administradores
El bot necesita ser administrador con permiso para cada acción.
Primero permite añadirlo a grupos. MAX lo impide por defecto, tanto desde la aplicación como con max chats members add (participants.filter.out). Actívalo en business.max.ru: bot → ⋮ → Ajustes → Privacidad (Documentación MAX). Añádelo y conviértelo en administrador en la aplicación. Las comprobaciones necesitan lectura; sin ella no recibe mensajes del grupo. También puedes darla con max chats admins add "Поход" <номер бота> --can read,members,delete.
max sales bot chats members list "Команда продаж" --limit 50
max sales bot chats members add "Команда продаж" 4815162342 2342481516
max sales bot chats members remove "Команда продаж" 4815162342 --block
max sales bot chats admins list "Команда продаж"
max sales bot chats admins add "Команда продаж" 4815162342 --can read,pin --title "Дежурный"
max sales bot chats admins remove "Команда продаж" 4815162342members list devuelve hasta 100 personas y marker; sigue con --marker. --can usa los permisos de max chats admins add: read, members, admins, info, pin, link, edit, delete. read permite leer mensajes del grupo.
Copia local
Todo lo leído, enviado o recibido se guarda aquí para leer y buscar sin conexión:
max sales bot messages list "Команда продаж" --offline
max sales bot messages show "Команда продаж" mid.0000019a7f3c21de --offline
max sales bot messages search "итоги недели"La búsqueda usa palabras, mejores coincidencias primero; --newest prioriza recientes. Exige todas las palabras y admite "фраза", -слово, а OR б, from:, chat:, after:, before:, has:, igual que max messages search --language legacy, corrigiendo erratas. Para una búsqueda estricta en el archivo compartido, usa la búsqueda normal con in:bots.
Descarga historial anterior:
max sales bot store fetch "Команда продаж" # до 1000 сообщений, новые сначала
max sales bot store fetch "Команда продаж" --last 500 # пока не будет 500 последних
max sales bot store fetch "Команда продаж" --since-time 7d # за последние семь днейAl repetir continúa donde terminó sin pedir lo descargado. Espera un segundo entre solicitudes (--pause), con 100 mensajes por página (--page-size).
Las órdenes normales siguen consultando MAX, que conserva todo el historial. Borrados propios o detectados por watch eliminan mensajes locales; si watch estaba detenido, la copia no conoce el borrado.
Busca personas por ID, @username o nombre parcial. Si coinciden dos, max muestra ambas y pide ID.
max sales bot contacts show @ann # где писала, и её личный чат с ботом
max sales bot contacts show @ann --refresh # сначала перечитать личный чат у MAX
max sales bot messages search --from @ann # всё, что она написала
max sales bot messages search "счёт" --from @ann --from Борис
max sales bot messages between @ann Борис --limit 20between muestra chats donde todas las personas escribieron, últimos 20 mensajes de cada uno, antiguos primero. Compartido significa visto por el bot, no pertenencia comprobada con MAX.
Cada bot ve solo su copia. Leer otras requiere permiso y petición explícita:
max shop config set --bot readOtherBots true # боту shop можно читать всех ботов
max shop config set --bot readOtherBots news,support # или только этих
max shop bot messages search заказ --bots news # и тогда — явно, в команде
max shop bot contacts show @ann --all-bots # все, кого разрешено--all-bots, --bots funcionan con messages search, contacts show, messages between. Sin readOtherBots rechazan con 5 y una orden para permitirlo. En max <имя> bot mcp, all_bots y bots solo aparecen cuando está permitido.
Actualizaciones
max sales bot watch # новые сообщения, до Ctrl-C или --timeout
max sales bot watch --events --jsonl # и всё остальное: правки, удаления, кнопки, кто вошёл и вышел
max sales bot watch --types message_created,message_editedwatch guarda antes de imprimir: mensajes, botones para callbacks answer, incorporaciones y salidas para las reglas. Sin --events, solo nuevos mensajes. Con él identifica message, edit, delete, callback, joined, left, added, removed, started, other. --types acepta nombres MAX. La siguiente ejecución continúa desde la anterior. No funciona con webhook.
Los eventos consumidos no se entregan a otro lector mediante get-updates.
Comprobar las reglas del chat
Un bot administrador puede aplicar las reglas de max chats moderate personal (Grupos), con reglas propias:
max sales bot chats rules set -72894839451 invites remove # приглашения в чужие чаты — удалять автора
max sales bot chats rules set -72894839451 consent.remove allow # без вопросов
max sales bot chats moderate -72894839451 # проверить, что нового
max sales bot chats moderate -72894839451 --dry-run # только показатьLee mensajes desde la última revisión, un día inicialmente, e incorporaciones. Actúa según reglas y consentimiento. Diferencias:
- Las expulsiones impiden volver por invitación. Para la persona, el enlace parece caducado; para otros funciona. Un administrador puede añadirla manualmente (
max chats members add).--no-banevita ese bloqueo. Solo funciona donde hay enlace de invitación. - Las incorporaciones vienen de
watch. MAX entrega cada evento a un lector; la comprobación usa lo guardado. Sinwatch, solo comprueba mensajes y lo indica. - No conoce antigüedad de cuentas, ausente del Bot API; esa regla no se aplica.
Necesita permisos para borrar mensajes y expulsar miembros.
Comentarios
Bajo publicaciones de canales: primero ID de publicación (mid.…), después del comentario:
max sales bot comments list mid.0000019a7f3c21de --limit 20
max sales bot comments get mid.0000019a7f3c21de 42
max sales bot comments send mid.0000019a7f3c21de "Спасибо за вопрос"
max sales bot comments edit mid.0000019a7f3c21de 42 "Исправлено"
max sales bot comments delete mid.0000019a7f3c21de 42Se aplica la misma lista de destinatarios del canal.
Botones
Al pulsar, el bot recibe callback_id y responde:
max sales bot callbacks answer f9LHodD0cOL5 --notification "Готово"
max sales bot callbacks answer f9LHodD0cOL5 --text "Заказ подтверждён"--notification muestra un aviso a quien pulsó; --text cambia el texto del mensaje. El ID no permite conocer el chat, así que la lista de destinatarios no se aplica a esa respuesta.
Menú de comandos
Lo que aparece al escribir /:
max sales bot commands list
max sales bot commands set start=Начать help=Помощь "report=Отчёт за день"
max sales bot commands clearset reemplaza el menú completo. Cada entrada es имя=описание; descripción opcional.
Webhooks
MAX envía las actualizaciones a esa dirección. Mientras exista, no puedes recibirlas con get-updates.
max sales bot webhooks list
max sales bot webhooks set https://bot.example.ru/max --secret-stdin --types message_created,bot_started
max sales bot webhooks delete https://bot.example.ru/max- HTTPS en puerto 443 con certificado aceptado por MAX.
- Una dirección nueva no reemplaza la antigua; recibe ambas.
setrechaza si hay otra. Elimínala o usa--addsi necesitas dos. --secret-stdinpide secreto sin mostrarlo o lee una tubería. MAX lo envía enX-Max-Bot-Api-Secretpara identificarlo; nunca en argumentos.
Destinatarios permitidos
El bot respeta los ajustes del perfil:
readOnly: solo leer.allow:send,edit,delete,pin,groupspara miembros/ajustes,profilepara menú,readpara actualizaciones. Acciones sin permiso propio, como webhooks, se prohíben si hay lista.
Cada bot tiene su lista:
max sales bot recipients add "Команда продаж"
max sales bot recipients list
max sales bot recipients remove "Команда продаж"
max sales bot recipients clear # писать можно снова в любой чатSin lista permite cualquier destino; con ella rechaza otros con 7 y la orden para añadir.
Cada envío, edición, borrado o fijado se registra:
max sales bot sends listIncluye chat, acción, resultado y longitud, nunca texto. Toda escritura, incluido bot api, pasa por lista y registro. No hay límite horario hasta configurarlo en bot con max <имя> config set --bot sendsPerHour 200 (Configuración).
Cualquier operación API
max bot api <операция> expone todas las operaciones, generadas de la especificación oficial por cli-core. La construcción de comandos y validación de entradas se comparten con Telegram; al actualizar la especificación aparecen las nuevas:
max sales bot api get-my-info
max sales bot api get-subscriptions
max sales bot api answer-on-callback --callback-id f9LHodD0cOL5 --body '{"notification": "Готово"}'
max sales bot api send-message --user-id 4815162342 --body-file message.jsonRuta y consulta se pasan como opciones, cuerpo JSON en --body, --body - o --body-file. --body-file - también lee stdin. El parámetro nativo timeout se llama --poll-timeout; la opción global --timeout limita el comando completo. La opción compartida --store-token <profile> no está disponible para los métodos MAX actuales: todos la rechazan antes de ejecutar la operación. Se valida antes de enviar; errores indican campo y tipo esperado sin exponer valor. Consulta Cobertura API.
Scripts y agentes
--json imprime datos en stdout y errores en stderr con código:
| Código | Significado |
|---|---|
4 | Token ausente o rechazado |
5 | Solo lectura o acción fuera de allow |
6 | Chat desconocido o persona sin user: |
7 | Destino fuera de la lista |
8 | Límite sendsPerHour alcanzado |
14 | Resultado de escritura desconocido |
El formato coincide con cuentas personales. IDs mayores que 2^53 son cadenas para conservar cifras.
--trace y --record muestran solicitudes, tipo/tamaño/estado de cargas sin URL ni nombre. Fallos se guardan en max runs list (Diagnóstico).
Certificado
platform-api2.max.ru utiliza una raíz del Ministerio ruso de Desarrollo Digital ausente en Node. max la añade solo a sus solicitudes, sin modificar el sistema. Se identifica como max-cli/<версия>.
Bot para un agente (MCP)
max <имя> bot mcp expone el bot como max mcp expone tu cuenta:
claude mcp add sales-bot -- max sales bot mcp
max sales bot mcp config # запись для Claude Desktop, Cursor и другихEl perfil determina acceso a detalles, chats, mensajes, búsquedas, personas, miembros, administradores, comentarios, menú, registro y destinatarios. Si permite escribir, también envíos, ediciones, fijados, escritura en curso, comentarios, respuestas a botones, borrados, miembros y moderación (max_bot_chats_moderate). max_bot_status indica perfil, fuente del token, dueño y herramientas de escritura.
readOnly: true: solo leer.allow: solo acciones indicadas;"allow": ["send"]permite envíos y comentarios, no editar ni borrar.- Borrar mensajes o comentarios muestra un formulario;
--allow-dangerousal iniciar elimina esa confirmación. - Las acciones que las reglas exigen confirmar se muestran en un formulario conjunto.
--confirm-send: cada escritura requiere tu formulario.
--allow-send, --allow-delete, --allow-moderate ya no otorgan permisos: se aceptan con aviso.
Cada escritura aplica comandos, destinatarios, readOnly, allow y registro. El agente no accede al token ni webhooks; solo lee destinatarios, menú y administradores. Tampoco puede salir de chats, enviar archivos ni usar bot api.
Con --md, el bot usa las reglas MAX: __жирный__, ++подчёркнутый++, ^^выделенный^^, enlaces, código, encabezados y citas. El conversor genera HTML seguro con texto y direcciones escapados; es una representación interna, y el argumento --md sigue siendo Markdown.