我是Apex开发的新手,我开始在Apex中从事我的项目。我想做以下内容:


使用电子邮件服务//我想知道这部分
从电子邮件中获取电子邮件address //知道该怎么做
如果已经有铅铅或与同一电子邮件address的联系
更新他的信息
别的
创建新的引线


我想kow如何搜索我的数据库(Saleforce的潜在客户和联系人)并更新现有用户的信息。

有帮助吗?

解决方案

您应该使用电子邮件地址作为您查询的标准执行铅和联系人的查询。如果它返回引线的0条记录和联系人的0条记录,则您将创建一个新的潜在客户。

您的查询可以返回铅或联系人的1个以上记录,因此您必须制定一种处理该案例的策略。电子邮件地址不需要唯一。

public class StackOverflowExample {

public static void test(String email) {
    handleNewEmail(email);
}

private static void handleNewEmail(String email) {
    List<Lead> leads = [select id, email from Lead where email = :email];
    List<Contact> contacts = [select id, email from Contact where email = :email];
    if (leads.size() == 0 && contacts.size() == 0) {
        //Create new lead
        insert new Lead(Company = 'Lead Company', FirstName = 'firstname', LastName = 'lastname', Email = email);
    } else if (leads.size() == 1) {
        // Update this lead
        leads[0].FirstName = 'newfirstname';
        update leads;
    } else if (contacts.size() == 1) {
        // Update this contact
        contacts[0].FirstName = 'newfirstname';
        update contacts;
    } else {
        // Must be more than 1 contact or lead
        System.debug('\nMore than 1 contact or lead.');
    }
}

}

另一个选项是执行搜索,以将范围限制为电子邮件字段。

public class StackOverflowExample {

public static void test(String email) {
    handleNewEmail(email);
}

private static void handleNewEmail(String email) {
    List<List<SObject>> searchResults = [FIND :email IN Email Fields RETURNING 
                Lead(Id, FirstName, LastName), 
                Contact(Id, FirstName, LastName)];
    List<Lead> leads = ((List<Lead>)searchResults[0]);
    List<Contact> contacts = ((List<Contact>)searchResults[1]);
    if (leads.size() == 0 && contacts.size() == 0) {
        //Create new lead
        insert new Lead(Company = 'Lead Company', FirstName = 'firstname', LastName = 'lastname', Email = email);
    } else if (leads.size() == 1) {
        // Update this lead
        leads[0].FirstName = 'newfirstname';
        update leads;
    } else if (contacts.size() == 1) {
        // Update this contact
        contacts[0].FirstName = 'newfirstname';
        update contacts;
    } else {
        // Must be more than 1 contact or lead
        System.debug('\nMore than 1 contact or lead.');
    }
}

}

其他提示

在内置的Salesforce中,您可以找到一些 有关InboundeMail对象的信息. 。该页面还包含了两个示例,内容涉及根据从消息中提取的电子邮件地址处理联系人和潜在客户的示例。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top