创建网络挂钩以将销售人员连接到 google 活动
Create web hook to connect salesforce to google campaign
我正在尝试创建一个网络挂钩侦听器,以便在通过 google 广告填写表单时创建新的潜在客户。 Google 可以选择使用网络挂钩连接到 CRM。
并制作了一个 RestResource class
@RestResource(urlMapping='/Lead/*')
global with sharing class MyRestResource {
@HttpPost
global static String doPost(List<Map<String,String>>user_column_data) {
Map<String, String> user_data = new Map<String,String>();
for( Map<String,String> field_data : user_column_data){
user_data.put( field_data.get('column_id'), field_data.get('string_value') );
}
Lead lead = new Lead();
lead.Status = 'New';
lead.Company = user_data.get('COMPANY_NAME');
lead.Phone = user_data.get('PHONE_NUMBER');
lead.Email = user_data.get('EMAIL');
try{
insert lead;
}
catch (exception e){
System.debug('Failure');
}
return lead.Id;
}
}
我创建了一个 salesforce 站点并授予它访问上述 class 和主要对象的权限。
Google 广告还让我发送测试记录所以它发送了这个数据
{
"lead_id": "TeSter-123-ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-0123456789-AaBbCcDdEeFfGgHhIiJjKkLl",
"user_column_data": [
{
"column_name": "First Name",
"string_value": "FirstName",
"column_id": "FIRST_NAME"
},
{
"column_name": "Last Name",
"string_value": "LastName",
"column_id": "LAST_NAME"
},
{
"column_name": "User Phone",
"string_value": "+16505550123",
"column_id": "PHONE_NUMBER"
},
{
"column_name": "User Email",
"string_value": "test@example.com",
"column_id": "EMAIL"
},
{
"column_name": "City",
"string_value": "Mountain View",
"column_id": "CITY"
},
{
"column_name": "Region",
"string_value": "California",
"column_id": "REGION"
},
{
"column_name": "Company Name",
"string_value": "CompanyName",
"column_id": "COMPANY_NAME"
}
],
"api_version": "1.0",
"form_id": 15016502442,
"campaign_id": 12582701989,
"google_key": "test",
"is_test": true,
"gcl_id": "TeSter-123-ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-0123456789-AaBbCcDdEeFfGgHhIiJjKkLl",
"adgroup_id": 20000000000,
"creative_id": 30000000000
}
检查沙箱环境时,此数据不存在。
如有任何帮助,我们将不胜感激!
Last Name 是 Lead 上的必填字段,在您的代码中,我找不到您填充 LastName 的行。这可能是个问题。
此外,您可以在 Salesforce 中为访客站点用户设置调试日志,以查看是否有任何异常。
我正在尝试创建一个网络挂钩侦听器,以便在通过 google 广告填写表单时创建新的潜在客户。 Google 可以选择使用网络挂钩连接到 CRM。
并制作了一个 RestResource class
@RestResource(urlMapping='/Lead/*')
global with sharing class MyRestResource {
@HttpPost
global static String doPost(List<Map<String,String>>user_column_data) {
Map<String, String> user_data = new Map<String,String>();
for( Map<String,String> field_data : user_column_data){
user_data.put( field_data.get('column_id'), field_data.get('string_value') );
}
Lead lead = new Lead();
lead.Status = 'New';
lead.Company = user_data.get('COMPANY_NAME');
lead.Phone = user_data.get('PHONE_NUMBER');
lead.Email = user_data.get('EMAIL');
try{
insert lead;
}
catch (exception e){
System.debug('Failure');
}
return lead.Id;
}
}
我创建了一个 salesforce 站点并授予它访问上述 class 和主要对象的权限。
Google 广告还让我发送测试记录所以它发送了这个数据
{
"lead_id": "TeSter-123-ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-0123456789-AaBbCcDdEeFfGgHhIiJjKkLl",
"user_column_data": [
{
"column_name": "First Name",
"string_value": "FirstName",
"column_id": "FIRST_NAME"
},
{
"column_name": "Last Name",
"string_value": "LastName",
"column_id": "LAST_NAME"
},
{
"column_name": "User Phone",
"string_value": "+16505550123",
"column_id": "PHONE_NUMBER"
},
{
"column_name": "User Email",
"string_value": "test@example.com",
"column_id": "EMAIL"
},
{
"column_name": "City",
"string_value": "Mountain View",
"column_id": "CITY"
},
{
"column_name": "Region",
"string_value": "California",
"column_id": "REGION"
},
{
"column_name": "Company Name",
"string_value": "CompanyName",
"column_id": "COMPANY_NAME"
}
],
"api_version": "1.0",
"form_id": 15016502442,
"campaign_id": 12582701989,
"google_key": "test",
"is_test": true,
"gcl_id": "TeSter-123-ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-0123456789-AaBbCcDdEeFfGgHhIiJjKkLl",
"adgroup_id": 20000000000,
"creative_id": 30000000000
}
检查沙箱环境时,此数据不存在。
如有任何帮助,我们将不胜感激!
Last Name 是 Lead 上的必填字段,在您的代码中,我找不到您填充 LastName 的行。这可能是个问题。
此外,您可以在 Salesforce 中为访客站点用户设置调试日志,以查看是否有任何异常。