avanzati.it/FAQ/Integrazioni SaaS
Q.18 · Integrazioni

Come si integra un vostro SaaS con i nostri sistemi?

Hub & spoke. I nostri SaaS sono progettati aperti: parlano ERP, AD, mail, SdI, CRM, BI, legacy. Nessun vendor lock-in sugli integration layer — usiamo protocolli standard, documentati.

TL;DR

Ogni SaaS PSA espone REST/JSON per API moderne, supporta SOAP/XML per legacy, webhook outbound per eventi real-time, LDAP/SAML/OAuth2 per SSO, SFTP per scambio file schedulato, SMTP/IMAP per email, FatturaPA/SdI per fatturazione elettronica, connettori specifici per AS/400 e Oracle dove serve. I pattern di sincronizzazione sono 3 (webhook near-real-time, polling periodico, batch notturno), scelti in base al caso d'uso. Resilience: retry esponenziale, circuit breaker, dead-letter queue, monitoring dedicato delle integrazioni.

01Filosofia: niente walled garden

Dopo quarant'anni di mestiere abbiamo visto passare l'EDI, CORBA, SOAP, REST, GraphQL, gRPC, ora gli MCP server per gli LLM. Un insegnamento costante: i sistemi che parlano solo con sé stessi muoiono prima. Per questo ogni SaaS che scriviamo nasce con l'integrazione come requisito, non come modulo opzionale.

Concretamente: il database non è mai il punto di integrazione (accoppiamento troppo stretto, rischio sicurezza, rottura a ogni upgrade schema). Il punto di integrazione è sempre un layer applicativo — API versionate, contratti chiari, autenticazione esplicita. Se un altro software vuole leggere o scrivere, passa di lì. Senza eccezioni, neanche per noi stessi.

Niente "connector marketplace" generici acquistati da terzi. Ogni integrazione è curata, testata sul dominio specifico, mantenuta nel tempo. Costa di più da dire, costa meno da gestire.

02Protocolli supportati out-of-the-box

La lista è lunga perché i sistemi che i nostri SaaS devono raggiungere sono eterogenei — dall'ERP acquistato tre anni fa al gestionale verticale scritto in RPG sull'AS/400 vent'anni fa.

03SSO e identity

Gli utenti del cliente non devono avere una password in più per ogni nostro SaaS. È una richiesta ricorrente, e la risolviamo sempre allo stesso modo: federazione sull'identity provider aziendale esistente.

Tutti i SaaS PSA hanno 2FA obbligatoria nativa quando l'SSO non copre questo requisito — allineamento normativo, non optional.

04Pattern di sincronizzazione

Ogni integrazione cade in uno di tre pattern. La scelta non è stilistica: dipende dal caso d'uso, dalla latenza accettabile, e soprattutto da cosa il sistema controparte è in grado di sostenere.

Pattern Latenza Complessità Affidabilità
Webhook outboundNear-real-time (secondi)Alta: serve endpoint HTTPS sul cliente, retry, idempotencyEventuale (DLQ obbligatoria)
Polling periodicoMinuti (configurabile)Media: lato consumer, stateful su cursor/timestampAlta: idempotente per design
Batch notturnoOre (ciclo giornaliero)Bassa: file SFTP, processo ETL, reportMolto alta: retry semplice, operabile

La regola pratica: non usare webhook se puoi usare polling, non usare polling se puoi usare batch. La latenza è un requisito, non un valore. Un'anagrafica clienti che cambia due volte al mese non ha bisogno di webhook — serve un job notturno robusto.

05Integrazioni legacy

La voce più interessante, perché il mondo reale italiano è pieno di sistemi che il marketing preferisce non vedere ma che i bilanci confermano.

06Resilienza

Un'integrazione vive nel tempo, non viene installata e basta. Per questo ogni pipeline ha lo stesso kit di sopravvivenza.

07Casi concreti

Per dare spessore ai pattern sopra, quattro integrazioni tipiche che abbiamo in esercizio.

ERP → SaaS, sync anagrafiche. Clienti, fornitori, articoli risiedono sull'ERP. Pattern: polling ogni 15 minuti sul delta (campo last_modified o equivalente), upsert lato SaaS con chiave naturale dell'ERP. Niente duplicazione di verità: se c'è conflitto, vince sempre l'ERP.

AD → autenticazione trasparente. Pattern: LDAPS con bind service account, ricerca utente, mapping gruppo AD → ruolo applicativo. L'utente digita email aziendale e password AD una volta, poi sessione gestita via cookie HTTPOnly / JWT refresh.

SdI → fatture passive. Ricezione fatture elettroniche XML firmate via canale SDI (diretto o via intermediario), validazione struttura, mappatura campi su modello interno, notifica al SaaS del cliente via webhook. FatturaPA gestita nativamente, no servizi terzi.

CRM → ticketing. Cliente apre ticket dal CRM (Salesforce o similare), webhook outbound verso il nostro SaaS di ticketing, lavorazione con stato sincronizzato indietro via API REST. Campi custom mappati in configurazione, non in codice.

08Cosa non facciamo

Onestà a inizio progetto risparmia mesi di rinegoziazione a metà.

Un SaaS che non parla con nessuno, non serve a nessuno.

Parliamo della vostra architettura →