iKonekt
Apri la console

Per gruppi e più brand

Più aziende, una sola installazione, nessun cliente in comune

I gruppi di solito risolvono questo problema due volte male: o cinque installazioni separate e cinque volte tutto il resto, oppure una sola installazione e la solenne promessa che l'applicazione filtri sempre correttamente. La prima soluzione costa cara. La seconda è una promessa, e le promesse non sono un modello di sicurezza.

Se gestisci più di un'azienda — una holding con le sue controllate, un franchising, due marchi rivolti a mercati diversi, un'agenzia e l'attività che l'agenzia ha scorporato — conosci già la forma del problema. I marchi condividono persone, strumenti e un reparto finanziario. Non condividono i clienti, e non devono sembrare che lo facciano.

iKonekt le gestisce tutte da una sola installazione, e la separazione tra loro è garantita dal database e non dal codice. Questa distinzione suona accademica finché non arriva il giorno in cui non lo è più.

Perché questo livello è importante

Un filtro a livello applicativo è una frase dentro una query. Funziona finché ogni query che verrà mai scritta la contiene — compresa quella scritta di fretta, quella scritta dal nuovo sviluppatore, e quella scritta per un report che sarebbe stato usato una volta sola.

Sposta il confine nel database e l'aritmetica si ribalta. La policy viene eseguita su ogni lettura e ogni scrittura, sotto tutto. Una query che dimentica l'azienda non restituisce le righe sbagliate; non ne restituisce nessuna. La modalità di guasto diventa uno schermo vuoto e uno sviluppatore confuso, che è la modalità di guasto corretta.

Gli schermi vuoti sono una funzionalità. Preferiamo spiegare uno schermo vuoto a uno dei nostri ingegneri che spiegare un elenco di clienti a due clienti che non si aspettavano di incontrarsi.

Una sola installazionePer azienda
  • 1Clienti e conversazioniDelimitati. Un venditore del marchio A non può raggiungere quelli del marchio B, per costruzione e non per configurazione.
  • 2Esclusive su un cliente"Abbiamo già questo account" è un blocco tenuto per azienda — così due marchi possono lavorare sullo stesso mercato senza scontrarsi.
  • 3Prompt e impostazioniOgni azienda modifica i propri. L'unico punto in cui sono mai stati condivisi era un bug, ed è il bug di cui questo sistema è più orgoglioso di aver trovato.
  • 4Programmi partnerUn modulo per azienda, non uno globale che tutti ereditano.

Confine applicato sotto l'applicazione

Cosa un gruppo condivide davvero

La separazione non è un isolamento fine a se stesso. Le cose che vale la pena condividere in un gruppo vengono condivise deliberatamente, e sono per lo più quelle noiose — il che è esattamente giusto, perché quelle noiose sono dove vive il costo duplicato:

  • Una sola installazione da gestire e aggiornare. Un deployment, un solo set di credenziali da curare, una sola cosa da tenere aggiornata.
  • Un solo team di persone, con cappelli diversi. Una persona può lavorare in più di un'azienda; ciò che non può fare è vederle entrambe contemporaneamente attraverso una query che ha dimenticato di chiedere.
  • Un solo insieme di abitudini. Il modo in cui viene assegnato un contatto, il modo in cui si scrive una nota, il modo in cui un lavoro arriva a una fattura — imparato una volta, applicato ovunque, il che riduce l'onboarding a circa una mattinata.
  • Un solo rapporto con il resto della famiglia. castomAPI sotto, lo stesso account, gli stessi connettori — configurati per azienda dove conta.

La domanda che un gruppo fa sempre per secondo

"Possiamo fare report su tutti insieme?" Sì — dal punto di vista del gruppo, deliberatamente ed esplicitamente, e non come effetto collaterale di un confine che perde. La distinzione è tutto il progetto: attraversare la linea deve essere un atto che qualcuno ha compiuto di proposito, con l'autorità per farlo. Non deve mai essere qualcosa che un identificatore smarrito riesce a fare per sbaglio.

E la domanda che fanno per terzo: "cosa succede se vendiamo uno dei marchi?" Un confine che il database mantiene è anche un confine da cui puoi estrarre una copia pulita. Non è una coincidenza — separazione e portabilità sono la stessa proprietà vista da due riunioni diverse.

Sotto il pavimento

Cosa tiene la linea, in concreto

Non un'affermazione, un elenco. Se un fornitore non riesce a produrre questo elenco sul proprio prodotto, vale la pena notarlo.

26

Tabelle che portano la loro azienda, con il vincolo forzato attivo e non semplicemente disponibile.

72

Policy, scritte una alla volta così che ognuna sia stata letta da una persona, e non generate in un ciclo.

942

Test, eseguiti su un database ricostruito da zero ogni volta che qualcosa cambia.

0

Aziende predefinite. Una richiesta senza ambito fallisce prima di raggiungere i dati — non c'è un fallback da dimenticare di disattivare.

Come è costruita la separazione →

«Cinque aziende, cinque installazioni, cinque fatture da te.»

Una sola installazione. Cinque confini che il database mantiene.

Persone condivise, abitudini condivise, piattaforma condivisa — e nemmeno un cliente condiviso. Attraversare quella linea deve essere qualcosa che una persona ha fatto di proposito, mai qualcosa che un identificatore è riuscito a fare per sbaglio.

Come è costruita la separazione →