Pregunta

Soy nuevo en el desarrollo de Apex y estoy empezando a trabajar en mi proyecto en Apex. Me gustaría hacer lo siguiente:


utilizando un servicio de correo electrónico // Me imaginé esta parte
obtener emailAddress de un correo electrónico // saber cómo hacer este Listado si no es que ya exisiting plomo o el contacto con el mismo emailAddress
actualizar su información
otra cosa
crear nueva pista


Me gustaría Kow cómo puedo buscar mi base de datos (clientes potenciales y contactos de Saleforce) y la actualización de información existente del usuario.

¿Fue útil?

Solución

Se debe ejecutar una consulta sobre el plomo y el contacto utilizando la dirección de correo electrónico como los criterios para su búsqueda. Si devuelve 0 registros para el plomo y 0 registros para el contacto y, a continuación, se crearía una nueva pista.

Su consulta podría devolver más de 1 récord de plomo o de contacto, por lo que tendrá que desarrollar una estrategia para gestionar el caso. dirección de correo electrónico no está obligado a ser único.

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.');
    }
}

}

La otra opción es ejecutar una búsqueda de limitar el alcance de campos de correo electrónico.

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.');
    }
}

}

Otros consejos

En el Salesforce ayuda integrada se pueden encontrar algunos información sobre el objeto InboundEmail . La página contiene también 2 ejemplos acerca de cómo trabajar con los contactos y clientes potenciales basándose en la dirección de correo electrónico extraída del mensaje.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top