Attivazione - Autenticazione
Verificare di aver attivato le API per il proprio utente alla pagina API: ATTIVAZIONE dove è possibile prendere visione della propria password di autenticazione.
Attenzione: le credenziali per le API sono diverse da quelle utilizzate per accedere al backend e sono disponibili solo nella pagina di attivazione API sopra indicata.

Il metodo di autenticazione previsto è HTTP Basic authentication (BA):
L'header Authorization è costruito in questo modo:
Username e password sono uniti nella stringa "username:password" che successivamente viene codificata con base64
La stringa già codificata sarà disponibile nella pagina di attivazione API.
Esempio:
username: test@email.it
password: $avr1$r078bsgm$f0dioKbCJmZHFPIOtmlxv5

                            
                                Authorization: Basic dGVzdEBlbWFpbC5pdDokYXZyMSRyMDc4YnNnbSRmMGRpb0tiQ0ptWkhGUElPdG1seHY1
                            
                        
PING
Ping the API: da usare per testare l'API REST, non necessita di autenticazione.
URL /ping
Method GET
Authentication NOT required
Response Status Codes:

406: Not Acceptable
415: Unsupported Media Type
200: OK
404: Not Found
Headers Content-Type:

application/vnd.leads.v1+json
application/json
Success Response Code: 200
Body:
                                            
{
    "ack": "Acknowledge the request with a timestamp"
}      
                                            
                                        
USER
Test autenticazione: da usare per testare l'API REST con autenticazione.
URL /user
Method GET
Authentication Required
Response Status Codes:

401: Unauthorized
403: Forbidden
406: Not Acceptable
415: Unsupported Media Type
200: OK
404: Not Found
Headers Content-Type:

application/vnd.leads.v1+json
application/json
Success Response Code: 200
Body:
                                            
{
    "email": "L'email dell'utente autenticato"
}      
                                            
                                        
LEADS
Restituisce i leads ricevuti (per default degli ultimi 6 mesi, modificabile con il parametro "date_from")
URL /leads
Method GET
Authentication Required
URL Params Optional

after_id=[numeric] Restituisce i lead successivi all'id
example: after_id=9999

date_from=[date] Restituisce i lead successivi la data indicata
example: date_from=2017-01-01

date_to=[date] Restituisce i lead precedenti alla data indicata
example: date_to=2017-01-01

new=TRUE Utile per scaricare solo i nuovi lead: ogni volta che viene usato viene memorizzato
l'ultimo lead restituito e alla successiva chiamata restituisce solo i successivi.
E' possibile usarlo con gli altri parametri
La memorizzazione dell'ultimo lead viene fatta solo quando è presente il parametro new=TRUE
example: new=TRUE
Response Status Codes:

406: Not Acceptable
415: Unsupported Media Type
200: OK
404: Not Found
401: Unauthorized
403: Forbidden
400: Bad Request error
Headers Content-Type:

application/vnd.leads.v1+json
application/json
Success Response Leads collection
Code: 200
Body:
                                            
 [
    {
         "id_lead": 300,
         "id_master_cliente": "38933r3ihrei9efneoin",
         "sito": "Masterin.it",
         "nome_master": "Master di test",
         "sede_master": "Torino",
         "data_invio": "2017-04-20",
         "email": "mario.rossi@email.it",
         "nome": "Mario",
         "cognome": "Rossi",
         "titolo_studio": "LAUREA DI PRIMO LIVELLO",
         "laurea": "Scienze politiche",
         "nazione": "Italia",
         "nazione_id": 100,
         "regione": null,
         "recapito": "3330000000",
         "messaggio": "Gradirei ricevere maggiori informazioni sul Master in oggetto",
         "preferences": ["info_brochure", "info_costi"],
         "fonte": "form"
    }
]

                                            
                                        
Descrizione LEAD
Nome Tipo Descrizione
id_lead int identificativo del lead
id_master_cliente string identificativo del master
sito string Nome del sito di provenienza del lead (es: 'Masterin.it')
nome_master string Master a cui è riferito il lead
sede_master string Sede del Master a cui è riferito il lead (o "Online" se il corso è erogato a distanza)
data_invio date Data di ricezione del lead (es: 2017-04-20)
dati del richiedente informazioni
email string Email
nome string Nome
cognome string Cognome
titolo_studio string Titolo di studio
laurea string Laurea
nazione string Nazione
nazione_id int Codice istat della nazione
regione string Deprecato Restituisce sempre null. Campo non più valorizzato.
recapito string Recapito
messaggio string Messaggio
preferences array Preferenze selezionate dal candidato. Array vuoto [] se nessuna preferenza.
Valori possibili:
info_brochure = "Ricevere la brochure completa"
info_costi = "Conoscere piano dei costi e agevolazioni"
info_requisiti = "Verificare requisiti di accesso e borse di studio"
info_colloquio = "Fissare un colloquio di orientamento (non impegnativo)"
fonte string Mezzo che ha generato il lead. Valori possibili:
form = form classico di richiesta informazioni sul sito (anche default per valori non riconosciuti)
chat = chatbot presente sul sito
whatsapp = interazione col chatbot tramite WhatsApp
ESEMPI

username: test@email.it
password: $avr1$r078bsgm$f0dioKbCJmZHFPIOtmlxv5
                                        
$user = 'test@email.it';
$pass = '$avr1$r078bsgm$f0dioKbCJmZHFPIOtmlxv5';
$auth_code = base64_encode("$user:$pass");
                                            
$request = new HttpRequest();
$request->setUrl('https://api.masterinfo.eu/leads');
$request->setMethod(HTTP_METH_GET);

$request->setHeaders(array(
  'cache-control' => 'no-cache',
  'authorization' => "Basic $auth_code"
));

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}
                                        
                                    
                                        
var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.masterinfo.eu/leads",
  "method": "GET",
  "headers": {
    "authorization": "Basic dGVzdEBlbWFpbC5pdDokYXZyMSRyMDc4YnNnbSRmMGRpb0tiQ0ptWkhGUElPdG1seHY1",
    "cache-control": "no-cache"
  }
}

$.ajax(settings).done(function (response) {
  console.log(response);
});     
                                        
                                    
                                        
var http = require("https");

var options = {
  "method": "GET",
  "hostname": "api.masterinfo.eu",
  "port": null,
  "path": "/leads",
  "headers": {
    "authorization": "Basic dGVzdEBlbWFpbC5pdDokYXZyMSRyMDc4YnNnbSRmMGRpb0tiQ0ptWkhGUElPdG1seHY1",
    "cache-control": "no-cache"
  }
};

var req = http.request(options, function (res) {
  var chunks = [];

  res.on("data", function (chunk) {
    chunks.push(chunk);
  });

  res.on("end", function () {
    var body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});

req.end();   
                                        
                                    
ESEMPI FILTRO DATA:
leads dal 1° gennaio 2017 ad adesso

username: test@email.it
password: $avr1$r078bsgm$f0dioKbCJmZHFPIOtmlxv5
                                        
$user = 'test@email.it';
$pass = '$avr1$r078bsgm$f0dioKbCJmZHFPIOtmlxv5';
$auth_code = base64_encode("$user:$pass");
                                            
$request = new HttpRequest();
$request->setUrl('https://api.masterinfo.eu/leads');
$request->setMethod(HTTP_METH_GET);

$request->setQueryData(array(
  'date_from' => '2017-01-01'
));

$request->setHeaders(array(
  'cache-control' => 'no-cache',
  'authorization' => "Basic $auth_code"
));

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}
                                        
                                    
                                        
var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://api.masterinfo.eu/leads?date_from=2017-01-01",
  "method": "GET",
  "headers": {
    "authorization": "Basic dGVzdEBlbWFpbC5pdDokYXZyMSRyMDc4YnNnbSRmMGRpb0tiQ0ptWkhGUElPdG1seHY1",
    "cache-control": "no-cache"
  }
}

$.ajax(settings).done(function (response) {
  console.log(response);
});     
                                        
                                    
                                        
var http = require("https");

var options = {
  "method": "GET",
  "hostname": "api.masterinfo.eu",
  "port": null,
  "path": "/leads?date_from=2017-01-01",
  "headers": {
    "authorization": "Basic dGVzdEBlbWFpbC5pdDokYXZyMSRyMDc4YnNnbSRmMGRpb0tiQ0ptWkhGUElPdG1seHY1",
    "cache-control": "no-cache"
  }
};

var req = http.request(options, function (res) {
  var chunks = [];

  res.on("data", function (chunk) {
    chunks.push(chunk);
  });

  res.on("end", function () {
    var body = Buffer.concat(chunks);
    console.log(body.toString());
  });
});

req.end(); 
                                        
                                    
INTEGRAZIONE UTILIZZANDO ZAPIER
E' possibile ricevere automaticamente i leads di MasterIN sul proprio CRM (e molto altro) utilizzando Zapier,
una piattaforma online che permette di integrare tra di loro diverse applicazioni e servizi web.
Qui i servizi integrati in Zapier: Integrations.
Vediamo come creare uno Zap (operazione di integrazione) partendo dall'evento di un nuovo lead:

Le schermate seguono l'editor Zapier attuale (canvas). Come esempio di app di destinazione usiamo Google Sheets; il flusso è identico con qualunque altra app. I dati del lead mostrati nel test sono di esempio.

  1. Accedi a Zapier e crea un nuovo Zap. Si apre l'editor a canvas con i blocchi Trigger e Action. Clicca sul blocco Trigger.
  2. Cerca e seleziona la nostra app MasterIN (ora pubblica: niente più invito né etichetta "Beta").
  3. Nella scheda Setup, con l'app MasterIN impostata, apri Trigger event e seleziona New Lead.
  4. Alla voce Account collega il tuo account inserendo le stesse credenziali (username e password) dell'autenticazione delle API, seleziona l'account e clicca Continue.
  5. Passa alla scheda Test e clicca Test trigger: vengono mostrati fino a 3 lead recenti. Aprendo un record vedi tutti i campi, inclusi i due più recenti: "Mezzo che ha generato il lead" (campo fonte: form / chat / whatsapp) e "Preferenze informative selezionate" (campo preferences, una lista).
    Nota: i 3 record sono solo un'anteprima; quando lo Zap è attivo vengono elaborati tutti i nuovi lead.
  6. Ora prosegui con una delle tante app presenti su Zapier. Come esempio usiamo Google Sheets: clicca sul blocco Action e seleziona l'app.
  7. Scegli l'Action event (es. Create Spreadsheet Row), collega l'account dell'app di destinazione e clicca Continue.
  8. Nella scheda Configure indica dove scrivere (per Google Sheets: Drive, Spreadsheet, Worksheet); poi associa a ogni colonna un campo del lead MasterIN — nome, cognome, email, recapito e, novità, fonte e preferences.
  9. Entrambi i campi nuovi sono disponibili nel selettore dei dati del trigger: "Mezzo che ha generato il lead" e "Preferenze informative selezionate".
  10. Nella scheda Test clicca Test step per verificare (oppure Skip test). Se è tutto a posto, clicca Publish in alto a destra per attivare lo Zap e farlo lavorare in automatico. Puoi anche proseguire il flusso aggiungendo altre azioni con altri servizi.