Leggi le domande frequenti
Novità
Supporto Bitrix24
Registrazione e accesso
Sicurezza in Bitrix24
Come iniziare?
Feed
Messenger
Collab
Calendario
Pagina principale: vibe
Bitrix24 Drive
Webmail
Gruppi di lavoro
Incarichi e progetti
CoPilot — IA in Bitrix24
CRM
Prenotazione online
Contact Center
Sales Center
Analisi CRM
Sales Intelligence
Generatore Bi
Bitrix24 Market
Siti e store
Online store
CRM + Online store
Dipendenti
Knowledge base
Firma elettronica
Firma elettronica per HR
Automazione
Flussi di lavoro
Marketing
Gestione inventario
Telefonia
Mio profilo
Impostazioni
Abbonamento
Enterprise
Bitrix24 On-Premise
Bitrix24 Messenger
Domande generali
Accedi
Il tuo Bitrix24
Autorizza a immettere il
Bitrix24 della tua azienda.
Immetti

Bitrix24 Helpdesk

Bitrix24 ha una nuova interfaccia. Alcune immagini degli articoli potrebbero non corrispondere ancora al nuovo design, le aggiorneremo presto.

Webhook

Come forse saprai, Bitrix24 include API REST estese che possono essere usate per ampliare le caratteristiche e le integrazioni con i sistemi di terzi parti. I metodi REST possono creare e modificare le voci di CRM e gli incarichi, pubblicare messaggi nel Flusso attività, in pratica possono fare quasi ogni cosa. 

Tuttavia, fino a poco tempo fa la vita di uno sviluppatore REST, apparentemente tranquillo, era turbata da un'ombra incombente del protocollo OAuth 2.0 che era stato un requisito, e difficile da implementare in questo. Anche se è passato un po' di tempo da quando è stato introdotto ed è attualmente ancora in uso dalle principali compagnie di sviluppo software, molti sviluppatori sono ancora spaventati quando un protocollo deve essere implementato partendo da zero. Un altro svantaggio è che occasionalmente dovresti aggiornare i token di autenticazione se il requisito è lo scambio continuo e automatizzato di dati senza supervisione con Bitrix24. 

A volte tutto ciò che viene chiesto ad uno sviluppatore è di connettere un'istanza Bitrix24 ad un sistema di terze parti noto, o semplicemente ad un modulo web. Supponiamo che, dopo la festa di giardino di ieri, il capo soffra di un terribile mal di testa e che all'improvviso vuole i rapporti di magazzino pubblicati su Flusso attività. Che cosa gli dici? 

Facile, signori. Ti abbiamo appena semplificato la vita: è stato ideato un nuovo sistema di integrazione Bitrix24 ed è perfetto per soluzione interne. Sto parlando del famigerato webhooks. Beh, famigerato potrebbe non essere la parola giusta: sono famosi per rendere gli sviluppatori felici! 

Con webhook puoi sfruttare i metodi API REST risparmiando di dover implementare OAuth 2.0. 

Webhook in uscita

Bene, vediamo come funziona. Assumiamo di avere un Modulo feedback sul nostro Sito web che per qualche motivo ancora non utilizza i Moduli CRM di Bitrix24 e siamo abbastanza testardi da lasciarlo così com'è, mentre, aggiungendo elementi ed altro, potremmo creare nuovi lead in Bitrix24 con l'invio del modulo. 

Tutto ciò che facciamo è aprire Applicazioni > Webhooks e cliccare su "Aggiungi webhook": 

Seleziona "webhook in uscita" come tipo (il nostro obiettivo è connettersi esternamente a Bitrix24, giusto?) ed ecco.... il modulo dei parametri del webhook. 

Inserisci il nome e la descrizione del webook, e seleziona il modulo a cui accedere. In questo caso abbiamo bisogno di accedere al Modulo CRM perché vogliamo aggiungere un lead 

Clicca su "Salva". Adesso il modulo ti mostrerà nuove informazioni: 

Ora vediamo cosa include l'URL. 

1. Questo è l'ID dell'utente i cui diritti di accesso saranno applicati al Webhook. Ovviamente, l'URL specifica ID dell'utente di chi ha appena creato il webhook. 
2. Il codice webhook. Tienilo al sicuro. Non pubblicare un selfie con questo codice su Instagram.3A metodo REST da eseguire. Il metodo "profilo" è un buon esempio; useremo invece  crm.lead.add . 
3. Tutto ciò che dobbiamo fare adesso è chiamare URL correttamente, quello che la macchina intelligente ha creato per noi, solo includendo il nome del metodo richiesto. Questo è tutto quello che devi fare. 

Ed ecco come può essere fatto: 

<?
/**
 * Scrivi i dati dai file di registro.
 *
 * @param mixed $data
 * @param string $title
 *
 * @return bool
 */
function writeToLog($data, $title = '') {
 $log = "\n------------------------\n";
 $log .= date("Y.m.d G:i:s") . "\n";
 $log .= (strlen($title) > 0 ? $title : 'DEBUG') . "\n";
 $log .= print_r($data, 1);
 $log .= "\n------------------------\n";
 file_put_contents(getcwd() . '/hook.log', $log, FILE_APPEND);
 return true;
}

$defaults = array('first_name' => '', 'last_name' => '', 'phone' => '', 'email' => '');

if (array_key_exists('saved', $_REQUEST)) {
 $defaults = $_REQUEST;
 writeToLog($_REQUEST, 'webform');

 $queryUrl = 'https://restapi.bitrix24.ru/rest/1/31uhq2q855fk1foj/crm.lead.add.json';
 $queryData = http_build_query(array(
 'fields' => array(
 "TITLE" => $_REQUEST['first_name'].' '.$_REQUEST['last_name'],
 "NAME" => $_REQUEST['first_name'],
 "LAST_NAME" => $_REQUEST['last_name'],
 "STATUS_ID" => "NEW",
 "OPENED" => "Y",
 "ASSIGNED_BY_ID" => 1,
 "PHONE" => array(array("VALUE" => $_REQUEST['phone'], "VALUE_TYPE" => "WORK" )),
 "EMAIL" => array(array("VALUE" => $_REQUEST['email'], "VALUE_TYPE" => "WORK" )),
 ),
 'params' => array("REGISTER_SONET_EVENT" => "Y")
 ));

 $curl = curl_init();
 curl_setopt_array($curl, array(
 CURLOPT_SSL_VERIFYPEER => 0, 
 CURLOPT_POST => 1,
 CURLOPT_HEADER => 0,
 CURLOPT_RETURNTRANSFER => 1,
 CURLOPT_URL => $queryUrl,
 CURLOPT_POSTFIELDS => $queryData,
 ));

 $result = curl_exec($curl);
 curl_close($curl);

 $result = json_decode($result, 1);
 writeToLog($result, 'webform result');

 if (array_key_exists('error', $result)) echo "Error saving lead: ".$result['error_description']."<br/>";
}

?>
<fo rm method="post" action="">
    Nome: <input type="text" name="first_name" size="15" value="<?=$defaults['first_name']?>"><br/>
    Cognome: <input type="text" name="last_name" size="15" value="<?=$defaults['last_name']?>"><br/>
    Telefono: <input type="phone" name="phone" value="<?=$defaults['phone']?>"><br/>
    E-mail: <input type="email" name="email" value="<?=$defaults['email']?>"><br/>
    <input type="hidden" name="saved" value="yes">
    <input type="submit" value="send">
</form>  


Adesso, alcune note importanti. Prima di tutto: non fare mai i tuoi moduli Web brutti e instabili come quello dell'esempio. Poi, quasi tutti gli approcci all'integrazione di Bitrix24 si riducono a questi semplici passaggi: creare un URL; compilare la variabile $queryData ( leggi di più qui ); inizializza il metodo curl e richiama Bitrix24 con la chiamata curl_exec. Elabora la risposta JSON e tutti sono felici. Anche i postumi della sbornia del tuo capo sono finiti. 

Riassumiamo i tre semplici passaggi: 

1. Aggiungi un webhook e utilizza i parametri del modulo per avere un nuovo ed elettrizzate URL, proprio qui nel tuo Bitrix24. 
2. Sostituisci il nome del metodo REST predefinito con quello richiesto. Crea degli array di dati dalle query. 
3. Richiama Bitrix24 usando l'URL. 

Se vuoi mettere alla prova la tua nuova intuizione, apri il modulo, compila i campi e invia il modulo. Adesso sfoglia il tuo Bitrix24 per vedere il nuovo lead aggiunto. Tutto qui, ora puoi finalmente prenderti una pausa e rilassarti. 

Webhook in uscita

Ora che hai avuto il tuo R&R, sarai contentissimo di sapere che puoi divertirti ancora di più! L'integrazione può venire da entrambe le parti. A volte, uno deve assolutamente mandare informazioni ad un sistema di terze parti ogni qualvolta ci sia una modifica in Bitrix24. Per esempio, crei un ordine nel tuo ERP personalizzato quando un rappresentante commerciale aggiorna in un certo stato un deal. 

Di nuovo, apri Applicazioni > Webhooks ma questa volta clicca su "Webhook in uscita". Questo porterà ad un modulo diverso perché non è necessario creare una chiave in entrata. Tuttavia, dobbiamo selezionare un evento che, quando attivato, chiamerà il nostro gestore. 


Specifica URL del gesto, assegna al nuovo webhook un nome carino e chiaro e, soprattutto, selezione evento ONCRMDEALUPDATE. Invia il modulo per creare automaticamente una chiave che utilizzeremo per verificare se viene chiamato da Bitrix24 e se la chiamate è autentica. Questa misura di sicurezza potrebbe non essere la migliore, ma è sufficiente nella maggior parte dei casi. 


In questo esempio il gesto fa il lavoro più semplice possibile: registra tutto ciò che gli viene passato. 

<?

print_r ($_REQUEST);
writeToLog($_REQUEST, 'incoming');

/**
 * Scrivi i dati dai file di registro.
 *
 * @param mixed $data
 * @param string $title
 *
 * @return bool
 */
function writeToLog($data, $title = '') {
 $log = "\n------------------------\n";
 $log .= date("Y.m.d G:i:s") . "\n";
 $log .= (strlen($title) > 0 ? $title : 'DEBUG') . "\n";
 $log .= print_r($data, 1);
 $log .= "\n------------------------\n";
 file_put_contents(getcwd() . '/hook.log', $log, FILE_APPEND);
 return true;
}  


Adesso se apriamo un offerta per modificarla e salviamo i cambiamenti, vedremo un elemento nel registro: 

2017.01.17 12:58:29
incoming
Array
(
    [event] => ONCRMDEALUPDATE
    [data] => Array
     (
      [FIELDS] => Array
          (
           [ID] => 662
          )

     )

    [ts] => xxx
    [auth] => Array
     (
      [domain] => xxx.bitrix24.com
      [client_endpoint] => https://xxx.bitrix24.com/rest/
      [server_endpoint] => https://oauth.bitrix.info/rest/
      [member_id] => xxx
      [application_token] => xxx
     )

)
  

Hai visto quanto era semplice ottenere informazioni sul cambio di offerta? Adesso possiamo utilizzare i webhook in uscita discussi prima per ottenere i dettagli dell'offerta richiamando  crm.offerta.get method.

Supporto per l'automazione CRM

Abbiamo trovato i webhook così semplici ed utili che abbiamo un ulteriore passo avanti nell'automazione del supporto CRM! 

Apri il modulo delle preferenze CRM e seleziona Automazione nel menu e clicca Offerta. 

Per semplicità, usiamo lo stesso gestore del webhook in uscita che abbiamo creato precedentemente. Tuttavia, lo chiameremo esplicitamente. 

Clicca su "Configura le Regole di automazione" e aggiungi una regola ad una qualsiasi fare dell'offerta selezionando "Webhook" come tipo della regola. Una volta che il tipo è stato selezionato, seguirà un nuovo modulo in cui specificheremo il URL gestore e i parametri da passargli. 

Come esempio, alimentiamo un gestore con la fase dell'offerta: 

Salva tutto (non tutto il mondo, fai clic su Salva nei moduli). Apri un'offerta e cambia la sua fase con quella creta con la regola. Questo farà partire il webhook in uscita, e il gestore aggiungerà i dati dell'offerta al registro: 

2017.01.17 12:58:27
incoming
Array
(
    [status] => New
    [document_id] => Array
     (
      [0] => crm
      [1] => CCrmDocumentDeal
      [2] => DEAL_662
     )

    [auth] => Array
     (
      [domain] => xxx.bitrix24.com
      [client_endpoint] => https://xxx.bitrix24.com/rest/
      [server_endpoint] => https://oauth.bitrix.info/rest/
      [member_id] => xxx
     )

) 

Questa informazione è stata utile?
Assistenza di uno specialista
Non è quello che sto cercando.
Testo complesso e incomprensibile
Le informazioni sono obsolete.
Troppo breve, ho bisogno di maggiori informazioni.
Non mi soddisfa come funziona questo strumento
Vai a Bitrix24
Non hai ancora un account? Crealo gratuitamente