Guide

Automazioni per E-commerce: Notifiche per Nuovi Ordini Shopify

I team e‑commerce che reagiscono più in fretta vincono: segnalare in tempo reale i nuovi ordini, qualificare priorità, avvisare le persone giuste e innescare azioni post‑acquisto fa la differenza su SLA e customer experience. Con nuovi ordini shopify n8n puoi impostare in poche ore un sistema affidabile che ascolta Shopify, verifica la firma HMAC, deduplica gli eventi, arricchisce i dati e li distribuisce su Slack, email, SMS o sistemi interni. In questa guida pratica vedrai due approcci solidi: webhook ordini Shopify (evento orders/create Shopify) per notifiche istantanee e polling incrementale con Cron n8n come fallback o per controlli periodici. Tratteremo permessi API, sicurezza HMAC, gestione rate limit, routing per valore ordine e GDPR per i dati cliente e‑commerce. Troverai step‑by‑step, snippet pronti e best practice di resilienza (retry/backoff, dead‑letter) per portare in produzione un flusso scalabile di notifiche con n8n.

📚 Nuovo a n8n? Parti dalla guida completa: cos’è n8n e come funziona.

[IMG: Vista d’insieme del workflow: Webhook → Verifica HMAC → (opzionale) HTTP Request → Enrichment → Router → Slack/Email → Log]


Architettura e benefici operativi

Prima di passare alla configurazione, definisci l’architettura:

  • Real‑time con webhook ordini Shopify
  • Registri l’evento orders/create Shopify; ogni nuovo ordine invia una POST al tuo endpoint n8n.
  • Pro: latenza bassissima, ottimo per notifiche operative e upsell cross‑sell.
  • Contro: richiede esposizione pubblica dell’endpoint e corretta verifica HMAC.
  • Polling incrementale con Cron n8n
  • Ogni N minuti interroghi l’API per gli ordini creati di recente (createdatmin), usi un marcatore temporale e deduplichi.
  • Pro: nessun endpoint pubblico, robusto ai picchi.
  • Contro: latenza > 1 minuto e potenziale costo API maggiore se l’intervallo è stretto.

Benefici operativi (tempo di risposta, riduzione errori)

  • Riduci il tempo alla prima reazione (SLA interni), instradi i casi “VIP” o “alto valore” prima degli altri.
  • Minimizza errori di trascrizione e copie manuali; una “fonte di verità” centralizzata rende audit e analisi più semplici.

KPI da monitorare

  • Latenza evento→notifica, tasso di recapito per canale, error rate per job, ordini elaborati per finestra, percentuale di dedup (eventi già visti).

Canali e routing tipici

  • Notifiche Slack per nuovi ordini; template email ordine Shopify per sales/accounting; SMS/WhatsApp per “urgenze” (es. alto valore o tag specifici).
  • Routing notifiche per valore ordine, paese, metodo di spedizione o tag (wholesale, influencer, preorder).

Credenziali, permessi e ambiente n8n

Credenziali e permessi API Shopify

  • Crea una app personalizzata in Shopify Admin e assegna almeno lo scope read_orders per recuperare e arricchire i dettagli d’ordine. Per webhook non serve necessariamente leggere i dettagli, ma è consigliato per enrichment.
  • Conserva “API key”, “API secret key” e (se usi Admin REST) l’access token (X‑Shopify‑Access‑Token) per chiamate server‑to‑server.

Configurazione ambiente n8n

  • Cloud vs self‑hosted: in cloud hai un endpoint pubblico pronto; in self‑hosted esponi solo il Webhook con un reverse proxy/TLS.
  • Data Store e stato: puoi usare lo stato globale del workflow o un key‑value store per deduplica (es. ultimo orderid o un set di eventid).
  • Segreti e PII: conserva segreti in credenziali n8n; limita il payload salvato in log e notifiche (minimizzazione dati cliente e‑commerce).

Panoramica nodi utili

  • Webhook (ingresso), Respond to Webhook (risposte sincrone se richieste), HTTP Request (enrichment via API), Slack/Email/SMS (distribuzione), IF/Switch (routing logico), Code (verifiche HMAC, mapping e calcoli), Cron (polling).

[IMG: Schermata credenziali Shopify (token) e configurazione Webhook n8n]


Webhook in tempo reale: registrazione evento e verifica HMAC

Step‑by‑step

  1. Crea un Webhook in n8n
  • Metodo: POST
  • Path: ad es. /shopify/orders-create
  • Nel tuo Shopify Admin → Settings → Notifications → Webhooks, registra l’evento “orders/create” puntando all’URL pubblico del Webhook n8n.
  • Se richiesto un ritorno immediato, aggiungi “Respond to Webhook” per inviare HTTP 200 in tempi stretti e proseguire l’elaborazione in background.
  1. Verifica firma HMAC Shopify n8n
  • Shopify invia l’header X‑Shopify‑Hmac‑SHA256: devi calcolarlo sul body grezzo usando il secret della tua app e confrontarlo.
  • Nel nodo Code verifica così (gestisce sia raw body in binary sia body string):
// Verifica HMAC Shopify
const crypto = require('crypto');
const secret = $env.SHOPIFY_APP_SECRET || 'REPLACE_WITH_YOUR_SECRET';

// Recupera header e body
const hmacHeader = $headers['x-shopify-hmac-sha256'] || $headers['X-Shopify-Hmac-SHA256'];
let rawBody;

// Se il Webhook è configurato per fornire il body in binary:
if ($binary && $binary.data) {
  rawBody = Buffer.from($binary.data.data, 'base64'); // adattare il nome della property se diverso
} else {
  // fallback: se $json contiene il body come stringa originale
  rawBody = Buffer.from($json.bodyRaw || JSON.stringify($json));
}

// Calcola HMAC
const digest = crypto
  .createHmac('sha256', secret)
  .update(rawBody)
  .digest('base64');

if (!hmacHeader || !crypto.timingSafeEqual(Buffer.from(digest), Buffer.from(hmacHeader))) {
  throw new Error('Invalid Shopify HMAC signature');
}

// Estrai l’evento
const event = $json; // o parsifica rawBody se necessario
return [{ json: { verified: true, ...event } }];

Consigli

  • Imposta il secret come variabile d’ambiente in n8n ($env.SHOPIFYAPPSECRET).
  • Attiva un ramo “errore HMAC” che risponde 401/403 e logga tentativi non validi.
  1. Enrichment (opzionale)
  • A valle della verifica, chiama l’Admin REST per ottenere dettagli estesi (line items, sconti, tags) via HTTP Request:
  • URL: https://{store}.myshopify.com/admin/api/2023-10/orders/{{ $json.id }}.json
  • Headers: X‑Shopify‑Access‑Token: {{ $credentials.shopifyToken }}
  • Rispetta i limiti di velocità API Shopify con attese brevi fra richieste.
  1. Deduplica ordini con n8n (stato globale)
  • Evita doppie notifiche per lo stesso order_id:
const state = getWorkflowStaticData('global');
const id = $json.id || $json.order?.id;
const seen = state.seenIds || {};
if (id && seen[id]) {
  return []; // già notificato
}
if (id) {
  seen[id] = Date.now();
  state.seenIds = seen;
}
return [{ json: $json }];
  1. Distribuzione
  • Instrada verso Slack/Email/SMS/Teams con messaggi arricchiti (cliente, totale, canale di vendita, link a Shopify).

[IMG: Pannello Webhook con URL pubblico e nodo Code di verifica HMAC collegato]


Polling incrementale con Cron: Get Many e dedup delta

Il polling è utile come backup o dove i webhook non sono praticabili.

  1. Cron
  • Frequenza: ogni 2–5 minuti in orari “caldi”, più rado in orari “soft”.
  1. Stato e finestra temporale
  • Conserva in stato l’ultimo timestamp processato (o l’ultimo orderid) e usa createdat_min per interrogare solo i nuovi ordini:
const state = getWorkflowStaticData('global');
const last = state.lastCreatedAt || new Date(Date.now() - 5 * 60 * 1000).toISOString();
return [{ json: { created_at_min: last } }];
  1. Recupero ordini recenti Shopify
  • Con HTTP Request, GET su /admin/api/2023-10/orders.json?status=any&createdatmin={{$json.createdatmin}}
  • Header: X‑Shopify‑Access‑Token
  • Applica paginazione se l’API restituisce più pagine (Link header / Rel=next).
  1. Dedup e aggiornamento stato
const items = $input.all().flatMap(i => i.json.orders || []);
items.sort((a,b) => new Date(a.created_at) - new Date(b.created_at));
const state = getWorkflowStaticData('global');
let maxTs = state.lastCreatedAt || null;

const out = [];
for (const o of items) {
  if (!maxTs || new Date(o.created_at) > new Date(maxTs)) {
    maxTs = o.created_at;
  }
  out.push({ json: o });
}
state.lastCreatedAt = maxTs;
return out;
  1. Rate limit e retry
  • Inserisci un Wait (500–1000 ms) fra richieste se pagini; su 429/5xx fai retry con backoff (2s → 5s → 10s) e invia alert se superi la soglia.

[IMG: Cron → Code (finestra temporale) → HTTP Request (orders) → Code (dedup + update stato) → Router → Slack/Email]


Routing e notifiche multi‑canale (Slack, Email, SMS)

Instradamento per valore, tag, paese

  • Usa IF/Switch: ordini >= soglia (es. 200€) al canale “#vip-orders”, ordini di un paese specifico al team locale, tag “wholesale” al canale B2B.

Notifiche Slack per nuovi ordini (testo ricco)

  • Invia testo con emoji e link all’ordine, includi subtotale, sconti e metodo di pagamento. Aggiungi link a Order Desk se già integrato.

Template email ordine Shopify

  • Un’email al commerciale/ops con HTML leggero:
<h3>Nuovo ordine #{{ $json.name }}</h3>
<p>Cliente: {{ $json.customer?.first_name }} {{ $json.customer?.last_name }}</p>
<p>Totale: {{ $json.total_price }} {{ $json.currency }}</p>
<p>Articoli: {{ $json.line_items.length }}</p>
<p><a href="https://{{ $json.domain }}/admin/orders/{{ $json.id }}">Apri in Shopify</a></p>

SMS/WhatsApp (Twilio)

  • Per urgenze (metodo spedizione espresso o stock critici) invia un SMS sintetico con ID e valore ordine.

Best practice

  • Evita PII superflua nei messaggi (email/indirizzi completi). Mostra solo il necessario.
  • Aggiungi un “mute” per canali in orari notturni o per ordini sotto soglia.

Resilienza: dedup, retry/backoff, dead‑letter e rate limit

Deduplica robusta

  • Oltre allo stato globale, puoi mantenere una tabella (es. in DB) con gli order_id notificati. Questo aiuta su workflow multi‑istanza.

Gestione errori e retry in n8n

  • Dopo ogni HTTP Request/Send, verifica status. Su errori temporanei (429/5xx), retry con backoff. Se fallisce oltre la soglia, invia in una “dead‑letter queue” (es. tabella DB o Data Store) per rielaborazione manuale.

Limiti di velocità API Shopify

  • Applica attese tra batch. Se fai enrichment record‑per‑record, usa “Split In Batches” (es. 10–20) con Wait (500–1000 ms).

Monitoraggio

  • Report giornaliero: numero ordini ricevuti, notifiche inviate per canale, errori per endpoint, latenza media.
  • Alert immediati: se il flusso non riceve eventi per X ore (probabile problema webhook) o gli errori superano la soglia.

Sicurezza, privacy e conformità GDPR

Verifica firma HMAC

  • È il primo guardiano contro eventi contraffatti. Fall‑fast con 401 e log degli header per diagnosi (senza PII).

Protezione dei segreti

  • Conserva “app secret” e token API in credenziali/variabili d’ambiente. Non in chiaro nei nodi.

Minimizzazione PII

  • Nelle notifiche e nei log, evita indirizzi completi o dettagli pagamento. Conserva solo ciò che serve al processo (principio di minimizzazione).

Audit trail

  • Salva un log sintetico (order_id, canali inviati, timestamp, esito). Questo aiuta in compliance e debug.

Estensioni: enrichment avanzato e Order Desk

Enrichment

  • Aggiungi dati cliente (lifetime value, cohort, canale di acquisizione) interrogando il tuo CRM/DB prima del routing. Questo migliora le regole di priorità.

Integrazione Order Desk e Shopify

  • Se usi Order Desk per fulfillment, invia un “ping” o crea record dedicati via API per anticipare picking/packing. Puoi orchestrare Shopify → n8n → Order Desk → Slack con rami paralleli.

Escalation e SLA

  • Per ordini “alto rischio” o “alto valore”, apri automaticamente un ticket interno o menziona una persona nel messaggio Slack. Traccia un KPI di “presa in carico” per team.

[IMG: Ramo Enrichment (CRM/DB) → Switch (VIP/Wholesale/Intl) → Slack+Email → Log/Audit]


Quick Takeaways

  • Preferisci webhook (orders/create) per latenza minima; usa polling con Cron come fallback o audit.
  • Verifica sempre X‑Shopify‑Hmac‑SHA256 prima di processare; fall‑fast su mismatch.
  • Deduplica gli eventi (order_id) con stato globale o archivio persistente; aggiorna lo stato solo a elaborazione riuscita.
  • Rispetta i limiti API con batching e Wait; fai retry con backoff su errori temporanei.
  • Instrada per valore/tag/paese e limita PII nelle notifiche; misura latenza e tassi di recapito.
  • Proteggi segreti in credenziali/variabili e mantieni un audit trail minimale per compliance.

Conclusione

Impostare notifiche affidabili per nuovi ordini shopify n8n ti offre un vantaggio operativo immediato: riduci la latenza tra evento e azione, migliori la qualità delle risposte interne e crei un audit chiaro per analisi e compliance. La combinazione di webhook con verifica HMAC, dedup e arricchimento selettivo produce notifiche più utili e meno rumorose. Con un piano di resilienza (retry/backoff, rate limit, dead‑letter) e policy di minimizzazione PII, porti il flusso a livello “produzione” senza sorprese. Inizia con il percorso base (Webhook → HMAC → Slack) e, in una seconda iterazione, aggiungi enrichment e routing per valore/tag; infine, attiva il polling incrementale come rete di sicurezza. Così il tuo team marketing e operations resta allineato, veloce e focalizzato sulle decisioni che contano.


FAQ

  1. È meglio usare webhook o polling per le notifiche?

Se puoi, usa il webhook ordini Shopify (evento orders/create Shopify) per notifiche in tempo reale. Mantieni un polling incrementale con Cron n8n come controllo periodico o fallback.

  1. Come verifico la firma HMAC?

Leggi l’header X‑Shopify‑Hmac‑SHA256 e calcola l’HMAC SHA‑256 sul body grezzo con il secret dell’app. In n8n usa un nodo Code per la verifica; se non coincide, interrompi con errore.

  1. Quali permessi servono per arricchire i dati d’ordine?

Almeno permessi API Shopify read_orders per recuperare dettagli via HTTP Request. Conserva i token come credenziali e rispetta i limiti di velocità API Shopify con batching e attese.

  1. Come evito notifiche duplicate?

Implementa deduplica ordini con n8n Data Store o stato globale (orderid/eventid). Aggiorna lo stato solo dopo l’invio riuscito delle notifiche.

  1. Come gestire privacy e GDPR nelle notifiche?

Minimizza PII (niente indirizzi completi nei messaggi), proteggi i segreti in credenziali, conserva un audit trail essenziale (order_id, timestamp, canali inviati) e imposta retention per i log.


Ci dai una mano?

Quale strategia implementerai per prima: webhook con verifica HMAC o polling incrementale di controllo? Condividi la tua scelta e questo articolo con il team: confrontiamo i risultati e costruiamo notifiche più rapide e utili!

Articoli correlati

Vuoi automazioni AI su misura per la tua azienda?
Scopri la consulenza →

Partiamo da un processo che oggi vi costa ore

Su WhatsApp risponde una persona, di solito in giornata. Se preferisci scrivere con calma, c’è il modulo qui sotto.

Scrivici su WhatsApp

Raccontaci cosa vuoi automatizzare

Ti rispondiamo noi, di solito in giornata.

Raccontaci cosa vi fa perdere tempo

Due righe bastano. Vi diciamo se si automatizza, come, e quanto costa. Se non conviene, lo diciamo.