Salta el contingut

Pràctica 1: Primer Workflow

Objectiu

Crear un primer workflow a n8n que demostri la comprensio dels conceptes bàsics: trigger, nodes de lògica, nodes d'acció i flux de dades.

Enunciat

Has de crear un workflow que:

  1. S'activi manualment
  2. Generi un conjunt de dades de prova (una llista de 5 alumnes amb nom i nota)
  3. Comprovi si cada alumne ha aprovat (nota >= 5)
  4. Per als aprovats: prepari un missatge de felicitació
  5. Per als suspesos: prepari un missatge d'anim
  6. Mostri el resultat final de tots els alumnes

Estructura del workflow

flowchart LR
    A([Manual\nTrigger]) --> B[Code\nGenerar dades]
    B --> C{IF\nnota >= 5?}
    C -->|Si - Aprovat| D[Set\nMissatge aprovat]
    C -->|No - Suspens| E[Set\nMissatge suspens]
    D --> F[Merge\nUnir resultats]
    E --> F
    F --> G[Code\nMostrar resum]

Passos a seguir

Pas 1: Crear un nou workflow

  1. Obre n8n al navegador
  2. Fes clic a + New workflow
  3. Posa el nom: Pràctica 1 - Qualificacions [el teu nom]

Pas 2: Afegir el Manual Trigger

  1. Fes clic al node + del canvas
  2. Cerca i selecciona Manual Trigger
  3. Reanomena'l a Inici manual

Pas 3: Generar dades de prova amb el Code node

Afegeix un node Code després del trigger amb aquest codi:

const alumnes = [
  { nom: "Anna Garcia", nota: 8.5 },
  { nom: "Bernat Puig", nota: 4.2 },
  { nom: "Carla Mas", nota: 6.7 },
  { nom: "David Riu", nota: 3.1 },
  { nom: "Elena Soler", nota: 9.0 }
];

return alumnes.map(alumne => ({
  json: alumne
}));

Reanomena el node a Generar llista alumnes.

Execució parcial

Pots executar només fins a aquest node fent clic dret → "Execute node" per veure si les dades son correctes abans de continuar.

Pas 4: Afegir el node IF

  1. Afegeix un node IF després del Code node
  2. Reanomena'l a Comprovar si aprovat
  3. Configura la condicio:
  4. Valor 1: {{ $json.nota }}
  5. Operació: NumberGreater than or equal
  6. Valor 2: 5

Pas 5: Node Set per als aprovats

Al branca true del IF, afegeix un node Edit Fields (Set):

  • Reanomena'l a Preparar missatge aprovat
  • Afegeix el camp resultat amb valor: Aprovat amb un {{ $json.nota }}
  • Afegeix el camp estat amb valor: aprovat

Pas 6: Node Set per als suspesos

Al branca false del IF, afegeix un node Edit Fields (Set):

  • Reanomena'l a Preparar missatge suspens
  • Afegeix el camp resultat amb valor: Suspens amb un {{ $json.nota }}
  • Afegeix el camp estat amb valor: suspens

Pas 7: Unir els resultats

Afegeix un node Merge després dels dos nodes Set:

  • Reanomena'l a Unir tots els resultats
  • Mode: Append
  • Connecta les dues sortides (aprovats i suspesos) al Merge

Pas 8: Resum final

Afegeix un node Code final:

  • Reanomena'l a Generar resum
  • Codi:
const items = $input.all();
const aprovats = items.filter(i => i.json.estat === 'aprovat').length;
const suspesos = items.filter(i => i.json.estat === 'suspens').length;

console.log(`Total: ${items.length} alumnes`);
console.log(`Aprovats: ${aprovats}`);
console.log(`Suspesos: ${suspesos}`);

return items.map(item => ({
  json: {
    ...item.json,
    resum: `${aprovats} aprovats, ${suspesos} suspesos de ${items.length}`
  }
}));

Pas 9: Executar i verificar

  1. Fes clic a Execute Workflow
  2. Revisa les dades de sortida de cada node
  3. Comprova que cada alumne te el camp estat i resultat corrects

Lliurament

Lliura al campus virtual:

  • Captura de pantalla del workflow complet (tots els nodes visibles)
  • Captura de les dades de sortida del node final
  • Fitxer JSON exportat del workflow (boto dret al canvas → "Export")
  • Breu explicació (5-10 línies) del què fa cada node del teu workflow

Rúbrica d'avaluació PRN8N01

Criteri Insuficient (0-4) Suficient (5-6) Notable (7-8) Excel·lent (9-10)
Workflow funcional No s'executa S'executa amb errors S'executa correctament S'executa correctament i de manera òptima
Nodes ben nomenats Noms genèrics Alguns nodes amb nom descriptiu Tots els nodes amb noms descriptius Noms descriptius i consistents
Lògica correcta Bifurcació absent o incorrecta Bifurcació parcial Bifurcació correcta Lògica perfecta amb casos edge
Dades de sortida No mostren el resultat esperat Resultat parcial Resultat correcte Resultat correcte amb camps addicionals útils
explicació Absent o molt breu Bàsica Clara i completa Clara, completa i amb reflexió crítica

Trampa

No copiis el workflow d'un company. N8n guarda el nom del creador a l'arxiu JSON exportat.