リードの自動取り込み

出典: 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された場合はリードに入りません。

  1. leadCapture.phpのロケーションを記入 :
    • サンプルの12行目
    • formのactionに、leadCapture.phpのURLを記入します。LeadCaptureTest?.htmlがSugarサイトの外部にある場合、絶対パスを記入してください。Sugarサイトの内部にある場合は相対パスでもかまいません。
  2. リダイレクト先のロケーション(ここではLeadCaptureResult?.html)を記入
    • サンプルの18行目
    • リードを作成した後リダイレクトされるページのURLを記入します。このファイルがSugarサイトの外部にある場合、絶対パスを記入してください。
  3. Sugarにアクセスするユーザ名の指定
    • サンプルの14行目
    • leadCapture.php内で指定した$usersの名前を入れてください。この例では、leadCapture.phpでweb_leadと記入しましたので、値をweb_leadにします。
  4. アサイン先ユーザの指定
    • サンプルの16行目
    • アサイン先ユーザのIDを記入します。データベースのusersを参照して、 idに記載されているものを使用します(PhpMyAdmin?などで確認できます)。
  5. ステータスの値を指定
    • サンプルの17行目
    • 生成されるステータスを値を指定できます。ここではNewを指定していますので「新規」に設定されます。他のステータスにしたい場合は、リードの編集画面に表示されるステータスのドロップダウンメニューなどを参考にしてください。
  6. リードに取り込みたいデータの指定:デフォルトの値を取り込む
    • サンプルの21-40行目
    • リードに取り込みたいフィールドを作成します。各inputフィールドのnameは、Sugarのリードで設定されているnameと同じにする必要があります。
  7. リードに取り込みたいデータの指定:デフォルトの値を取り込む
    • サンプルの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>

最終更新 06:35, 2010年4月2日 (金)。   このページは 2,618 回アクセスされました。