Exemplo: enviar o horario de clase por Telegram
Neste exemplo imos crear un fluxo de traballo que envíe automaticamente o horario de clase todas as mañás a través de Telegram.
Que necesitamos
- Un bot de Telegram creado con @BotFather.
- O token do bot (BotFather dácho ao crealo).
- O Chat ID do grupo ou chat onde queres recibir a mensaxe.
Crear o bot de Telegram
- Abre Telegram e busca @BotFather.
- Envíalle o comando
/newbot. - Ponlle un nome e un nome de usuario ao bot.
- BotFather devolverache un token como este:
123456789:ABCdefGhIJKlmNoPQRsTUVwxYZ. Gárdao. - Engade o bot ao grupo ou conversa onde queiras recibir o horario.
Obter o Chat ID
Para coñecer o Chat ID do grupo ou chat:
- Busca o bot polo nome que lle asignaches e mándalle calquera mensaxe
- Entra en [https://api.telegram.org/botAQUI_O_TEU_TOKEN/getUpdates] e poderás atopar o id do chat. Cópiao e gárdao
Crear o fluxo en n8n
Paso 1: Trigger - Schedule (programación)
Este nodo fará que o fluxo se execute automaticamente cada mañá.
- Crea un novo workflow en n8n.
- Preme en + e busca Schedule Trigger.
- Configúrao así:
- Trigger Interval: Days
- Hour:
8(ou a hora á que queiras recibir a mensaxe) - Minute:
0
Isto fará que o fluxo se execute todos os días ás 8:00.
Se queres que o horario só se envíe en días lectivos, cambia a configuración do trigger:
- Trigger Interval: Custom (Cron)
- Expression:
0 8 * * 1-5
Esta expresión cron significa: ás 8:00, de luns (1) a venres (5). Así non recibirás a mensaxe as fins de semana.
Paso 2: Code - Horario segundo o día
Este nodo usa JavaScript para determinar o día da semana e devolver o horario correspondente.
- Preme no + á dereita do nodo Schedule.
- Busca Code e selecciónao.
- En Language, selecciona JavaScript.
- Pega o seguinte código:
let horarios = {
Monday: [
{ hora: 8, minutos: 20, materia: 'SMR' },
{ hora: 10, minutos: 20, materia: 'AWE' },
{ hora: 12, minutos: 0, materia: 'SOS' },
],
Tuesday: [
{ hora: 9, minutos: 0, materia: 'AWE' },
{ hora: 11, minutos: 30, materia: 'SOS' },
{ hora: 14, minutos: 0, materia: 'SEG' },
],
Wednesday: [
{ hora: 8, minutos: 20, materia: 'SOS' },
{ hora: 10, minutos: 20, materia: 'SMR' },
{ hora: 12, minutos: 0, materia: 'AWE' },
],
Thursday: [
{ hora: 9, minutos: 0, materia: 'SEG' },
{ hora: 11, minutos: 30, materia: 'SMR' },
{ hora: 13, minutos: 30, materia: 'AWE' },
],
Friday: [
{ hora: 8, minutos: 20, materia: 'AWE' },
{ hora: 10, minutos: 20, materia: 'SOS' },
{ hora: 12, minutos: 0, materia: 'SEG' },
],
}
let dias = {
Monday: 'Luns',
Tuesday: 'Martes',
Wednesday: 'Mércores',
Thursday: 'Xoves',
Friday: 'Venres',
}
let hoy = new Date().toLocaleDateString('en-US', { weekday: 'long' })
let clasesHoy = horarios[hoy] || []
let diaGalego = dias[hoy] || hoy
let mensaje = `📚 Horario de hoxe (${diaGalego}):\n\n`
clasesHoy.forEach((clase) => {
mensaje += `⏰ ${clase.hora}:${String(clase.minutos).padStart(2, '0')} - ${clase.materia}\n`
})
return { mensaje: mensaje }
Este código fai o seguinte:
- Define o horario de cada día da semana nun obxecto.
- Detecta o día actual e selecciona as clases correspondentes.
- Traduce o nome do día ao galego.
- Xera unha mensaxe formateada coas horas e materias do día.
Paso 3: Acción - Telegram
Este nodo enviará a mensaxe xerada polo nodo Code.
- Preme no + á dereita do nodo Code.
- Busca Telegram e selecciónao.
- En Operation, selecciona Send a Text Message.
- Configura as credenciais:
- Preme en Create New Credential.
- Pega o token do bot que che deu BotFather.
- Configura a mensaxe:
- Operation: Send Message
- Chat ID: pega o Chat ID que obtiveches antes.
- Text: selecciona Expression e escribe
{{ $json.mensaje }}para usar a mensaxe xerada polo nodo Code.
Paso 4: Probar o fluxo
- Preme en Probar workflow para verificar que a mensaxe chega ao chat de Telegram co horario do día.
- Se todo funciona correctamente, preme o botón Publish para gardar e activar o fluxo. Sen este paso, o workflow non se executará automaticamente.
Resultado
O fluxo completo queda así:
Schedule Trigger → Code → Telegram
A partir de agora, todas as mañás recibirás no teu chat de Telegram o horario correspondente ao día da semana.