Si gestioneu una cooperativa de consum, un grup de compra col·lectiva o qualsevol servei on envieu una llista de productes setmanal a molts clients i heu de recollir les seves comandes, sabeu que és un procés repetitiu i fàcil d'oblidar. En aquest article veurem com automatitzar-ho completament: l'admin envia la cistella al bot de Telegram, el bot la distribueix als 50 clients, recull les respostes i ho desa tot a Google Sheets — sense tocar res més.

Què fa exactament el sistema?

El flux és senzill per a tothom que hi participa:

  • L'admin envia al bot la llista de productes de la setmana (com a text) i, opcionalment, un PDF amb productes addicionals com a document adjunt.
  • El bot distribueix automàticament la llista i el PDF als 50 clients registrats, un per un.
  • Cada client respon al bot amb els productes que vol (text lliure).
  • n8n desa cada resposta a Google Sheets, actualitza l'estat i notifica l'admin de cada comanda nova amb un resum del progrés.
  • Quan tots han respost, l'admin rep un avís final i pot revisar el full de Comandes amb totes les comandes ordenades.

Arquitectura del sistema

Tot el flux corre sobre un sol workflow de n8n amb un únic node Telegram Trigger. Un Switch al principi separa els missatges de l'admin dels missatges dels clients, i cadascun segueix el seu propi camí:

Telegram Trigger
  ├── [Admin]  → extreu llista + PDF → Google Sheets
  │              → envia a 50 clients (loop) → actualitza estat
  └── [Client] → identifica client → desa comanda → confirma
                 → notifica admin → comprova si tots han respost

Requisits previs

  • n8n instal·lat i accessible (Docker al servidor Debian, o núvol).
  • Un bot de Telegram creat amb @BotFather.
  • Un compte de Google amb accés a Google Sheets.
  • El JSON del workflow (el generem al pas 4).

Pas 1 — Crear el bot de Telegram

Obre Telegram, busca @BotFather i envia /newbot. Dona-li un nom (ex: "Cistella Setmanal") i un nom d'usuari acabat en _bot. Guarda el token que et retorna — el necessitaràs per configurar n8n.

A continuació, obté el teu chat_id com a admin. Envia qualsevol missatge al bot i accedeix a aquesta URL al navegador (substituint TOKEN pel teu):

https://api.telegram.org/botTOKEN/getUpdates

Al JSON que apareix, el teu chat_id és el número al camp "chat" → "id". Apunta'l perquè l'usaràs com a ADMIN_CHAT_ID.

Repeteix el mateix procés per a cada un dels 50 clients: cadascun ha d'enviar un missatge al bot perquè aparegui a getUpdates, i heu d'anotar el seu chat_id.

Pas 2 — Preparar el Google Sheets

Crea un nou Google Spreadsheet i afegeix-hi tres fulls amb els noms i columnes exactes (la primera fila és la capçalera):

Full: Clients
  chat_id | nom | telefon | estat | data_enviament

Full: Campanya_Activa
  data | text_cistella | pdf_file_id | total_clients

Full: Comandes
  chat_id | nom | telefon | productes_demanats | data_resposta

Al full Clients, afegeix una fila per cada un dels 50 clients amb el seu chat_id, nom i telèfon. Les columnes estat i data_enviament les omple el bot automàticament.

Un cop creat, copia l'ID del Spreadsheet de la URL del navegador — és la cadena de caràcters llarga entre /d/ i /edit:

https://docs.google.com/spreadsheets/d/<SPREADSHEET_ID>/edit

Pas 3 — Configurar les credencials a n8n

Abans d'importar el workflow, cal tenir les dues credencials configurades a n8n.

Per al bot de Telegram: ves a n8n → Credentials → New → cerca "Telegram" → enganxa el token del BotFather.

Per a Google Sheets: ves a Credentials → New → cerca "Google Sheets OAuth2" → segueix el procés d'autenticació amb el teu compte de Google. n8n et demanarà permís per llegir i escriure Sheets.

Pas 4 — Importar el workflow a n8n

Descarrega el fitxer JSON del workflow i importa'l a n8n: ves a Workflows → botó "..." → Import from file i selecciona el JSON.

Un cop importat, has de substituir tots els valors marcats com a CANVIA_AQUI_.... Pots localitzar-los fàcilment amb la cerca del navegador dins de l'editor de nodes. Concretament:

  • CANVIA_AQUI_ADMIN_CHAT_ID → el teu chat_id de Telegram (apareix al node Switch i als nodes de notificació de l'admin).
  • CANVIA_AQUI_SPREADSHEET_ID → l'ID del Google Sheets del pas 2 (apareix a tots els nodes de Google Sheets).
  • CANVIA_AQUI_TELEGRAM_CRED_ID → substitueix seleccionant la credencial Telegram que has creat.
  • CANVIA_AQUI_GSHEETS_CRED_ID → substitueix seleccionant la credencial Google Sheets que has creat.

Si el teu grup no té exactament 50 clients, busca al workflow el node 🔢 Code Comprova Progrés i canvia la línia:

const totalClients = 50; // CANVIA aquí si tens més o menys clients

Pas 5 — Activar el workflow i provar-ho

Desa el workflow i activa'l amb l'interruptor de la part superior dreta. A partir d'ara el bot escoltarà missatges.

Per fer la primera prova, envia un missatge al bot des del teu compte d'admin (el chat_id que has configurat). Pots provar-ho primer amb un text senzill:

Tomàquets
Patates
Ceba
Pastanagues
Bròquil

El bot ha de respondre-te confirmant que ha enviat la cistella als clients. Ves a n8n → Executions per veure el registre de l'execució pas a pas i verificar que tot ha funcionat correctament.

Com enviar la cistella cada setmana

El procés setmanal per a l'admin és molt senzill. Si no hi ha PDF, envia un missatge de text pur al bot amb la llista de productes. Si hi ha PDF, adjunta'l al missatge de Telegram i escriu la llista de productes al camp de descripció (caption) del document, no en un missatge apart.

En pocs segons, tots els clients reben un missatge del bot amb la llista formatada i, si escau, el document PDF adjunt. L'admin rep una confirmació quan tots els enviaments s'han completat.

Com veuen la cistella els clients

Cada client rep un missatge com aquest al seu Telegram:

🛒 CISTELLA SETMANAL

Hola Maria! 👋

Aquí tens la llista de productes disponibles aquesta setmana:

Tomàquets
Patates
Ceba
Pastanagues
Bròquil

📄 T'envio també el document amb productes addicionals fora de la cistella.

✍️ Respon amb els productes que vols demanar i la quantitat.
Exemple: Tomàquets x2, Patates x5kg...

El client respon al bot amb text lliure — per exemple: "Tomàquets x2, Pastanagues x1kg". n8n detecta la resposta, la desa al full Comandes i envia una confirmació al client. L'admin rep una notificació instantània amb els productes demanats i el progrés actual (per exemple: "23/50 clients — 27 pendents").

El resultat final al Google Sheets

Al full Comandes tens totes les respostes recollides: qui ha demanat cada cosa, quan, i el text exacte de la seva comanda. Al full Clients, la columna estat reflecteix qui ha rebut la cistella i qui no ha respost encara. Quan l'últim client respon, l'admin rep un avís final de "totes les comandes rebudes".

Si un client respon diverses vegades (per corregir la comanda), la fila del full Comandes s'actualitza automàticament amb la darrera resposta — no s'acumulen duplicats.

Possibles millores

  • Recordatori automàtic: afegir un Schedule Trigger que, al cap d'uns dies, enviï un recordatori als clients que no han respost (filtra el full Clients per estat = enviat sense comanda al full Comandes).
  • Informe setmanal: generar automàticament un PDF o CSV amb el resum de totes les comandes i enviar-lo a l'admin per WhatsApp o email.
  • Gestió de clients: afegir un comandament /registra al bot perquè nous clients s'afegeixin ells mateixos al full Clients.

Reflexió final

El que abans era enviar missatges un per un, esperar respostes disperses i consolidar-les a mà en un Excel, ara passa sol. L'admin fa una única acció (enviar la cistella al bot) i n8n s'encarrega de la resta. El Google Sheets és el punt central on tothom que necessiti veure les comandes hi pot accedir en temps real, sense esperar que ningú consolidi res.