No Results
Search Tips:
- Please consider misspellings
- Try different search keywords
convertLead()
Lead を Account、Contact または必要に応じて Opportunity に変換します。
構文
1LeadConvertResult[] = connection.convertLead(leadConverts LeadConvert[]);使用方法
convertLead() は、Lead を Account、Contact および必要に応じて Opportunity へと変換するのに使用します。Lead を変換するには、リードでは「リードの取引の開始」権限と「編集」権限、Account、Contact および Opportunity では「作成」権限と「編集」権限が割り当てられた状態でクライアントアプリケーションでログインする必要があります。
このコールにより、評価済みリードの情報を新規作成または更新された取引先、取引先責任者、商談に簡単に変換できます。リードが評価される時期は、組織の独自のガイドラインを設定できます。ただし、予測したい実際の商談になるとすぐにリードを変換することが一般的です。
データが既存の取引先や取引先責任者オブジェクトにマージされる場合、変換先オブジェクトの空の項目のみが上書きされ、ID を含めた既存データは上書きされません。唯一の例外は、クライアントアプリケーションが overwriteLeadSource を true に設定している場合です。この場合、変換先の Contact オブジェクトの LeadSource 項目が、変換元の Lead オブジェクトの LeadSource 項目の内容で上書きされます。
リードを変換する際は、次のルールやガイドラインを考慮する必要があります。
項目の対応付け
システムは、リードの標準項目を取引先、取引先責任者、商談の標準項目に自動的に対応付けます。リードのカスタム項目に関しては、Salesforce システム管理者が、取引先、取引先責任者、商談のカスタム項目に対応づける方法を指定することができます。
レコードタイプ
組織でレコードタイプを使用している場合、新しい所有者のデフォルトのレコードタイプはリード変換時に作成されたレコードに割り当てられます。レコードタイプの詳細は、Salesforce オンラインヘルプを参照してください。
選択リスト値
システムは、空の標準リード選択リスト項目を対応付けるときに、取引先、取引先責任者、商談のデフォルトの選択リストを割り当てます。組織でレコードタイプを使用している場合、空の値は新しいレコード所有者のデフォルトの選択リストの値で置き換えられます。
文字列値
API バージョン 15.0 以降、文字列を含む項目に値を指定し、値が項目に対して大きすぎる場合、コールは失敗してエラーが返されます。これまでのバージョンの API では、値は切り捨てられ、コールは正常に終了していました。バージョン 15.0 以降でもこの動作を保持する場合、AllowFieldTruncationHeader SOAP ヘッダーを使用してください。
Chatter フィードの自動登録
リードを新規の取引先、取引先責任者、商談に変換すると、リード所有者はそのリード取引先から登録解除されます。リード所有者、生成されたレコードの所有者、およびリードに登録されたユーザは、Chatter フィード設定で自動登録を有効化しない限り、生成されたレコードに自動登録されません。ニュースフィードで取引先、取引先責任者、および商談レコードへの変更を表示するには、自動登録を有効化する必要があります。
ユーザはレコードまたは他のユーザを登録できます。レコードへの変更とユーザからの更新は、ユーザのホームページの Chatter フィードに表示されます。これは、Salesforce で他のユーザやレコードに加えられた変更の最新状況を把握するのに役立ちます。フィードは、API バージョン 18.0 以降で使用できます。
リードの変換の基本ステップ
リードの変換は、次の基本ステップに従います。
- クライアントアプリケーションは、変換されるリードの ID を確認します。
- 必要に応じて、クライアントアプリケーションはリードをマージする取引先の ID も確認します。クライアントアプリケーションは SOSL または SOQL を使用し、リード名と一致する取引先を検索します。次に例を示します。
1select id, name from account where name='CompanyNameOfLeadBeingMerged' - 必要に応じて、クライアントアプリケーションはリードをマージする取引先責任者の ID も確認します。クライアントアプリケーションは SOSL または SOQL を使用し、リードの取引先責任者名と一致する取引先責任者を検索します。次に例を示します。
1select id, name from contact where firstName='FirstName' and lastName='LastName' and accountId = '001...' - 必要に応じて、クライアントアプリケーションはリードから商談を作成するかどうかを決定します。
- クライアントアプリケーションは LeadStatus テーブルへのクエリを実行して、考えられるすべての取引開始後の状況オプションを取得し (SELECT Id, MasterLabel FROM LeadStatus WHERE IsConverted=true)、取引開始後の状況の値を選択します。
- クライアントアプリケーションは convertLead() をコールします。
- クライアントアプリケーションは返された結果の各 LeadConvertResult オブジェクトを反復処理し、各リードの変換が成功したかどうかを確認します。
- ベストプラクティスは、クライアントアプリケーションで WhoId が ContactId であるタスクを実行することです。商談が作成された場合、WhatId が OpportunityId となります。
- 必要に応じて、キューが所有するリードを変換する場合は所有者を指定する必要があります。これは、キューが取引先と取引先責任者を所有することができないためです。既存の取引先または取引先責任者を指定する場合も、所有者を指定する必要があります。
サンプルコード —Java
このサンプルでは、リードの取引の開始方法を示します。2 つのリードを作成し、リードを開始します。次に、リードの取引開始結果を反復処理し、リードごとに作成された取引先、取引先責任者、商談の ID を書き込みます。
1swfobject.registerObject("clippy.codeblock-3", "9");public 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 を書き込みます。
1swfobject.registerObject("clippy.codeblock-4", "9");public 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 が指定されない場合、API は Account と暗黙的に関連付けられる新しい取引先責任者を作成します。新しい取引先責任者を作成するには、クライアントアプリケーションは条件を満たすアクセス権限でログインする必要があります。リードを既存の取引先責任者にマージするには、クライアントアプリケーションは指定された取引先責任者への「参照・更新」アクセス権を持ってログインする必要があります。取引先責任者および他の既存のデータは上書きされません (ただし、overwriteLeadSource が true に設定されている場合は LeadSource 項目のみが上書きされます)。 |
| convertedStatus | string | 変換されたリードの有効な LeadStatus 値。必須。必須。この項目に設定できる値のリストを取得するには、クライアントアプリケーションが LeadStatus オブジェクトへのクエリを実行します。次に例を示します。 |
| 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)。 |