El menú /setup: guía completa de la interfaz de Telegram de X Bot
La forma más rápida de configurar X Bot es el menú interactivo /setup. Envuelve cada comando de administrador detrás de una interfaz clicable y editable en el lugar — sin comandos slash que memorizar.
Camino más rápido: añade el bot a tu grupo, escribe
/setup, toca 🚀 Inicio rápido y sigue cuatro indicaciones. Tendrás un calendario de reportes diarios funcionando sobre un filtro real en menos de dos minutos.
Cómo se ve /setup

╔══════════════════════════════════════════════╗
║ ⚙️ Bot Setup ║
║ ║
║ Pick a section. Settings save instantly. ║
║ ║
║ Current state ║
║ ─ Project: MyToken ║
║ ─ Filter: 3 keywords · 2 cashtags ║
║ ─ Schedule: daily 18:00 UTC ║
║ ─ Plan: FREE — 47/100 credits left ║
╠══════════════════════════════════════════════╣
║ [ 🚀 Quick Start ] ║
║ [ 🎯 Filters ] [ ⏰ Schedule ] ║
║ [ 📊 Reports ] [ 🎨 Customization ] ║
║ [ 👥 Admins ] [ 💳 Buy Credits ] ║
║ [ ℹ️ About ] ║
║ [ ✕ Close ] ║
╚══════════════════════════════════════════════╝Cada pantalla muestra tu estado actual en la parte superior para que sepas qué está configurado antes de cambiar nada. Cada cambio se guarda al instante en la base de datos — no hay un botón "guardar" que olvidar.
Asistente de inicio rápido
Toca 🚀 Inicio rápido para un flujo lineal de cuatro pasos que lleva un chat nuevo de "nada configurado" a "primer reporte programado" con el mínimo número de indicaciones. Omitir y Salir siempre están disponibles — un asistente parcialmente completado nunca te bloquea, la configuración simplemente se queda en sus valores predeterminados.

Los cuatro pasos:
| Paso | Pregunta | Guarda en |
|---|---|---|
| 1 | Nombre del proyecto | Configuración ProjectName (usada en reportes, tarjetas del leaderboard, DM de administradores) |
| 2 | Qué rastrear en X — cuentas, cashtags o palabras clave | El arreglo from, cashtags o keywords del filtro predeterminado |
| 3 | Cuándo publicar el reporte diario — 4 horas predefinidas o HH:MM personalizado | Un trabajo programado vinculado a tu chat |
| 4 | Listo — pantalla de resumen con sugerencia de /recreate para previsualizar ahora | (ninguno) |
El menú completo
Cada botón de nivel superior abre una pantalla enfocada. Profundiza libremente — cada pantalla tiene ← Atrás al nivel anterior y ✕ Cerrar para descartar.
🎯 Filtros
Qué publicaciones de X obtiene el bot en cada ejecución programada.

Toca cualquier categoría para profundizar. Excluir es de estilo casilla de verificación — un toque alterna "excluir retweets / respuestas / quote tweets".
Filtros nombrados (avanzado) te permite mantener múltiples filtros funcionando en el mismo chat — útil cuando gestionas varios clientes en un solo grupo. Cada filtro nombrado tiene su propio botón de eliminar por fila con un toque de confirmación. Toca ➕ Añadir filtro nombrado para enviar una definición de una sola línea a través del menú (name from:@x keywords:y cashtags:$Z mention:@m exclude:retweet ignore:@spam). Necesitas al menos uno de from / keywords / cashtags / mention.
Una pantalla de categoría se ve así — una breve descripción de lo que hace la categoría, el valor actual y las acciones Añadir / Eliminar / Borrar todo:

Cuando tocas ➕ Añadir, el menú pasa a modo de entrada — escribe tu respuesta como un mensaje normal, y la pantalla se redibuja automáticamente con un banner de confirmación ("✓ Añadidos 2 cashtags: $BTC, $ETH").
➕ Add cashtags
Send the cashtags to track, space-separated.
The $ is optional.
Example: $BTC $ETH SOL
Type your reply as a normal message,
or tap Cancel to go back.
[✕ Cancel]⏰ Calendario
Cuándo se ejecuta el bot y publica el reporte diario.

Cuatro presets diarios cubren la mayoría de las comunidades. El preset actualmente activo obtiene un prefijo ✓ en su etiqueta. Hora personalizada pide HH:MM. Días específicos acepta 14:30 Mon Wed Fri. Cron acepta expresiones cron estándar (p. ej. cron(0 12 ? * MON-FRI *)). El bot impone una frecuencia mínima de 12 horas para mantener los costos predecibles.
Si tocas un preset de calendario en un chat sin filtros, el menú se niega con un error amistoso que apunta de vuelta a 🎯 Filtros — el bot no programará un chat que no tiene nada que obtener.
📊 Reportes y período
📊 Reports & Period
Period: 01/05/2026 7days
Start: 2026-05-01
End: 2026-05-07
The bot fetches X posts inside this window on
every scheduled run. Without a period
configured, the bot uses a rolling 24-hour
window.
[📆 Set period] [🗑 Clear period]
[⚡ Generate report now]
[📰 Show last report]Establecer período delimita los reportes a una ventana específica (p. ej. una competencia que dura una semana). Formato DD/MM/YYYY Ndays o Nweeks. Borrar período revierte a la ventana móvil predeterminada de 24 h. Generar reporte ahora dispara la misma Step Function que usa el cron — útil para vistas previas instantáneas. Mostrar último reporte apunta a /report (que vuelve a publicar la imagen en caché más reciente sin costo de créditos).
🎨 Personalización
Metadatos del proyecto que aparecen en los reportes y el leaderboard público.
🎨 Customization
🏷 Name: MyToken
✏️ Description: A community-driven DeFi project
📝 Long desc.: (multi-paragraph project pitch…)
🖼 Logo: ✓ uploaded
🔗 URLs: 2 URLs
💬 Topic: Forum topic "Reports"
[🏷 Name] [✏️ Description]
[📝 Long desc.][🖼 Logo]
[🔗 URLs] [💬 Topic]
[📈 Leaderboard customization]El sub-árbol de Leaderboard expone:
| Configuración | Formato |
|---|---|
| 🏆 Puntos | Cinco números separados por espacios: likes retweets replies quotes views (p. ej. 5 1 20 10 0.01) |
| 🎨 Colores | Cinco colores hexadecimales, mismo orden |
| 🔢 Conteo superior | Número entero 1..10 — cuántos usuarios aparecen en el leaderboard |
| 📛 Título superior | Texto libre. Sufijo opcional |#hex establece un color personalizado (p. ej. Top contributors|#FF8800) |
| 🥇 Título de mejor tweet | Igual |
| 📊 Título de engagement | Igual |
Las cargas de logo usan el manejador de fotos existente del bot — toca 🖼 Logo, luego envía la imagen como foto de Telegram (no como archivo). El bot la redimensiona y la sube al CDN del sitio web.
Tema te indica enviar /set_topic desde dentro del tema de foro deseado. El menú no puede capturar el message_thread_id desde un botón de callback, así que esto permanece como una superficie de comando slash.
👥 Administradores y notificaciones
Lista los chats que los usuarios designaron para recibir DM privados sobre agotamiento de créditos, errores de obtención y advertencias de chat no encontrado. Añadir administradores todavía requiere /add_admin @user1 @user2 desde el chat — el analizador de menciones @ de Telegram solo se activa en mensajes reales, no en callbacks.
👥 Admins & Notifications
Currently:
• Alice (@alice_admin)
• Bob (@bob_dev)
To add admins, send /add_admin @user1 @user2
in this chat.
[🗑 Clear notification list]💳 Comprar créditos y plan
Visualización de plan + saldo, más los botones que impulsan los flujos de compra y gestión. La pantalla se renderiza de forma diferente según el plan actual del chat:
Chat FREE:
💳 Buy Credits & Plan
Plan: FREE
Used this month: 47 / 100
Remaining: 53
Resets: 2026-06-01
[💰 Buy credits / upgrade] [🛠 Manage subscription]
[📊 Usage this month]Chat con suscripción PRO:
💳 Buy Credits & Plan
Plan: PRO (subscription) ✓
Unlimited fetching with Stripe metering above 1 000 / month free.
[💰 Buy credits / upgrade] [🛠 Manage subscription]
[📊 Usage this month]Chat con créditos PRO (comprados con ETH):
💳 Buy Credits & Plan
Plan: PRO (credits)
Credits remaining: 4 152
Total purchased: 5 000
[💰 Buy credits / upgrade] [🛠 Manage subscription]
[📊 Usage this month]El botón 💰 Comprar créditos / actualizar publica una tarjeta de opciones de pago debajo del menú. Las opciones que ofrece el bot dependen del plan actual:
- FREE → tanto 💳 Pagar con tarjeta de crédito (suscripción Stripe) como 🪙 Pagar con ETH (paquete de créditos).
- PRO créditos → ambas opciones se muestran. ETH recarga el saldo existente; Stripe agrega una suscripción encima (los créditos ETH existentes permanecen y se gastan primero por cada obtención).
- PRO suscripción → sin opciones de compra. El bot responde con un mensaje de "ya existe una suscripción" y apunta a 🛠 Gestionar para ir al portal de Stripe.
El botón 🛠 Gestionar suscripción abre el Portal de Clientes de Stripe en tu navegador — ahí es donde actualizas tu tarjeta, cancelas o descargas facturas. Solo tiene sentido cuando tienes una suscripción activa de Stripe.
La subpantalla 📊 Uso este mes desglosa fetched_posts y fetch_attempts para el mes en curso y hoy — útil para detectar fallos silenciosos (muchos intentos, cero publicaciones → probablemente 402s o consultas vacías) y para previsualizar tu próxima factura de Stripe cuando te acercas al umbral de 1000 publicaciones.
Comprar + gestionar también son accesibles como los comandos slash heredados
/buyy/subscription. El comportamiento es idéntico; los botones del menú solo te ahorran escribir.
📡 Retransmisión automática de publicaciones de X
Reenvía publicaciones de cuentas de X seleccionadas al chat tan pronto como se publican — separado del reporte programado. Útil cuando un proyecto quiere que los administradores de la comunidad vean los tweets de la cuenta oficial en tiempo real sin revisar X.
📡 X Posts Auto-relay
Forward posts from X accounts to this chat as soon
as they're published. Posts can take up to 5
minutes to appear here after the original was
posted on X.
3 active relays:
▶️ @MyTokenOfficial (4/10 today)
▶️ @MyTokenCEO (1/10 today)
⏸ @MyTokenSupport (0/10 today)
[ ▶️ @MyTokenOfficial ]
[ ▶️ @MyTokenCEO ]
[ ⏸ @MyTokenSupport ]
[ ➕ Add Account ]Cada retransmisión sondea cada 5 minutos a través de la API de X. Las publicaciones nuevas (desde el último reenvío exitoso) se envían al chat como URLs simples — Telegram renderiza automáticamente la tarjeta de vista previa de X para que el cuerpo de la publicación sea visible.
Pantalla de gestión por retransmisión permite al operador ajustar el comportamiento:
📡 X Posts Auto-relay › @MyTokenOfficial
State: ▶️ Active
Today: 4/10 forwarded
Polls every: 5 min
Post types to forward
☐ Retweets
☐ Replies (to other users)
✅ Quote tweets
✅ Thread continuations (self-replies)
Topic: (default — top of chat)
[ ⏸ Pause ] [ ✏️ Cap: 10/day ]
[ ☐ Retweets ] [ ☐ Replies ]
[ ✅ Quote tweets ] [ ✅ Thread ]
[ 💬 Set topic ] [ 🧹 Clear topic ]
[ 🗑 Delete relay ]| Configuración | Qué hace |
|---|---|
| Límite (1–100/día) | Máximo de reenvíos por chat por día UTC — al alcanzarlo, la retransmisión deja de reenviar silenciosamente hasta la medianoche UTC. Predeterminado 10. |
| Pausar / Reanudar | Desactiva el calendario de sondeo para esta retransmisión; restaurarla la recrea al instante. |
| Retweets | Cuando está en ✅, se reenvían los retweets de la cuenta retransmitida. Predeterminado desactivado. |
| Respuestas | Cuando está en ✅, se reenvían las respuestas a otros usuarios. Predeterminado desactivado. |
| Quote tweets | Cuando está en ✅, se reenvían los quote tweets. Predeterminado activado. |
| Continuaciones de hilo | Cuando está en ✅, se reenvían las auto-respuestas (un usuario respondiendo a sus propios tweets) — cubre los hilos de Twitter. Predeterminado activado. Desactívalo si solo quieres la cabeza de cada hilo. |
| Tema | ID opcional de tema de foro de Telegram. Cuando está configurado, la retransmisión solo publica en ese tema en lugar del hilo principal. |
Auto-limpieza: si Telegram devuelve un error de "chat desaparecido" (el bot fue expulsado / bloqueado), la retransmisión elimina automáticamente su calendario de sondeo y configuración almacenada. Sin fugas.
Límite estricto: 10 retransmisiones por chat. Ajusta la constante subyacente si necesitas más.
ℹ️ Acerca de
ℹ️ About this chat
Chat ID: -1002593612414
Plan: PRO ✓
Schedule: daily 18:00 UTC
Project: MyTokenUn panel de diagnóstico para solicitudes de soporte.
Cómo se relaciona /setup con los comandos slash
/setup es aditivo — cada comando slash existente sigue funcionando exactamente como antes. El menú envuelve las mismas primitivas (buildQueryFromComponents, saveXBotSetting, createScheduleRule, etc.), así que el comportamiento es idéntico entre las dos superficies. Los usuarios avanzados pueden seguir escribiendo /add_keywords DeFi airdrop por velocidad de memoria muscular; los recién llegados obtienen una superficie clicable amigable.
Tres comandos fundamentalmente no se pueden mover a botones de menú porque necesitan contexto de texto plano + entidades de mensaje de Telegram que los callbacks no llevan:
| Comando | Por qué se queda |
|---|---|
/set_topic [name] | Captura el message_thread_id del tema en el que se envió el mensaje — un botón no tiene contexto de hilo |
/add_admin @user | Depende de las entidades de mención verificadas de Telegram para la verificación de administrador de chat |
/set_x_filtering | Comando slash heredado para añadir un filtro nombrado; el ⤴ Filtros nombrados → ➕ Añadir filtro nombrado del menú hace lo mismo |
Recetas de configuración
Objetivos comunes → rutas exactas del menú. Cada receta toma uno o dos minutos de clics.
"Rastrear solo publicaciones originales (sin retweets, sin respuestas)"
La mayoría de las comunidades quieren que el leaderboard premie el contenido original, no las republicaciones.
/setup → 🎯 Filtros → 🚫 Excluir → toca Retweets y Respuestas para que ambos muestren ✅. Listo. Las futuras obtenciones envían -is:retweet -is:reply a la API de X y los quote tweets se mantienen.
"Premiar las respuestas más que los likes (construcción de comunidad)"
Puntos predeterminados: likes 1×, retweets 2×, respuestas 1.5×, quotes 3×, vistas 0.001. Para favorecer la conversación:
/setup → 🎨 Personalización → 📈 Personalización del leaderboard → 🏆 Puntos → envía:
1 1 5 3 0.001Las respuestas ahora pesan 5× — la discusión sustantiva supera a los likes de paso.
"Ejecutar reportes dos veces al día"
El calendario se dispara como máximo una vez al día por defecto. Para obtener un reporte de fin de UE y fin de EE. UU.:
/setup → ⏰ Calendario → 🔧 Expresión cron → envía:
cron(0 14,22 ? * * *)Dos disparos/día a las 14:00 + 22:00 UTC. La verificación de frecuencia mínima de 12 horas impone ≥ 12h de espaciado automáticamente — ventanas más estrechas se rechazan con un error claro.
"Rastrear múltiples campañas simultáneamente en un grupo"
Tres campañas de cliente concurrentes, un grupo de Telegram, un reporte por campaña por disparo.
/setup → 🎯 Filtros → ⤴ Filtros nombrados → ➕ Añadir filtro nombrado, luego envía uno de estos en cada pasada:
campaign_a from:@kol1,@kol2 keywords:"#CampaignALaunch"
campaign_b from:@kol3,@kol4,@kol5 cashtags:$CBT
campaign_c from:@kol6 mention:@CampaignC_OfficialCada uno se dispara con el mismo calendario y publica un reporte separado etiquetado con el nombre del filtro.
"Reenviar los tweets de una cuenta en tiempo real, entre reportes"
Grandes noticias de
@MyTokenOfficialno deberían esperar al reporte de las 22:00 UTC.
/setup → 📡 Retransmisión automática de X → ➕ Añadir cuenta → envía:
@MyTokenOfficial 5(El 5 opcional es el límite diario; predeterminado 10.) El bot sondea cada 5 minutos, reenvía la URL en una publicación nueva, Telegram renderiza la tarjeta de vista previa.
"Restringir los reportes a una ventana de campaña (p. ej. impulso de 7 días)"
No quieres que el ruido previo a la campaña contamine el leaderboard.
/setup → 📊 Reportes → 📆 Establecer período → envía:
01/05/2026 7daysLos reportes ahora obtienen publicaciones estrictamente dentro de esa ventana. 🗑 Borrar período revierte a la ventana móvil de 24 h.
"Hacer que los reportes se publiquen en un tema de foro, no en el hilo principal"
El grupo usa temas; los reportes deben aterrizar en un tema dedicado de Reportes.
Abre el tema de Reportes, luego desde dentro de él envía:
/set_topic ReportsLos futuros reportes se enrutan a ese tema. Para revertir: /set_topic clear desde cualquier lugar del grupo.
"Notificar a dos administradores específicos cuando se agoten los créditos"
El bot envía DM a los administradores designados en errores de crédito / obtención / chat desaparecido. Por defecto, recurre a todos los administradores del chat — reduce a una lista curada.
/add_admin @alice @bobLos DM ahora van solo a @alice y @bob. Para borrar: /setup → 👥 Administradores → 🗑 Borrar lista de notificación.
"Ocultar el chat de la vitrina pública de xbot.ninja"
Los portafolios de KOL independiente se ocultan automáticamente (un solo usuario no cumple el umbral de ≥ 2 usuarios activos). Para proyectos comunitarios que deben permanecer privados:
No hay un interruptor explícito de ocultar — la inclusión pública está condicionada por umbrales de métricas. Dos formas de mantenerse privado:
- Ejecuta un chat pequeño / silencioso que no cumpla los umbrales (puntuación del usuario principal < 300, publicaciones < 5/mes, o usuarios activos < 2).
- Contacta a soporte para establecer el chat como exento — el panel público lo omite independientemente de las métricas.
La URL directa del chat (https://xbot.ninja/?chatId=…) sigue siendo accesible independientemente. Compártela solo con personas que deban ver los datos.
Problemas comunes
| Síntoma | Razón | Solución |
|---|---|---|
Calendario "rechazado" con FREQUENCY_ERROR | El cron intenta dispararse más seguido que cada 12 h | Verificación de espaciado — elige al menos 12 horas de separación. El mensaje de error nombra el par de horas conflictivo. |
/setup no aparece en el autocompletado | La lista de comandos de BotFather está desactualizada | El bot acepta /setup independientemente del autocompletado. Actualiza BotFather → /setcommands si la posibilidad de descubrimiento importa. |
| La vista previa del filtro muestra paréntesis vacíos / consulta rara | Algún componente está vacío | /setup → 🎯 Filtros muestra la consulta literal. Añade al menos uno de cuentas / cashtags / palabras clave / menciones. |
| La retransmisión automática de X reenvía de golpe un hilo entero de publicaciones | Las auto-respuestas eluden el exclude=replies de la API de X | /setup → 📡 Retransmisión automática de X → @cuenta → desactiva ☐ Continuaciones de hilo. El bot entonces mantiene solo la cabeza del hilo. |
| Se alcanzó el límite diario pero quiero más | Se alcanzó MAX_POSTS_PER_DAY para la retransmisión | Toca ✏️ Límite y auméntalo. Cada publicación reenviada cuenta como un crédito. |
| El título / color personalizado se revirtió durante la noche | La actualización de configuración funcionó pero el incremento de UPDATED_AT invalidó la caché de renderizado; la próxima obtención muestra el nuevo valor | Espera un ciclo de reporte. La caché de renderizado se reconstruye en la próxima obtención. |
| El reporte tiene "0 publicaciones" en todas partes | Ninguna publicación coincidió con el filtro en el período configurado | Elimina el período (la ventana móvil de 24 h es más permisiva), o amplía los filtros. A menudo es un error tipográfico en un cashtag. |
| El bot está "en línea" pero los reportes dejan de llegar | El bot fue degradado de administrador / expulsado | Revisa Telegram → administradores del grupo. Vuelve a promoverlo si falta. El bot se autodesactiva en errores de chat desaparecido. |
Listo
La pantalla final del asistente resume todo lo que se guardó y apunta a /setup → 📊 Reportes → ⚡ Generar reporte ahora para una vista previa inmediata:

Eso es todo el recorrido. Escribe /setup en tu grupo para comenzar.
¿Tuviste un problema configurando un elemento del menú? Consulta Solución de problemas para matrices de síntoma-a-solución que cubren filtros, calendarios y facturación.