• Non ci sono risultati.

4. INTEGRAZIONE PROVIDER EMAIL/SMS

4.2 Integrazione Email

I messaggi (id creatività – HTML template) sono definiti sulla piattaforma MailUp (da Alfa) e recuperati, per renderli disponibile al SAS Campaign, tramite una chiamata Soap al metodo

GetNewsletters rilasciato dal provider:

string GetNewsletters(string accessKey, int listID)

accessKey: codice di accesso ottenuto tramite chiamata al metodo LoginFromId listID: Id della lista in cui sono stati definiti I messaggi. Elenco delle liste e ID

corrispondenti possono essere ottenuti tramite chiamata al metodo GetLists. L’output di ritorno è del tipo:

<?xml version="1.0" encoding="utf‐8"?> <GetNewslettersResult>

<errorCode>0</errorCode> <errorDescription /> <list>

<listID>1</listID>

<listName>News</listName> <newsletters>

<newsletter>

<newsletterID>1</newsletterID> <subject>Messaggio di test subject> <note>Campo descrittivo</note>

<creationdate>03/08/201712:32:31</creationdate> </newsletter>

<newsletter>

<newsletterID>2</newsletterID> <subject>Buon Compleanno </subject> <note></note> <creationdate>04/08/2017 12:32:31</creationdate> </newsletter> </newsletters> </list> </GetNewslettersResult>

Il processo SAS effettua una chiamata al metodo ogni ora e valorizza in una struttura SAS le seguenti informazioni:

CAMPO DESCRIZIONE

NEWSLETTER ID Id del messaggio

SUBJECT Oggetto associato al messaggio

NOTE Campo descrittivo definito durante la creazione del messaggio

CREATIONDATE Data di creazione del messaggio TABELLA 12: CAMPI PER OUTPUT GETNEWSLETTERS

69

Il processo stesso può essere impostato per filtrare solo alcuni messaggi in base alla data di creazione oppure in base alla presenza di un valore specifico nel campo note. Tali informazioni sono presenti all’interno del SAS Campaign nel nodo PreparaEmail, per permettere di associare uno specifico messaggio al target.

La definizione del target avviene nel tool di Marketing Automation SAS in base alla tipologia di campagna che il cliente vuole implementare. Una volta individuato il target oggetto della campagna, dovranno essere specificate alcune informazioni aggiuntive legate alla spedizione Email tramite il nodo PreparaEmail.

FIGURA 49: NODO PREPARE_EMAIL_INTEGRAZIONE_MAILUP

Il run del nodo valorizza in una tabella email_campaign_history (CDM), tutte le specifiche valorizzate dall’utente sulla campagna.

È stato impostato un processo schedulato, tramite lo strumento Task Scheduler (Win), che estrae giornalmente i target delle campagne andate in esecuzione nella data corrente (da contact_history) e comunica al provider il set di file concordato.

Nello specifico è possibile creare un file batch che richiama un codice SAS, il cui run viene eseguito in background, senza ausilio di tool o ambienti di sviluppo. Tale script invoca un file denominato master_email.sas che richiama a sua volta 3 codici SAS:

1. _ExtractFromCDM.sas

Estrae dalla contact_history tutti i clienti generati dalle campagne da contattare nella data corrente. Preliminarmente vengono effettuati dei controlli circa l’eventuale comunicazione già avvenuta e la validità dell’indirizzo email associato. Successivamente viene originata una tabella locale che associa ad ogni cliente le informazioni presenti sulla email_campaing_history della campagna afferente.

70

Si occupa della creazione del file xml per la gestione delle impostazioni di invio comunicazione ed un csv relativo ai clienti da contattare. Il setting.xml presenta le informazioni seguenti:

NOME CAMPO TYPE VALORE DESCRIZIONE

ACTION TYPE string send Modalità di azione richiesta per il batch FTP-ZIP.

CAMPAIGN CODE string

<CAMPCODE>_<MA RKETING_CELL_CO DE>

Campo contenente informazioni sul codice campagna e codice della specifica cella

FORMATVERSION string 0.1 Tipo di validazione XML

LISTID int tbd

Specifica lista per l’account MailUp. La lista utilizzata effettua in automatico la deduplica degli indirizzi email. Vedi sezione specifica.

LISTGUID string Tbd Identificatore univoco della lista per l’account MailUp. SENDERNAME string da campaign SAS Nome che verrà visualizzato

come sender della DEM

SENDEREMAIL string da campaign SAS Email che verrà visualizzata come sender della DEM

EMAILSUBJECT string da campaign SAS Oggetto della DEM SCHEDULEDATETIME string

da campaign SAS. esempio <2017-06- 01T11:00:00.000>

Data e ora in cui la DEM verrà spedita

SCHEDULETIMEZONE string Specifica del time zone

NOTE string

Da campaign SAS. <CELL_PACKAGE_S K>

Valorizzato con riferimento alla specifica campagna SAS. Questo valore viene esportato da MailUp nel flusso FULL dei feedback per il canale Email. il Campo non potrà essere utilizzato per altro. SEPARATOR string ; Separatore usato nel

recipients.csv ATTACHMENTS bool(string) false

DYNAMICFIELDS bool(string) true EMBEDDEDIMAGES bool(string) true LINKTRACKING bool(string) true HTTPLINKTRACKING bool(string) true MAILTOTRACKING bool(string) true FTPTRACKING bool(string) false NEWSTRACKING bool(string) false QUERYSTRINGADDITI

ONALPARAMS string blank BODYCODE string blank

71 HEADERCODE string blank

MESSAGEID int Da campaign SAS. <ID_Newsletters>

Campo valorizzato con l’ID della newsletter definita sulla

piattaforma MailUp e selezionata tramite SAS Campaign

TABELLA 13: CAMPI SETTINGS.XML

FIGURA 50: ESEMPIO DI VALORIZZAZIONE SETTINGS.XML

Nel file csv sono specificati tutti i destinatari della spedizione, i quali vengono recuperati a partire da quanto presente nella Contact History. Oltre alle informazioni di contatto sono definiti campi personalizzati del cliente e campi necessari per associare correttamente gli eventi del cliente alla campagna SAS.

La codifica del file è UTF-8 e conforme a quali sono le policies MailUp mentre il separatore utilizzato è il carattere “;” (come specificato nel file settings.xml).

Il file csv contiene una riga di intestazione che mappa i valori contenuti nella colonna con un campo corrispondente sulla piattaforma MailUp e nell’intestazione è specificato l’ID del campo come definito sulla console di amministrazione MailUp.

72

Il numero massimo di campi personalizzati definibili sono 39 (condivisi tra email e sms): utili per effettuare analisi a valle della spedizione. Seguiranno una tabella con le specifiche ed un esempio di valorizzazione:

NOME CAMPO TYPE ID CAMPO DESCRIZIONE

EMAIL_ADDRESS string 111 (special field)

Indirizzo email del destinatrio. Questo campo è un special filed di Mailup.

CAMPAIGN_CD string 1 Codice campagna

CELL_PACKAGE_CD string 2 Identificativo della campagna NOME string 3 Nome del cliente

COGNOME string 4 Cognome del cliente

NAZIONE string 5 Nazione di residenza del cliente DIVISIONE string 6 Brand prevalente del cliente

TABELLA 14: TRACCIATO RECIPIENT.CSV – INTEGRAZIONE EMAIL

111;1;2;3;4;5;6

marco.viturbi@gmail.com;CAMP28;CELL1886 ;Marco;Viturbi;Italia;Alfa Salotti rosa.valli@libero.it;CAMP28;CELL1886 ;Rosa;Valli;Italia;Alfa Salotti

Si rende necessaria una fase di deduplica email in quanto presenti clienti differenti che condividono il medesimo indirizzo di posta elettronica. A tal fine, la lista MailUp utilizzata, effettua in automatico l’eliminazione delle email duplicate durante l’importazione del target. Inoltre nel processo di creazione dei file csv gestito da SAS, è stato introdotto un controllo ulteriore sui target in cui si verifica la presenza di email duplicate e, in caso positivo, l’eliminazione delle stesse.

I codici clienti esclusi sono aggiunti alla tabella EMAIL_ESCLUSE_INVIO. Il tracciato è il seguente:

NOME CAMPO TYPE

EMAIL string CLIENTE_SK int CELL_PACKAGE_SK int DT_ESCLUSIONE Datetime TABELLA 15: CAMPI EMAIL_ESCLUSE_INVIO

3. _delivery_Xml_Csv.sas

Produce il file zip da depositare nell’area ftp condivisa e contiene al suo interno il

recipient.csv ed il setting.xml.

Il nome del file presenta la forma seguente:

<Prefisso_CodiceCampagnaSAS_CellPackageSAS_DataOraEsecuzione>.zip. Es: SASCM_DEM_CAMP28_1886_20170531_1500.zip.

73

Sul server ftp è presente un processo “on-demand” che importa lo zip nel momento di ricezione. Il provider si occuperà di processare i dati ed inviare la comunicazione in base alle specifiche riportate.

4.3 Integrazione SMS

L’integrazione tra il sistema SAS e la piattaforma MailUp avviene usando l’applicazione

Csv2Sms del provider. La stessa permette di condividere in un unico file le informazioni

riguardanti destinatari, il messaggio e le modalità di spedizione. Di seguito il disegno del processo:

FIGURA 51: PROCESSO DI INTEGRAZIONE SMS TRA I SISTEMI

Nella tabella per ogni singola attività viene identificato owner e strumento utilizzato per evadere il singolo task.

74

ATTIVITA OWNER

DEFINIZIONE DEL TARGET Utenti Alfa tramite SAS Marketing Automation

TEST DI SPEDIZIONE DEL MESSAGGIO Utenti Alfa tramite SAS Marketing Automation

ASSOCIAZIONE DEL MESSAGGIO AL TARGET E SPECIFICA SCHEDULAZIONE E DEFINIZIONE UTENTI CIVETTA

Utenti Alfa tramite SAS Marketing Automation

CREAZIONE DEL FILE CSV SU FTP Processo automatico SAS ACQUSIZIONE DEL FILE E SPEDIZIONE DELLA

CAMPAGNA

Processo automatico piattaforma MailUp ESPORTAZIONE SU FTP DEI FEEDBACK Processo automatico piattaforma MailUp IMPORTAZIONE FEEDBACK SUL SAS

CAMPAIGN

Processo automatico SAS TABELLA 16: TASK E OWNER – INTEGRAZIONE SMS

La definizione del target avviene nel tool Marketing Automation di SAS, in base alla tipologia di campagna che si vuole implementare. Una volta individuato il target oggetto della campagna dovranno essere specificate alcune informazioni aggiuntive legate alla spedizione sms tramite il nodo PrepareSMS.

FIGURA 52: NODO PREPARE_SMS

Nel file csv sono specificati tutti i destinatari della spedizione che vengono recuperati a partire da quanto presente nella Contact History. Oltre alle informazioni di contatto sono definiti campi

75

personalizzati del cliente ed il testo del messaggio da inviare. La codifica del file è UTF-8 ed il separatore utilizzato è il carattere “;”.

Viene proposto il medesimo processo schedulato proposto per l’altra integrazione. Anche qui è stato impostato un batch master.sas che estrae i clienti da contattare in base alle logiche descritte per l’email ma con focus sul contatto telefonico. Verrà realizzato un recipient.csv opportunamente valorizzato dalle informazioni compilate dall’utente e spedito nell’area ftp apposita.

Il file csv è composto da una sezione Header e sezione Messages.

La sezione Header è composta da un numero fisso di righe, ciascuno con un preciso significato e preceduti dal simbolo #:

RIGA CONTENUTO OPZIONALE

1 Autore file SI

2

Data e ora della spedizione nel formato “YYYY-MM-DD HH:MM”. Nel caso in cui il campo sia vuoto oppure venga riportata una data nel passato, i messaggi vengono inviati immediatamente. In caso di data di data non corretta il file non sarà importato. Il campo viene utilizzo solo se la riga 3 viene impostata ad I

SI

3 I=INVIO A=ACCODAMENTO NO (da impostare ad I) 4 Numero o nome che apparirà come mittente del messaggio. NO

5 Centro costo MailUp (List ID) SI

6 Nome Campagna NO

7 Codice Campagna. Codice non duplicabile e massimo 10 caratteri. NO TABELLA 17: TRACCIATO RECIPIENT.CSV – INTEGRAZIONE SMS

La sezione “Messages” può contenere un numero illimitato di righe e si riferiscono al messaggio da inviare. Il separatore è “;” e la prima riga contiene l’intestazione delle singole colonne. Il primo campo è MOBILE NUMER, il secondo campo TEXT (messaggio) e a seguire una serie di campi specifici (FIELD1, FIELD2) per la personalizzazione dei messaggi. I duplicati sul contatto mobile saranno scartati.

Esempio invio schedulazione per 29 Maggio 2017 alle 09:50 AM: #sacm

#2017-05-29 09:50 #I

#Divani & Salotti by Alfa #1

#Special offer #COD001

MOBILE NUMBER;TEXT;Field1;Field2;Field3;Field4;UNICODE

+18889624587;hello [#1] your surname is [#2] and you live in [#3] [#4];John;Smith;One Market Plaza, 5th floor;CA;0

0018881234567;hello [#2] your name is [#1] and you live in [#3] [#4];;Patricia;Johnson;Lexington, 1500;NY;0

76

+34933181998;Hola [#2] tu nombre es [#1];Miguel;Bosè;Plaza Major, 28;Madrid;0 +4901512345678; Halo [#2], du heißt [#1];Merkel; Angela;2;Berlin;0

Attualmente non vengono utilizzati i campi per la personalizzazione del messaggio.

Il file .csv realizzato avrà una nomenclatura del tipo

<Prefisso_CodiceCampagnaSAS_CellPackageSAS_DataOraEsecuzione>.csv. Es:

SASCM_SMS_CAMP1234_12345_20170531_1500.csv

Come per l’integrazione email, all’arrivo del file zip sull’area ftp del provider, partirà un processo on-demand per l’importazione del file.

4.4 Acquisizione Feedback

Per la componente E-mail è prevista la ricezione di due flussi, il primo identifica i ritorni delle interazioni dell’utente rispetto all’invio e-mail, denominato “FULL” mentre il secondo riguarda l’invio delle e-mail che hanno richiesto la disiscrizione, denominato “UNSUB”.

Il processo di acquisizione dei feedback prevede che MailUp depositi su una cartella specifica del server ftp un file che contenga i ritorni delle campagne e-mail inviate. Il file sarà incrementale e la nomenclatura sarà la seguente: <Prefisso_Tipo_DataOraEsecuzione>.csv (DEM_FULL_20170531_1500.csv); la struttura è di seguito riportata:

NOME CAMPO TYPE DESCRIZIONE OPZIONALE

LIST ID Number Specifica lista per l’account MailUp NO SEND ID Number ID invio MailUp SI MESSAGE ID Number ID messaggio

MailUp SI

E-MAIL ADDRESS String Indirizzo e-mail NO SUBJECT String Oggetto e-mail NO

STATUS String

I possibili valori sono: OPN (open) CLK (click) NCO (not delivered) SNT (sent)

SI

DETAILS String

URL selezionato (se Status=CLK) or bounce code* (se Status=NCO)

SI

DATE

ISO format for dates yyyym mddThhmmss. Italian time zo ne applies Data in cui è avvenuta l’operazione. NO

77 SEND DATE

ISO format for dates yyyym mddThhmmss.

Italian time zo ne applies

Data invio messaggio SI

NOTE Stiring

Informazione di ritorno dal campo note del file settings.xml relative ad una specifica spedizione

NO

TABELLA 18: CAMPI FEEDBACK - INTEGRAZIONE EMAIL

BOUNCE TYPE* BOUNCE DESCRIPTION

AR Auto Reply

BN Bounce No Email Address

CR Challenge-Response

GB General Bounce

HB Hard Bounce

MB Mail Block - General

MBAD Mail Block - Attachment Detected MBKS Mail Block - Known Spammer MBRD Mail Block - Relay Denied MBSD Mail Block - Spam Detected

NB Non Bounce

SB Soft Bounce - General

SBDF Soft Bounce - Dns Failure SBMF Soft Bounce - Mailbox Full

SBMS Soft Bounce - Message Size Too Large

SR Subscribe Request

TB Transient Bounce

UR Unsubscribe Request

TABELLA 19: OPZIONI PER CAMPO BOUNCE

78

NOME CAMPO TYPE DESCRIZIONE OPZIONALE

LIST ID Number Specifica lista per l’account MailUp SI MESSAGE ID Number ID messaggio MailUp SI E-MAIL ADDRESS String Indirizzo e-mail NO UNSUBSCRIPTION DATE String Data di disiscrizione in formato ISO: 20110122T111244 SI TYPE* Number Tipologia di

didiscrizione SI TABELLA 20: CAMPI UNSUB – INTEGRAZIONE EMAIL

TYPE* DESCRIPTION

0 Output forzato dalla console di amministrazione MailUp. 2 Destinatario effettua click su link per la disiscrizione 4 Importato come disiscritto

8 Hard Bounce

16 Feedback Loop (spam notification) 32,64 Newsletter (unsibscribe header) 128 Destinatario inattivo

256 Disiscrizione a fronte di un email bloccata 512 Disiscrizione a fronte di un bounce ripetuto

TABELLA 21: OPZIONI CAMPO TYPE

Lato-Alfa, il flusso degli “Unsubscribe” risulta composto anche da una “fase manuale”, poiché alcuni utenti finali inviano la richiesta di disiscrizione ad una casella di posta Alfa dedicata. Tale tipologia di disiscrizione viene riportata sul sistema di MailUp tramite attribuzione nel campo Type del valore “0”.

Di seguito alcuni dati di esempio: FULL idList;idInvio;idN;email;subject;Note;statusType;details;statusChange;sentDate;campo 12;10;18397;478;paolo.vitali@hotmail.it;Benvenuto in Alfa Italia;Test_CELL1841;OPN;;20170727T131627;20170725T164207;9999999 UNSUB email;idList;OptOut_Date;message_id;optout_type mandyj_ca@yahoo.com;8;20170801T153753;399;16 tmv@fastwebnet.it;8;20170801T223739;438;2

Per la restante componente (SMS), vengono depositati due file (MailUp) sulla medesima area ftp: “STAT” e “UNSUB”. Di seguito i tracciati:

79

CAMPO (STAT) DESCRIZIONE

LISTA Codice della lista MailUp MESSAGGIO Testo dell’SMS

NUMERO DI TELEFONO Cellulare del destinatario DATA Data di invio del messaggio

TABELLA 22: SPECIFICHE CONTATTO – INTEGRAZIONE SMS

CAMPO (UNSUB) DESCRIZIONE

LISTA Codice della lista MailUp MESSAGGIO Testo dell’SMS

NUMERO DI TELEFONO Cellulare del destinatario EVENTO Disiscrizione

DATA Data di invio del messaggio TABELLA 23: CAMPI UNSUB – INTEGRAZIONE SMS

Per abilitare la disiscrizione della ricezione di un SMS da parte del cliente, è necessario che sia abilitata la funzionalità lato-MailUp. In caso di abilitazione, la modalità di cancellazione da una lista specifica avviene attraverso la spedizione di un SMS verso il numero prestabilito. Si dovrà indicare una KEYWORD della lista a cui disiscriversi (es. "News STOP" al numero 00393201234567 per disiscriversi dalle campagne SMS della lista 5, che ha come keyword "News", della console MailUP).

In base alle informazioni dei feedback UNSUB e FULL acquisite da MailUp, viene popolata la seguente struttura (RESPONE_HISTORY) che unisce le risposte ricevute per i canali EMAIL ed SMS oltre che ad arricchire con alcune informazioni necessarie.

NOME CAMPO TYPE DESCRIZIONE

LIST ID Number Specifica lista per l’account MailUp

SEND ID Number ID invio MailUp

MESSAGE ID Number ID messaggio MailUp

E-MAIL

ADDRESS String Indirizzo e-mail

MOBILE PHONE String Contatto telefonico

SUBJECT String Oggetto e-mail

STATUS String

I possibili valori sono: OPN (open)

CLK (click)

NCO (not delivered) SNT (sent)

DETAILS String URL selezionato (se Status=CLK) or

bounce code* (se Status=NCO) SUB DETAILS String

Tipologia di disiscrizione. Valorizzato solo nel caso in cui si è verificato l’evento di

disiscrizione DATE

ISO format for dates yyy ymmddThhmmss. Italian time zone applies

80 SEND DATE

ISO format for dates yyy ymmddThhmmss. Italian time zone applies

Data invio messaggio

CELL PACKAGE String Da campo Note.

ID CLIENTE Number Codice Cliente

TABELLA 24: CAMPI RESPONSE_HISTORY

Come per la prima parte dell’integrazione, si è reso necessario impostare un processo giornaliero che estrae i feedback dalle apposite aree ftp ed aggiorna la RESPONSE_HISTORY. Nel caso sia stata effettuata una deduplica dell’email, l’associazione tra ID Cliente ed Email utilizza le informazioni presenti nell’anagrafica clienti, nella contact history e le dedupliche effettuate e memorizzate nella struttura EMAIL_ESCLUSE_INVIO.

81

4.5 Analisi post-Campaign

L’ acquisizione feedback svolge un ruolo fondamentale nella fase di analisi della response delle campagne. Da un punto di vista tecnico l’area Campaign Management fornisce all’area Business Intelligence di Value Lab un set di entità attraverso il quale generare reportistiche da presentare ad Alfa. In tal senso l’autore della tesi ha dovuto predisporre un processo specifico per realizzare le 5 entità da fornire al team BI.

Per una questione di onerosità computazione relativa al processamento dei dati, il team BI ha richiesto all’area Campaign Management di produrre 5 viste relative a:

• Anagrafica_Campagne

Al fine di associare ad ogni ricorrenza della campagna (Campagna  Cell Package) informazioni sul target iniziale, totale invii, totale views (apertura della mail), totale click, totale usnsubscibers e bounce (necessaria Response_History).

• Entità_Cliente

Informazioni anagrafica clienti e data di contatto. • Entità_Cliente_Wave

Associazione Cliente-Feedback sul cell_package di occorrenza (view, click, open..). • Entità_Contact_History

Associazione Cliente-Cell_Package e data di contatto. • Entità_Vendite

Dettaglio vendite sui clienti contattati dalle campagne.

Fedelmente ai numerosi processi schedulati precedentemente descritti, è stato impostato un task scheduler giornaliero che ricalcola in delta le 5 viste scritte sul DWH: si verifica quali campagne devono essere aggiornate e a scalare dalla prima entità, tutte le altre.

L’area Business di Alfa, in seguito ad un’attenta analisi dei report forniti dal team BI di Value Lab, comunicherà ai designer delle campagne di apportare eventuali modifiche oppure utilizzare altre promozioni da offire ai clienti. Non è escluso che Alfa richieda al team Data Analytics di Value Lab, di analizzare i risultati ottenuti e realizzare modelli analitici da applicare alle campagne, al fine di raffinare le strategie di marketing attualemente in uso. Nel caso in cui tale evenienza trovi terreno fertile, gli analisti utilizzeranno il tool SAS Enterprise Miner ed offriranno al team Campaign modelli da integrare in SAS Marketing Automation.

Tale circostanza non è ancora avvenuta, ma non è escluso che possa verificarsi nell’avvenire: sarebbe interessante adottare una “churner analysis” nella campagna “Anniversario Primo Acquisto”, al fine di identificare quali clienti sono più a rischio e reindirizzarli verso una differente promozione, attraverso l’opportuno canale di contatto.

82

Considerazioni Finali

Il porgetto formativo ha fornito la possibilità di applicare in contesti reali le tematiche affrontate durante il percorso di studi.

In particolare il lavoro svolto è direttamente collegato al data warehousing, al business intelligence e ai data analytics. In riferimento a questi ultimi, come anticipato nell’ultimo paragrafo, sarebbe interessante applicare un modello analitico tra quelli studiati per aumentare il tasso di rendimento delle campagne. In tal modo il modello di gestione delle campagne basato sulla customer intelligence, porterebbe alla creazione di campagne mirate ai clienti di maggiore valore.

Ovviamente ciò è dipeso dalla disponibilità dei feedback ottenuti successivamente al lancio delle campagne, le quali hanno bisogno di un ciclo temporale abbastanza ampio prima di poterle analizzare e la circostanza non si è ancora verificata. Altresì non è consigliabile applicare

Documenti correlati