Eğitim
Mail Pazarlama Otomasyonu ( Alternatif Senaryo )
Bu makalede yapılacak işlemler Mail Pazarlama Otomasyonu Api Entegrasyonu Nasıl Yapılır? Başlıklı makalenin alternatif bir senaryo ile devamı olacaktır. Google arama sonuçlarında veya farklı bir yoldan direkt bu makaleye ulaştıysanız, kesinlikle öncesinde ilk makaleyi incelemeniz gerekmektedir.
Mail Pazarlama Otomasyonu ( Alternatif Senaryo )
İlk makaledeki gibi bir e-ticaret sitesinden verilen sipariş, yenilenmesi gereken bir ürün veya hizmet olduğunda mail pazarlama otomasyonu ile müşterilerinize hatırlatma maili gönderebilirsiniz. Bu senaryoyu işlemek için yapmanız gerekenler oldukça basit.
Otomasyon Programını Oluşturmadan Önce Yapılması Gerekenler.
- Müşteriye ait satın alma ve hizmet süresi sonra erme tarihi bilgilerini saklamak için kullanıcı alanlarının oluşturulması.
- Müşteriye gönderilecek mail için, program içerisinde kullanılacak tetikleyici mail gönderisinin oluşturulması.
Hizmet Süresi Doluyor Otomasyon Programının Oluşturulması İçin Gerekli Adımlar
- Başlangıç noktaları araç kutusundan kişi filtresi araç kutusunu program arayüzüne sürükleyerek bırakın.
- İşlemler araç kutusundan tetikleyici gönderi araç kutusunu sürükleyip bırakın.
- Programı sonlandırmak için program sonu araç kutusunu sürükleyip bırakın.
- Tüm araç kutularını sırası ile birbirine bağlayın.
- Her bir araç kutusunda senaryoya uygun ayarları seçin ve programı aktif moda getirin.
Hizmet Süresi Doluyor Otomasyon Programını Çalıştırma
Programın her gün belirli bir saatte çalışması için, kişi filtresi çalıştırma zamanını ayarlayın. Mail pazarlama otomasyonu tüm adımlar doğru yapılmış ise şuan çalışır durumda mail göndermeyi beklemektedir.
Hizmet Süresi Doluyor Otomasyonu Örnek
Hizmet süresi dolan müşterinize hatırlatma maili göndermek için gerekli entegrasyon için adım adım örnek yapılandırma;
- Adım : Panel üzerinden kullanıcı alanları sekmesine gelin, ardından yeşil renkli + butonuna tıklayarak işleme başlayabilirsiniz.
- Adım : Bu adımda hizmet sona erme tarihini saklamak için bir kullanıcı alan oluşturmanız gerekiyor.
- Adım : Kişi filtre özelliğinde kullanmak için oluşturduğumuz kullanıcı alanını oluşturduktan sonra aşağıdaki gibi bir ekran ile karşılaşacaksınız.
- Adım : Kullanıcı alanları sekmesine tekrar gelelim ve satın alma tarihini tutmak için bir kullanıcı alanı oluşturalım.
- Adım : Satın alma tarihi kullanıcı alanını da oluşturduktan sonra aşağıdaki ekrana geleceksiniz.
- Adım : Kullanıcı filtresi sekmesine gelelim.
- Adım : Hizmet süresi sona eren kişileri filtrelemek için kullanıcı filtre adı girelim ve filtre koşulu eklemek için yeni filtre ekle düğmesine tıklayalım.
- Adım : Açılan ekranda başlangıç miktarını 0 kayıt, işlemi kayıt ekle ve seçim temelini özelliği seçelim. Koşul olarak oluşturduğumuz hizmet sona erme tarihi kullanıcı alanını seçelim. Son 1 ay içinde olan sona erme tarihlerine sahip kullanıcıları filtrelemek için sonraki, 1 ve ay olarak seçelim ve koşulu kaydedelim.
- Adım : Otomasyon programımızda kullanacağımız kişi filtresini oluşturduk.
- Adım : Panelimizden tetikleyici taslaklarına gelelim ve hizmet süresi sona erecek kullanıcılar için mail gönderisi oluşturalım.
- Adım : Mail gönderimizin içeriğini hazırlayalım. Hizmet sona erme tarihini mail içeriğinde göstermek için yukarıdaki siyah kare düğmesine tıkladıkltan sonra kişi alanı ekle diyerek oluşturduğumuz kullanıcı alanını seçelim.
- Adım : Mail gönderimizin dağıtım mantığı aşamasındada tür olarak pazarlama otomasyonu kullanmaya başla düğmesini seçelim ve email gönderimini aktifleştirelim.
- Adım : Hazırladığımız mail gönderimi aktif tetikleyicilerde gözükecektir ve kullanılmak üzere hazır bekleyecektir.
- Adım : Panelimizden program taslaklarına gelelim ve yeşil renkli artı düğmesi tıklayalım.
- Adım : Oluşturduğumuz taslağa tıklayalım ve ardından programımızı düzenlemeye başlayalım.
- Adım : Başlangıç noktası olarak kişi filtre özelliği(Contact Filter Affilation) kutusunu, işlem olarak tetikleyici gönderi kutusunu ve programı sonlandırmak için program sonu kutusunu sürükleyelim ve ardından bunları birbirine bağlayalım. Kişi filtresi özelliği ayarlarını yapalım. Programın hergün belirli bir saatte çalışması için ayarları kaydedelim.
- Adım : Tetikleyici gönderi kutusunda program için hazırladığımız mail gönderisini seçelim ve kaydedelim.
- Adım : Program sonu araç kutusunuda kaydedelim ve ardından sağ üstteki programı aktif hale getir düğmesine tıklayalım.
- Adım : Hazırladığımız otomasyon programı aktif programlarda gözükecektir ve çalışmak üzere aktif halde bekleyecektir.
- Adım : Artık e-ticaret sitemizde satın alma işlemi yapıldığında aşağıdaki kod parçası çalışacak. Bu kod parçası ile satın alma programımızı tetiklerken satın alan kişinin hizmet sona erme tarihi ve satin alma tarihi alanlarını da ayarlıyoruz. Kod parçasını dikkatle inceleyin. Gerekli açıklamalar kod üzerinde yapılmıştır.
/* PHP Kodu */</p> <p>error_reporting(0);<br /> header('Access-Control-Allow-Origin: *');</p> <p>/* API keyinizi girin */<br /> $api_key = "API_KEY";<br /> $api_key_base64 = base64_encode($api_key);</p> <p>/* Headers verilerini ayarlayın */<br /> $headers = array(<br /> 'Content-type: application/json',<br /> 'Authorization: Basic ' . $api_key_base64,<br /> );</p> <p>/* Kişi eposta adresini, sipariş tarihini ve hizmet sona erme tarihini tutalım. */<br /> $customer_email = "yazilim@sendmail.com.tr";<br /> $order_date = $today = date("d.m.Y");<br /> $expire_date = date("d.m.Y", strtotime(date("d.m.Y", strtotime($today)) . " + 1 year"));</p> <p>/* Satın alma etlinliği için işlem oluştur */</p> <p>/* İşlemde kullanılacak verileri tutmak için bir dizi oluşturun */<br /> $transaction = [];<br /> /* İşlemi tetikleyen olayın API numarasını girin.<br /> *<br /> * Contact Event API ID = 16<br /> *<br /> */<br /> $transaction['type'] = 16;</p> <p>/* Kişiye sadece mailing göndermek için bu veriyi girin */<br /> //$transaction['contact']['email'] = "yazilim@sendmail.com.tr";</p> <p>/* Hem kişilere eklemek hem de kişiye mailing göndermek için bu verileri girin */<br /> $transaction['import']['contact'] = array(<br /> 'external_id' => $customer_email,<br /> 'email' => $customer_email,<br /> 'permission' => 5<br /> );</p> <p>/* Mailing içeriğinde kullanılacak verileri ayarlayın<br /> *<br /> * Olay Özellikleri Format Etiketler - Mailing içinde kullanımı<br /> *<br /> * order.id Text/Integer [[TRANSACTION|order.id]]<br /> * order.date Text/Date [[TRANSACTION|order.date]]<br /> * order.currency Text [[TRANSACTION|order.currency]]<br /> * order.total Float [[TRANSACTION|order.total]]<br /> * order.items JSON <!-- [[LIST|TRANSACTION|order.items|index]] --><br /> * order.items[i].amount [[ITEM|index|amount|]]<br /> * order.items[i].unitPrice [[ITEM|index|unitPrice|]]<br /> * order.items[i].imageUrl [[ITEM|index|imageUrl|]]<br /> * order.items[i].title [[ITEM|index|title|]]<br /> * <!-- [[/LIST]] --><br /> * customer.firstname Text [[TRANSACTION|customer.firstname]]<br /> * customer.lastname Text [[TRANSACTION|customer.lastname]]<br /> * billing_address.line1 Text [[TRANSACTION|billing_address.line1]]<br /> * billing_address.line2 Text [[TRANSACTION|billing_address.line2]]<br /> */</p> <p>/* Mailing içeriğinizi ayarlayın */<br /> $transaction['content']['order.id'] = "#86056";<br /> $transaction['content']['order.date'] = $order_date;<br /> $transaction['content']['order.currency'] = "$";<br /> $transaction['content']['order.total'] = 505.04;<br /> $transaction['content']['order.items'] = array(array(<br /> 'title' => "Hesap Açılış Ücreti",<br /> 'imageUrl' => "https://www.sendmail.com.tr/assets/img/logo.png",<br /> 'amount' => "1",<br /> 'unitPrice' => "29"<br /> ), array(<br /> 'title' => "500 Bin Email Gönderim (API)",<br /> 'imageUrl' => "https://www.sendmail.com.tr/assets/img/logo.png",<br /> 'amount' => "1",<br /> 'unitPrice' => "399"<br /> ));<br /> $transaction['content']['customer.firstname'] = "Sendmail";<br /> $transaction['content']['customer.lastname'] = "Fins";<br /> $transaction['content']['billing_address.line1'] = "Tantavi Mah. Terra Plaza";<br /> $transaction['content']['billing_address.line2'] = "Ümraniye / İstanbul";</p> <p>/* Ek varsa ekleyin */<br /> $transaction['attachments'] = array(array(<br /> 'filename' => "Mail Order Formu.doc",<br /> 'mimetype' => "application/msword",<br /> 'data' => base64_encode(file_get_contents("https://www.sendmail.com.tr/files/Mail_Order_Formu.doc"))));</p> <p>/* Oluşturulan diziyi JSON formatına getirin */<br /> $transactions = array($transaction);<br /> $postfields_transaction = json_encode($transactions);</p> <p>/* Parametreleri ayarlayın */<br /> $parameters = array(<br /> 'release' => 'true',<br /> 'ignore_invalid_events' => 'false',<br /> );<br /> $parameters_query = http_build_query($parameters);</p> <p>/* API linkini oluşturun */<br /> $api_function_url = "https://api.maileon.com/1.0/transactions?" . $parameters_query;</p> <p>/* Oluşturulan işlemi POST edin */<br /> $ch = curl_init();<br /> curl_setopt($ch, CURLOPT_URL, $api_function_url);<br /> curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");<br /> curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);<br /> curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);<br /> curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);<br /> curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);<br /> curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields_transaction);<br /> $curl_execution_result = curl_exec($ch);<br /> var_dump($curl_execution_result);<br /> curl_close($ch);<br /> //exit;</p> <p>/* Kişinin satin alma tarihini güncelle (Hizmet suresi dolacaklar filtresinde kullanmak icin) */</p> <p>/* Headers verilerini ayarlayın */<br /> $headers = array(<br /> 'Content-type: application/vnd.maileon.api+xml; charset=utf-8',<br /> 'Authorization: Basic ' . $api_key_base64,<br /> );</p> <p>$postfields_for_xml = array(<br /> 'custom_fields' => array(<br /> 'field(*1*)' => array(<br /> 'name' => "satin alma tarihi",<br /> 'value' => $order_date<br /> ),<br /> 'field(*2*)' => array(<br /> 'name' => "hizmet sona erme tarihi",<br /> 'value' => $expire_date<br /> )<br /> )<br /> );</p> <p>//var_dump($postfields_for_xml);exit;<br /> $xml = new SimpleXMLElement('<contact/>');<br /> array2XML($xml, $postfields_for_xml);<br /> $postfields_xml = $xml->asXML();<br /> $fields = array("field(*1*)", "field(*2*)");<br /> $field = array("field", "field");<br /> $postfields_xml = str_replace($fields, $field, $postfields_xml);<br /> //var_dump($postfields_xml);exit;</p> <p>$parameters = array(<br /> 'permission' => 5,<br /> 'sync_mode' => 1, // update<br /> 'doi' => false,<br /> 'doiplus' => false);<br /> $parameters_query = http_build_query($parameters);<br /> $api_function_url = "https://api.maileon.com/1.0/contacts/email/" . $customer_email . "?" . $parameters_query;</p> <p>$ch = curl_init();<br /> curl_setopt($ch, CURLOPT_URL, $api_function_url);<br /> curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");<br /> curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);<br /> curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);<br /> curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);<br /> curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);<br /> curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields_xml);<br /> $curl_execution_result = curl_exec($ch);<br /> var_dump($curl_execution_result);<br /> curl_close($ch);</p> <p>function array2XML($obj, $array) {<br /> foreach ($array as $key => $value) {<br /> if (is_numeric($key))<br /> $key = 'item' . $key;</p> <p> if (is_array($value)) {<br /> $node = $obj->addChild($key);<br /> array2XML($node, $value);<br /> } else {<br /> $obj->addChild($key, htmlspecialchars($value));<br /> }<br /> }<br /> }</p> <p>exit;</p> <p>