リードの自動取り込み
出典: SugarForum.jp
外部ウェブサイトに置いたフォームからSugarCRMにデータをPOSTし、自動的にリードを生成させることができます。自社のWEBサイトに資料請求フォームを設置して、問い合わせのあったユーザを自動的に見込み客(リード)としてSugarCRMに取り込む、とっいった使い方が可能です。
以下は、開発者向けの内容になります。
目次 |
ファイルの構成
ここでは、サンプルとしてLeadCaptureTest?.htmlのフォームからPOSTしたデータをSugarCRMに取り込む方法を解説します。データは一旦SugarCRMディレクトリの中にあるleadCapture.phpにPOSTされ、リードを生成する処理をしたあとLeadCaptureResult?.htmlに返ります。
- Sugarディレクトリ直下
- leadCapture.php(リード自動生成のためのファイル:あらかじめ入っています)
- 外部ウェブサイト(Sugarディレクトリの中でも可)
- LeadCaptureTest.html(フォームページ):ファイル名は何でも良い
- LeadCaptureResult.html(結果ページ):ファイル名は何でも良い
ファイルのソース
leadCapture.phpの設定
leadCapture.phpでは、どのユーザを使用してリードを生成させるのかを設定します。以下のように設定してください。編集したファイルは上書きするか、leadCapture_override.phpという名称にしてleadCapture.phpと同じ場所にアップしてください。(このファイルのソースはSugarのバージョンごとに異なります。)
ユーザの指定
リードを生成させるユーザを指定します。以下の場所を編集してください。
$users = array(
'PUT A RANDOM KEY FROM THE WEBSITE HERE' =>
array('name'=>'PUT THE USER_NAME HERE',
'pass'=>'PUT THE USER_HASH FOR THE RESPECTIVE USER HERE'),
);
↓
$users = array(
'web_lead' => //名前は何でも可
array(
'name'=>'demo', //ここではdemoというユーザを使用
'pass'=>'fe01ce2a7fbac8fafaed7c982a04e229', //ここではdemoというパスワード
), //(ハッシュ化したもの)を使用
);
demoのハッシュ化されたパスワードは、データベースのusersを参照して、user_hashに記載されているものを使用します(PhpMyAdminなどで確認できます)。
ソースの変更
このままだと、LeadCaptureResult?.htmlにリダイレクトされませんので以下を変更します。
if($param != 'redirect') {
echo '<input type="hidden" name="'.$param.'" value="'.$value.'">'; }
↓
if($param != 'redirect' && $param != 'submit') {
echo '<input type="hidden" name="'.$param.'" value="'.$value.'">'; }
LeadCaptureTest.htmlの設定
LeadCaptureTest.htmlには、Sugarにデータを送るためのフォームを書きます。尚、last_nameは必須にする必要があります。入力せずにデータがPOSTされた場合はリードに入りません。
- leadCapture.phpのロケーションを記入 :
- サンプルの12行目
- formのactionに、leadCapture.phpのURLを記入します。LeadCaptureTest?.htmlがSugarサイトの外部にある場合、絶対パスを記入してください。Sugarサイトの内部にある場合は相対パスでもかまいません。
- リダイレクト先のロケーション(ここではLeadCaptureResult?.html)を記入
- サンプルの18行目
- リードを作成した後リダイレクトされるページのURLを記入します。このファイルがSugarサイトの外部にある場合、絶対パスを記入してください。
- Sugarにアクセスするユーザ名の指定
- サンプルの14行目
- leadCapture.php内で指定した$usersの名前を入れてください。この例では、leadCapture.phpでweb_leadと記入しましたので、値をweb_leadにします。
- アサイン先ユーザの指定
- サンプルの16行目
- アサイン先ユーザのIDを記入します。データベースのusersを参照して、 idに記載されているものを使用します(PhpMyAdmin?などで確認できます)。
- ステータスの値を指定
- サンプルの17行目
- 生成されるステータスを値を指定できます。ここではNewを指定していますので「新規」に設定されます。他のステータスにしたい場合は、リードの編集画面に表示されるステータスのドロップダウンメニューなどを参考にしてください。
- リードに取り込みたいデータの指定:デフォルトの値を取り込む
- サンプルの21-40行目
- リードに取り込みたいフィールドを作成します。各inputフィールドのnameは、Sugarのリードで設定されているnameと同じにする必要があります。
- リードに取り込みたいデータの指定:デフォルトの値を取り込む
- サンプルの42-55行目
- リードに取り込みたい追加のフィールドを作成します。ここで作成されたデータはすべて15行目に作成されているdescription(リードの「詳細」フィールド)にはいります。ここでは、テキスト、チェックボックス、ラジオボタンなどをサンプルとして作成しています。これらのデータをdescriptionの中に入れるには、Submitのonclick内にJavascriptを記載する必要があります。(サンプルの66行目)
以下は、LeadCaptureTest.htmlのソースサンプルです。
1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
4 <title>SugarCRMリードキャプチャ</title>
5 <script>
6 function addToDescription(form, name, value){
7 form.description.value += name + ": " + value+ "¥n"
8 }
9 </script>
10 </head>
11 <body>
12 <form name='leadcap' action='http://--{リードを取り込むSugarのURL}--/leadCapture.php' method='post'>
13 <input type='hidden' name='lead_source' value='Web Site'>
14 <input type='hidden' name='user' value='web_lead'>
15 <input type='hidden' name='description' value=>
16 <input type='hidden' name='assigned_user_id' value='231545de-b977-24a6-78e2-44d1c7a4fc8c'>
17 <input type='hidden' name='status' value='New'>
18 <input type='hidden' name='redirect' value='http://--{リードを取り込んだあとの結果ページのURL}--'>
19 <div align='center'>お問い合わせ
20 <table border=1><tr><td><table>
21 <tr><td>姓:</td><td><input type='text' name='last_name'></td></tr>
22 <tr><td>名:</td><td><input type='text' name='first_name'></td></tr>
23 <tr><td>会社名:</td><td><input type='text' name='account_name'></td></tr>
24 <tr><td>職位:</td><td><input type='text' name='title'></td></tr>
25 <tr><td>eMail:</td><td><input type='text' name='email1'></td></tr>
26 <tr><td>紹介元:</td><td><input type='text' name='refered_by'></td></tr>
27 <tr><td>会社電話:</td><td><input type='text' name='phone_work'></td></tr>
28 <tr><td>携帯電話:</td><td><input type='text' name='phone_mobile'></td></tr>
29 <tr><td>自宅電話:</td><td><input type='text' name='phone_home'></td></tr>
30 <tr><td>その他電話:</td><td><input type='text' name='phone_other'></td></tr>
31 <tr><td>ファックス:</td><td><input type='text' name='phone_fax'></td></tr>
32 <tr><td>部署:</td><td><input type='text' name='department'></td></tr>
33 <tr><td>その他電子メール:</td><td><input type='text' name='email2'></td></tr>
34 <tr><td>電話不可:</td><td><input type="checkbox" name='do_not_call'></td></tr>
35 <tr><td>メール送信除外:</td><td><input type="checkbox" name='email_opt_out'></td></tr>
36 <tr><td>郵便番号 :</td><td><input type='text' name='primary_address_postalcode'></td></tr>
37 <tr><td>国:</td><td><input type='text' name='primary_address_country'></td></tr>
38 <tr><td>都道府県:</td><td><input type='text' name='primary_address_state2'></td></tr>
39 <tr><td>市区町村:</td><td><input type='text' name='primary_address_city'></td></tr>
40 <tr><td>番地:</td><td><input type='text' name='primary_address_street'></td></tr>
41
42 <tr><td>特記事項1:</td><td><input type='text' name='custom1'></td></tr>
43 <tr><td>特記事項2:</td><td><select name='custom2'>
44 <option value='item1'>アイテム1</option>
45 <option value='item2'>アイテム2</option>
46 <option value='item3'>アイテム3</option>
47 <option value='item4'>アイテム4</option>
48 </select></td></tr>
49 <tr><td>特記事項3:</td><td><input type='checkbox' name='custom3'></td></tr>
50 <tr><td>特記事項4:</td><td>
51 <input type='radio' name='custom4' value="アイテム1" checked>アイテム1
52 <input type='radio' name='custom4' value="アイテム2">アイテム2
53 <input type='radio' name='custom4' value="アイテム3">アイテム3
54 </td></tr>
55 <tr><td>特記事項5:</td><td><textarea name='custom5'></textarea></td></tr>
56
57 <script>
58 function getRadioValue(){
59 for(i=0;i<document.leadcap.custom4.length;i++){
60 if(document.leadcap.custom4[i].checked){custom4_value = document.leadcap.custom4[i].value;}
61 }
62 return custom4_value;
63 }
64 </script>
65
66 <tr><td></td><td><input type='Submit' name='submit' value='Submit' onclick='
form.description.value="";
addToDescription(document.leadcap,"特記事項1", custom1.value);
addToDescription(document.leadcap,"特記事項2",
document.leadcap.custom2.options[document.leadcap.custom2.selectedIndex].text);
addToDescription(document.leadcap,"特記事項3", custom3.value);
addToDescription(document.leadcap,"特記事項4", getRadioValue());
addToDescription(document.leadcap,"特記事項5", custom5.value);'></td></tr></table></table>
67 </form>
68 </body>
69 </html>
注 : 66は1行です。
LeadCaptureResult.htmlの作成
LeadCaptureResult.htmlを用意します。以下はソースサンプルです。
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>SugarCRMリードキャプチャ: お問い合わせありがとうございました</title> </head> <body> お問い合わせありがとうございました </body> </html>