Skip to main content
Hello All,

 

I've got a business case where they have their own omnichannel site for sales of consumer goods(Business to Consumer ) model.

 

Now, business would like to introduce the streamline service process. So, to achieve this they'll receive few emails and now business doesn't want to create an account each time( as it involves few clicks + keystrokes) they get a new case.So, they would like the platform to execute this.

 

Anyone could please help me on how to configure this in the system? 

 

Thanks in advance,

 

Nikhil W

 

 
2 answers
  1. Sep 15, 2017, 12:35 PM
    You want to create Contact OR Account From incoming emails right.

     

    You need to develop a trigger

     

    Below is an example for creating contact 

     

     

    trigger TriggertoCreateContactformCase on Case (before insert) {

    List<String> UseremailAddresses = new List<String>();

    //First exclude any cases where the contact is set

    for (Case c:Trigger.new) {

    if (c.ContactId==null &&

    c.SuppliedEmail!=''|| c.SuppliedEmail==null)

    {

    UseremailAddresses.add(c.SuppliedEmail);

    }

    }

    //Now we have a nice list of all the email addresses. Let's query on it and see how many contacts already exist.

    List<Contact> listofallContacts = [Select Id,Email From Contact Where Email in:UseremailAddresses];

    Set<String> ExstingEmails = new Set<String>();

    for (Contact c:listofallContacts) {

    ExstingEmails.add(c.Email);

    }

    Map<String,Contact> emailToContactMap = new Map<String,Contact>();

    List<Case> casesToUpdate = new List<Case>();

    for (Case c:Trigger.new) {

    if (c.ContactId==null &&

    c.SuppliedName!=null &&

    c.SuppliedEmail!=null &&

    c.SuppliedName!='' &&

    !c.SuppliedName.contains('@') &&

    c.SuppliedEmail!='' &&

    !ExstingEmails.contains(c.SuppliedEmail))

    {

    //The case was created with a null contact

    //Let's make a contact for it

    String[] Emailheader = c.SuppliedName.split(' ',2);

    if (Emailheader.size() == 2)

    {

    Contact conts = new Contact(FirstName=Emailheader[0],

    LastName=Emailheader[1],

    Email=c.SuppliedEmail

    );

    emailToContactMap.put(c.SuppliedEmail,conts);

    casesToUpdate.add(c);

    }

    }

    }

    List<Contact> newContacts = emailToContactMap.values();

    insert newContacts;

    for (Case c:casesToUpdate) {

    Contact newContact = emailToContactMap.get(c.SuppliedEmail);

    c.ContactId = newContact.Id;

    }

    }

     

    Regards,

     

    Amit Singh

     

    GIRIKON LLC
0/9000