この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

convertLead()

LeadAccountContact または必要に応じて Opportunity に変換します。

構文

1LeadConvertResult[] = connection.convertLead(leadConverts LeadConvert[]);

使用方法

convertLead() は、LeadAccountContact および必要に応じて Opportunity へと変換するのに使用します。Lead を変換するには、リードでは「リードの取引の開始」権限と「編集」権限、AccountContact および Opportunity では「作成」権限と「編集」権限が割り当てられた状態でクライアントアプリケーションでログインする必要があります。

このコールにより、評価済みリードの情報を新規作成または更新された取引先、取引先責任者、商談に簡単に変換できます。リードが評価される時期は、組織の独自のガイドラインを設定できます。ただし、予測したい実際の商談になるとすぐにリードを変換することが一般的です。

データが既存の取引先や取引先責任者オブジェクトにマー���される場合、変換先オブジェクトの空の項目のみが上書きされ、ID を含めた既存データは上書きされません。唯一の例外は、クライアントアプリケーションが overwriteLeadSourcetrue に設定している場合です。この場合、変換先の Contact オブジェクトの LeadSource 項目が、変換元の Lead オブジェクトの LeadSource 項目の内容で上書きされます。

リードを変換する際は、次のルールやガイドラインを考慮する必要があります。

項目の対応付け

システムは、リードの標準項目を取引先、取引先責任者、商談の標準項目に自動的に対応付けます。リードのカスタム項目に関しては、Salesforce システム管理者が、取引先、取引先責任者、商談のカスタム項目に対応づける方法を指定することができます。

レコードタイプ

組織でレコードタイプを使用している場合、新しい所有者のデフォルトのレコードタイプはリード変換時に作成されたレコードに割り当てられます。レコードタイプの詳細は、Salesforce オンラインヘルプを参照してください。

選択リスト値

システムは、空の標準リード選択リスト項目を対応付けるときに、取引先、取引先責任者、商談のデフォルトの選択リストを割り当てます。組織でレコードタイプを使用している場合、空の値は新しいレコード所有者のデフォルトの選択リストの値で置き換えられます。

文字列値

API バージョン 15.0 以降、文字列を含む項目に値を指定し、値が項目に対して大きすぎる場合、コールは失敗してエラーが返されます。こ���までのバージョンの API では、値は切り捨てられ、コールは正常に終了していました。バージョン 15.0 以降でもこの動作を保持する場合、AllowFieldTruncationHeader SOAP ヘッダーを使用してください。

エラー

一括操作でいずれかのリードが変換に失敗した場合、リードごとに個別にリード変換が再試行されます。

Chatter フィードの自動登録

リードを新規の取引先、取引先責任者、商談に変換すると、リード所有者はそのリード取引先から登録解除されます。リード所有者、生成されたレコードの所有者、およびリードに登録されたユーザは、Chatter フィード設定で自動登録を有効化しない限り、生成されたレコードに自動登録されません。ニュースフィードで取引先、取引先責任者、および商談レコードへの変更を表示するには、自動登録を有効化する必要があります。

ユーザはレコードまたは他のユーザを登録できます。レコードへの変更とユーザからの更新は、ユーザのホームページの Chatter フィードに表示されます。これは、Salesforce で他のユーザやレコードに加えられた変更の最新状況を把握するのに役立ちます。フィードは、API バージョン 18.0 以降で使用できます。

リードの変換の基本ステップ

リードの変換は、次の基本ステップに従います。

  1. クライアントアプリケーションは、変換されるリードの ID を確認します。
  2. 必要に応じて、クライアントアプリケーションはリードをマージする取引先の ID も確認します。クライアントアプリケーションは SOSL または SOQL を使用し、リード名と一致する取引先を検索します。次に例を示します。
    1select id, name from account where name='CompanyNameOfLeadBeingMerged'
  3. 必要に応じて、クライアントアプリケーションはリードをマージする取引先責任者の ID も確認します。クライアントアプリケーションは SOSL または SOQL を使用し、リードの取引先責任者名と一致する取引先責任者を検索します。次に例を示します。
    1select id, name from contact where firstName='FirstName' and lastName='LastName' and accountId = '001...'
  4. 必要に応じて、クライアントアプリケーションはリードから商談を作成するかどうかを決定します。
  5. クライアントアプリケーションは LeadStatus テーブルへのクエリを実行して、考えられるすべての取引開始後の状況オプションを取得します。
    1SELECT Id, MasterLabel FROM LeadStatus WHERE IsConverted=true
    ★分断後★その後、取引開始後の状況の値を選択します。
  6. クライアントアプリケーションは convertLead() をコールします。
  7. クライアントアプリケーションは返された結果の各 LeadConvertResult オブジェクトを反復処理し、各リードの変換が成功したかどうかを確認します。
  8. ベストプラクティスは、クライアントアプリケーションで WhoIdContactId であるタスクを実行することです。商談が作成された場合、WhatIdOpportunityId となります。
  9. 必要に応じて、キューが所有するリードを変換する場合は所有者を指定する必要があります。これは、キューが取引先と取引先責任者を所有することができないためです。既存の取引先または取引先責任者を指定する場合も、所有者を指定する必要があります。

サンプルコード —Java

このサンプルでは、リードの取引の開始方法を示します。2 つのリードを作成し、リードを開始します。次に、リードの取引開始結果を反復処理し、リードごとに作成された取引先、取引先責任者、商談の ID を書き込みます。

1public String[] convertLeadRecords() {
2   String[] result = new String[4];
3   try {
4
5      // Create two leads to convert
6      Lead[] leads = new Lead[2];
7      Lead lead = new Lead();
8      lead.setLastName("Mallard");
9      lead.setFirstName("Jay");
10      lead.setCompany("Wingo Ducks");
11      lead.setPhone("(707) 555-0328");
12      leads[0] = lead;
13      lead = new Lead();
14      lead.setLastName("Platypus");
15      lead.setFirstName("Ogden");
16      lead.setCompany("Denio Water Co.");
17      lead.setPhone("(775) 555-1245");
18      leads[1] = lead;
19      SaveResult[] saveResults = connection.create(leads);
20
21      // Create a LeadConvert array to be used
22      // in the convertLead() call
23      LeadConvert[] leadsToConvert = new LeadConvert[saveResults.length];
24
25      for (int i = 0; i < saveResults.length; ++i) {
26         if (saveResults[i].isSuccess()) {
27            System.out
28                  .println("Created new Lead: " + saveResults[i].getId());
29            leadsToConvert[i] = new LeadConvert();
30            leadsToConvert[i].setConvertedStatus("Closed - Converted");
31            leadsToConvert[i].setLeadId(saveResults[i].getId());
32            result[0] = saveResults[i].getId();
33         } else {
34            System.out.println("\nError creating new Lead: "
35                  + saveResults[i].getErrors()[0].getMessage());
36         }
37      }
38      // Convert the leads and iterate through the results
39      LeadConvertResult[] lcResults = connection.convertLead(leadsToConvert);
40      for (int j = 0; j < lcResults.length; ++j) {
41         if (lcResults[j].isSuccess()) {
42            System.out.println("Lead converted successfully!");
43            System.out.println("Account ID: " + lcResults[j].getAccountId());
44            System.out.println("Contact ID: " + lcResults[j].getContactId());
45            System.out.println("Opportunity ID: "
46                  + lcResults[j].getOpportunityId());
47         } else {
48            System.out.println("\nError converting new Lead: "
49                  + lcResults[j].getErrors()[0].getMessage());
50         }
51      }
52   } catch (ConnectionException ce) {
53      ce.printStackTrace();
54   }
55   return result;
56}

サンプルコード —C#

このサンプルでは、リードの取引の開始方法を示します。2 つのリードを作成し、リードを開始します。次に、リードの取引開始結果を反復処理し、リードごとに作成された取引先、取引先責任者、商談の ID を書き込みます。

1public String[] convertLeadRecords()
2{
3   String[] result = new String[4];
4   try
5   {
6      // Create two leads to convert
7      Lead[] leads = new Lead[2];
8      Lead lead = new Lead();
9      lead.LastName = "Mallard";
10      lead.FirstName = "Jay";
11      lead.Company = "Wingo Ducks";
12      lead.Phone = "(707) 555-0328";
13      leads[0] = lead;
14      lead = new Lead();
15      lead.LastName = "Platypus";
16      lead.FirstName = "Ogden";
17      lead.Company = "Denio Water Co.";
18      lead.Phone = "(775) 555-1245";
19      leads[1] = lead;
20      SaveResult[] saveResults = binding.create(leads);
21
22      // Create a LeadConvert array to be used
23      //   in the convertLead() call
24      LeadConvert[] leadsToConvert =
25            new LeadConvert[saveResults.Length]; ;
26      for (int i = 0; i < saveResults.Length; ++i)
27      {
28         if (saveResults[i].success)
29         {
30            Console.WriteLine("Created new Lead: " +
31                  saveResults[i].id);
32            leadsToConvert[i] = new LeadConvert();
33            leadsToConvert[i].convertedStatus = "Closed - Converted";
34            leadsToConvert[i].leadId = saveResults[i].id;
35            result[0] = saveResults[i].id;
36         }
37         else
38         {
39            Console.WriteLine("\nError creating new Lead: " +
40                  saveResults[i].errors[0].message);
41         }
42      }
43      // Convert the leads and iterate through the results
44      LeadConvertResult[] lcResults =
45            binding.convertLead(leadsToConvert);
46      for (int j = 0; j < lcResults.Length; ++j)
47      {
48         if (lcResults[j].success)
49         {
50            Console.WriteLine("Lead converted successfully!");
51            Console.WriteLine("Account ID: " +
52                     lcResults[j].accountId);
53            Console.WriteLine("Contact ID: " +
54                     lcResults[j].contactId);
55            Console.WriteLine("Opportunity ID: " +
56                     lcResults[j].opportunityId);
57         }
58         else
59         {
60            Console.WriteLine("\nError converting new Lead: " +
61                  lcResults[j].errors[0].message);
62         }
63      }
64   }
65   catch (SoapException e)
66   {
67      Console.WriteLine("An unexpected error has occurred: " +
68                        e.Message + "\n" + e.StackTrace);
69   }
70   return result;
71}

LeadConvert の引数

このコールは LeadConvert オブジェクトの配列を受け取ります (100 個まで)。LeadConvert オブジェクトには次のプロパティがあります。

名前 説明
accountId ID リードをマージする Account の ID。個人取引先を含めた既存の取引先を更新する場合のみ必要です。accountID が指定されない場合、API は新しい取引先を作成します。新しい取引先を作成するには、クライアントアプリケーションは条件を満たすアクセス権限でログインする必要があります。リードを既存の取引先にマージするには、クライアントアプリケーションは指定された取引先への「参照・更新」アクセス権を持ってログインする必要があります。取引先名と他の既存のデータは上書きされません。ID についての詳細は、「ID データ型」を参照してください。
contactId ID リードがマージされる Contact の ID (この取引先責任者は、指定された accountId と関連付けられていなければならず、accountId の指定が必要です)。既存の取引先を更新する場合のみ必要です。

リードを個人取引先に変換する場合、contactId を指定しないでください。指定するとエラーが発生します。個人取引先の accountId のみを指定してください。

重要

contactID が指定されない場合、API は Account と暗黙的に関連付けられる新しい取引先責任者を作成します。新しい取引先責任者を作成するには、クライアントアプリケーションは条件を満たすアクセス権限でログインする必要があります。リードを既存の取引先責任者にマージするには、クライアントアプリケーションは指定された取引先責任者への「参照・更新」アクセス権を持ってログインする必要があります。取引先責任者および他の既存のデータは上書きされません (ただし、overwriteLeadSourcetrue に設定されている場合は LeadSource 項目のみが上書きされます)。
convertedStatus string 変換されたリードの有効な LeadStatus 値。必須。必須。この項目に設定できる値のリストを取得するには、クライアントアプリケーションが LeadStatus オブジェクトへのクエリを実行します。次に例を示します。
1SELECT Id, MasterLabel
2FROM LeadStatus WHERE IsConverted=true
doNotCreateOpportunity boolean リード変換時に Opportunity を作成するかどうかを指定 (デフォルトは false で商談を作成し、true では作成しない)。リードの商談を作成したくない場合のみ、このフラグを true に設定します。デフォルトでは、商談は作成されます。
leadId ID 変換する Lead の ID。必須。ID についての詳細は、「ID データ型」を参照してください。
opportunityName string 作成する商談の名前。名前が指定されない場合、デフォルト値はリードの会社名となります。この項目の文字数は 80 文字までです。doNotCreateOpportunity 引数が true の場合、商談は作成されません。また、この項目は空のままにする必要があります。空でない場合はエラーが発生します。
overwriteLeadSource boolean 変換先の Contact オブジェクトの LeadSource 項目に、変換元の Lead オブジェクトの LeadSource 項目の値を上書きするかどうかを指定します (上書きする場合は true、上書きしない場合は false で、デフォルトでは上書きしません)。この項目を true に設定するには、クライアントアプリケーションは変換先の取引先責任者の contactId を指定する必要があります。
ownerId ID 新しく作成する取引先、取引先責任者、商談の所有者となるユーザの ID を指定します。クライアントアプリケーションでこの値を指定しない場合、リードの所有者が新しいオブジェクトの所有者となります。既存のオブジェクトにマージする場合は適用されません。ownerId が指定された場合、API は既存の取引先または取引先責任者の ownerId 項目を上書きしません。ID についての詳細は、「ID データ型」を参照してください。
sendNotificationEmail boolean ownerId で指定された所有者に通知メールを送るかどうかを指定します (送信する場合は true、送信しない場合は false。デフォルトは false)。