Prerequisiti
Affinché questo tutorial sia il più proficuo possibile, avrai bisogno delle seguente competenze:
- Conoscenze di base del formato JSON
- Conoscenza delle opzioni del file di configurazione
- Conoscenze di base dei database e dei termini correlati: record, aggiornamento, ecc.
Caso d'uso 1
Questo caso descrive il file di configurazione per l'universo "myuniverse_crm".
Josh Beets è un Direttore CRM nella sua azienda e, pertanto, è responsabile della creazione e della manutenzione del file di configurazione per gli import.
Contesto: contatti
Josh definisce due sotto-sequenze per questo contesto: PRCL e MGTSB.
- La sotto-sequenza PRCL permette di creare e aggiornare i contatti esistenti ("create contacts": "1", "update contacts": "1"). Inoltre la lista 0 viene reimpostata per questo import ("init lists": [0]) – la chiamiamo sincronizzazione "full mode" (completa). In questo modo, se tutti i contatti importati vengono iscritti a questa lista, potrai facilmente individuare l'import più recente.
- L'obiettivo della sotto-sequenza MGTSB è quello di inserire i contatti nella lista 1. La lista viene cancellata prima di ogni import ("init lists": [1]) per prevenire la creazione di nuovi contatti ("create contacts": "0").
Poiché si suppone che tutti i contatti provengano dalla Francia, Josh vuole applicare il prefisso internazionale francese a tutti i numeri di telefono che non lo contengono ("default cellphone prefix": "33").
Contesto: prodotti
Anche qui le sotto-sequenze vengono utilizzate per scopi differenti.
- La sotto-sequenza ERP è utilizzata per aggiornare i prodotti esistenti nel database, qualora una descrizione oppure un prezzo di un prodotto debbano essere modificati. Tramite questo import, non possono essere aggiunti nuovi prodotti ("create products": "0", "update products": "1").
- Al contrario, sia MGTEN che MGTFR sono destinate ad aggiungere nuovi prodotti. Quando non è presente un'opzione, Splio considera il suo valore predefinito ("create products": "1", "update products": "1").
Verifiche finali
Non ci sono restrizioni per gli ambiti restanti: scontrini (orders) e righe scontrino (ordersitems).
Prima di inviare il file, Josh deve assicurarsi di aver fornito tutti gli indirizzi email per ricevere il report di import ("report recipients": ["myemail@mycompany.com"]) e le notifiche ("alert recipients": ["myemail@mycompany.com"]).
Josh imposta anche l'opzione di sovrascrivere su zero ("overwrite with empty values": "0"). Questa impostazione è importante se si importano contatti o altri dati già esistenti nel database. Con l'opzione impostata su 0, Josh è certo che il valore nel database sarà preservato se il campo nel file è vuoto.
Dopo aver ricontrollato tutto, Josh invia il file a Splio.
Il file JSON
Puoi vedere l'intero file JSON inviato a Splio qui di seguito.
"myuniverse_crm":{
"contacts":{
"PRCL":{
"report recipients": ["myemail@mycompany.com"],
"alert recipients": ["myemail@mycompany.com"],
"overwrite with empty values": "0",
"default cellphone prefix": "33",
"create contacts": "1",
"update contacts": "1",
"init lists": [0]
},
"MGTSB":{
"report recipients": ["myemail@mycompany.com"],
"alert recipients": ["myemail@mycompany.com"],
"overwrite with empty values": "0",
"default cellphone prefix": "33",
"create contacts": "0",
"update contacts": "1",
"init lists": [1]
}
},
"orders":{
"ERP":{
"report recipients": ["myemail@mycompany.com"],
"alert recipients": ["myemail@mycompany.com"],
"overwrite with empty values": "0"
}
},
"ordersitems":{
"ERP":{
"report recipients": ["myemail@mycompany.com"],
"alert recipients": ["myemail@mycompany.com"],
"overwrite with empty values": "0"
}
},
"products":{
"ERP":{
"report recipients": ["myemail@mycompany.com"],
"alert recipients": ["myemail@mycompany.com"],
"overwrite with empty values": "0",
"create products": "0",
"update products": "1"
},
"MGTEN":{
"report recipients": ["myemail@mycompany.com"],
"alert recipients": ["myemail@mycompany.com"],
"overwrite with empty values": "0"
},
"MGTFR":{
"report recipients": ["myemail@mycompany.com"],
"alert recipients": ["myemail@mycompany.com"],
"overwrite with empty values": "0"
}
}
}
}
Caso d'uso 2
Il caso 2 presenta un file di configurazione con un approccio un po' diverso rispetto al caso 1. Dà priorità al file importato ("overwrite with empty values": "1"); pertanto, se aggiorni un record, tutti i dati saranno sovrascritti anche se il campo nel file importato è vuoto.
Bill Hook, Vice Direttore Marketing, è incaricato di preparare il file di configurazione. Utilizzerà gli stessi indirizzi email per i report e le notifiche in tutti i contesti e in tutte le sotto-sequenze.
Contesto: contatti
In questo contesto, Bill sta per definire due sotto-sequenze:
- La sotto-sequenza "full" (completa) ha lo scopo di importare nuovamente tutti i contatti da una fonte esterna. Per questo motivo, Bill permette la creazione dei contatti ("create contacts": "1") e l'aggiornamento di quelli esistenti ("update contacts": "1"). In questo caso sarà utile l’impostazione che permette di sostituire i valori con NULL ("overwrite with empty values": "1"): se alcune informazioni sono state rimosse dalla fonte, saranno rimosse anche dal database dei contatti in Splio. Bill si assicura inoltre di reinizializzare la lista 0 ("init lists": [0]), che sarà poi integrata con i dati importati.
- La sotto-sequenza "incremental" (incrementale) è definita in modo analogo alla sotto-sequenza "full" (completa) con una sola differenza significativa: la lista 0 non viene cancellata. Pertanto, l'import potrà aggiungere ed eliminare membri dalla lista utilizzando i valori nel campo "subscription" oppure lasciarla intatta.
Entrambe le sotto-sequenze stimano che i numeri di telefono importati sono francesi ("default cellphone prefix": "33"), indicando a Splio di utilizzare il prefisso internazionale francese per tutti i numeri che ne sono sprovvisti.
Contesto: scontrini, righe scontrino e prodotti
I contesti restanti non utilizzano alcuna restrizione particolare. Bill mantiene le opzioni che consentono la creazione e l'aggiornamento dei record dei prodotti così com'erano nella versione precedente del file ("create products": "1", "update products": "1"). Sebbene si tratti di valori predefiniti che possano venire eventualmente eliminati, Bill li conserva per ricordare che questo comportamento è importante durante l'import.
Il file JSON
Puoi vedere qui di seguito il file JSON completo.
{
"mybrand2":{
"contacts":{
"full":{
"report recipients": ["tech@mybrand2.com , myemail@company.com"],
"alert recipients": ["tech@mybrand2.com , myemail@company.com"],
"overwrite with empty values": "1",
"default cellphone prefix": "33",
"create contacts": "1",
"update contacts": "1",
"init lists": [0]
},
"incremental":{
"report recipients": ["tech@mybrand2.com , myemail@company.com"],
"alert recipients": ["tech@mybrand2.com , myemail@company.com"],
"overwrite with empty values": "1",
"default cellphone prefix": "33",
"create contacts": "1",
"update contacts": "1"
}
},
"orders":{
"default":{
"report recipients": ["tech@mybrand2.com , myemail@company.com"],
"alert recipients": ["tech@mybrand2.com , myemail@company.com"],
"overwrite with empty values": "1"
}
},
"ordersitems":{
"default":{
"report recipients": ["tech@mybrand2.com , myemail@company.com"],
"alert recipients": ["tech@mybrand2.com , myemail@company.com"],
"overwrite with empty values": "1"
}
},
"products":{
"default":{
"report recipients": ["tech@mybrand2.com , myemail@company.com"],
"alert recipients": ["tech@mybrand2.com , myemail@company.com"],
"overwrite with empty values": "1",
"create products": "1",
"update products": "1"
}
}
}
}