Saltar al contenido principal

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​

  1. Abre Telegram e busca @BotFather.
  2. Envíalle o comando /newbot.
  3. Ponlle un nome e un nome de usuario ao bot.
  4. BotFather devolverache un token como este: 123456789:ABCdefGhIJKlmNoPQRsTUVwxYZ. Gárdao.
  5. 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:

  1. Busca o bot polo nome que lle asignaches e mándalle calquera mensaxe
  2. 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ñá.

  1. Crea un novo workflow en n8n.
  2. Preme en + e busca Schedule Trigger.
  3. 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.

Só de luns a venres

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.

  1. Preme no + á dereita do nodo Schedule.
  2. Busca Code e selecciónao.
  3. En Language, selecciona JavaScript.
  4. 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.

  1. Preme no + á dereita do nodo Code.
  2. Busca Telegram e selecciónao.
  3. En Operation, selecciona Send a Text Message.
  4. Configura as credenciais:
    • Preme en Create New Credential.
    • Pega o token do bot que che deu BotFather.
  5. 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​

  1. Preme en Probar workflow para verificar que a mensaxe chega ao chat de Telegram co horario do día.
  2. 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.