Czy wiecie że SALESmanago udostępnia bardzo zaawansowane, a z drugiej strony łatwe do oprogramowania API?
Poniżej prezentujemy przykładowy kod HTML/PHP formularza kontaktowego, który automatycznie zapisuje dane osoby wypełniającej go do SALESmanago korzystając z prostego API.
Formularz ten pozwala również automatycznie powiązać kontakt z Cookie monitorującym – należy zwrócić uwagę na koniec skryptu obsługującego formularz i dodatkowy parametr dodawany do kodu monitorującego SALESmanago. Pozwala to na monitoring bez konieczności klikania w link z e-maila.
API SALESmanago pozwala na znacznie więcej, możesz między innymi zintegrować kartę kontaktu SALESmanago z widokiem swoim CRM, udostępniając dane dynamicznie zbierane wraz z już obecną informacją o kontakcie.
Przykładowa integracja formularza kontaktowego:
Kod strony formularza (index.html):
Sam formularz rejestracyjny może być dowolny – po prostu wykorzystaj swój obecny. Poniżej dla zilustrowania przykładu prezentujemy prostą stronę kontaktu, na której należy wypełnić cztery pola: imię i nazwisko, adres e-mail, nazwę firmy oraz telefon.
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"/> <title>Rejestracja...</title> </head> <body> <form name="formContact" method="post" action="register.php"> <table width="600" border="0" cellpadding="0" cellspacing="1"> <tr> <td><label for="name">Imię i nazwisko:</label></td> <td><input name="name" type="text" id="name" size="50"></td> </tr> <tr> <td><label for="email">Email:</label></td> <td><input name="email" type="text" id="email" size="50"></td> </tr> <tr> <td><label for="company">Firma:</label></td> <td><input name="company" type="text" id="company" size="50"></td> </tr> <tr> <td><label for="phone">Telefon:</label></td> <td><input name="phone" type="text" id="phone" size="50"></td> </tr> <tr> <td> </td> <td> <input type="reset" name="reset" value="Reset"> <input type="submit" name="register" value="Register"> </td> </tr> </table> </form> <script type="text/javascript"> var _smid = "****"; (function() { var sm = document.createElement('script'); sm.type = 'text/javascript'; sm.async = true; sm.src = ('https:' == document.location.protocol ? 'https://' : 'http://')
+ 'salesmanago.pl/static/sm.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(sm, s); })(); </script> </body> </html>
Tak wygląda ta strona w przeglądarce:
Kod PHP obsługujący formularz (register.php):
Sam kod PHP obsługujący formularz jest bardzo prosty. Zbiera on dane z zapytania POST. Wykonuje zdalnie metodę API dodającą (lub modyfikującą) kontakt. Kod ten również dodaje do skryptu monitorującego rezultat w postaci identyfikatora kontaktu w celu powiązania bieżących odwiedzin na stronie z osobą wypełniającą formularz. Oczywiście sam identyfikator jest ciągiem unikatowych, losowych cyfr i liczb – nie sposób go powiązać z kontaktem ręcznie.
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"/> <title>Wynik rejestracji...</title> </head> <body> <?php ini_set("display_errors", "1"); ERROR_REPORTING(E_ALL); function do_post_request($url, $data) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($data) ) ); return curl_exec($ch); } if (isset($_POST['register'])) { $name = $_POST['name']; $email = $_POST['email']; $company = $_POST['company']; $phone = $_POST['phone']; $clientId = '*********'; //TU PROSZĘ WPISAĆ CLIENTID (SALESmanago > MENU > Ustawienia > Integracja) $apiKey = 'j2q8qp4fbp9qf2b8p49fb'; //Losowy ciąg znaków $apiSecret = '**********************'; //TU PROSZĘ WPISAĆ APISECRET (SALESmanago > MENU > Ustawienia> Integracja) $endpoint = 'http://***.salesmanago.pl'; //Endpoint (SALESmanago > MENU > Ustawienia> Integracja) -
przyjmuje wartości: http://www.salesmanago.pl lub http://app2.salesmanago.pl $data = array( 'clientId' => $clientId, 'apiKey' => $apiKey, 'requestTime' => time(), 'sha' => sha1($apiKey . $clientId . $apiSecret), 'contact' => array('company' => $company, 'email' => $email, 'name' => $name, 'phone' => $phone, 'state' => 'CUSTOMER' ), 'owner' => '******@*****', //TU PROSZĘ DODAĆ EMAIL WŁAŚCICIELA KONTAKTU 'tags' => array('Formularz_rejestracji'), 'properties' => array('page' => 'rejestracja'), 'lang' => 'PL' ); $json = json_encode($data); $result = do_post_request($endpoint . '/api/contact/upsert', $json); echo $endpoint . '/api/contact/upsert' . "<br/>"; echo 'JSON Request:<br/><br/><pre>' . $json . '</pre>'; echo 'JSON Response:<br/><br/><pre>' . $result . '</pre>'; $r = json_decode($result); $contactId = $r->{'contactId'}; // echo 'New contact ID: <pre>' . $contactId . '</pre><br/><br/>'; ?> <p>Dziękujemy za rejestracje...</p> <table width="600" border="0" cellpadding="0" cellspacing="1"> <tr> <td>Imię i nazwisko:</td> <td><?php echo $name; ?></td> </tr> <tr> <td>Email:</td> <td><?php echo $email; ?></td> </tr> <tr> <td>Firma:</td> <td><?php echo $company; ?></td> </tr> <tr> <td>Telefon:</td> <td><?php echo $phone; ?></td> </tr> </table> <!-- Updated SALESmanago tracking info --> <script type="text/javascript"> var _smid = "****"; var _smclientid = "<?php echo $contactId;?>"; (function() { var sm = document.createElement('script'); sm.type = 'text/javascript'; sm.async = true; sm.src = ('https:' == document.location.protocol ? 'https://' : 'http://')
+ '****/static/sm.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(sm, s); })(); </script> <?php } else { ?> <p>Wystąpił problem, nie można się zarejestrować...</p> <?php } ?> </body> </html>
Tak wygląda wynik rejestracji:
A oto karta dodanego właśnie kontaktu:
Oczywiście, nadanie kontaktowi odpowiednich tagów, i użycie ich w regułach automatyzacji pozwala podjąć odpowiednie akcje na skutek takiej rejestracji np. uruchomić proces Lead Nurturing.
Pełna dokumentacja API jest dostępna po rejestracji w SALESmanago.