Email address conflict determination

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Peanut
    Junior Member
    • Mar 2025
    • 1

    Email address conflict determination

    Hello everyone, I just started using espocrm. How can I set it so that the email addresses in Account/Contact/Lead can be reminded of duplicates?
  • lazovic
    Super Moderator
    • Jan 2022
    • 924

    #2
    Hi Peanut,

    You can use the API Before Save Script feature so that if such an email address is already set for some Account, Contact or Lead, then a duplicate error message would be displayed.

    For example, you can set the following formula script for the Account:
    Code:
    $emailAddressesCount = array\length(emailAddressData);
    $emailAddressData = json\encode(emailAddressData);
    
    $emailAddressesArray = list();
    
    $i = 0;
    
    while ($i < $emailAddressesCount) {
        
        $emailAddress = json\retrieve($emailAddressData, string\concatenate($i, '.emailAddress'));
        
        $emailAddressesArray = array\push($emailAddressesArray, $emailAddress);
        
        $i = $i + 1;
    }
    
    $y = 0;
    
    while ($y < array\length($emailAddressesArray)) {
        
        $singleEmailAddress = array\at($emailAddressesArray, $y);
        
        if (record\exists('Contact', 'emailAddress', $singleEmailAddress)) {
            recordService\throwForbidden('Contact with these email addresses already exists.')
        }
        
        if (record\exists('Lead', 'emailAddress', $singleEmailAddress)) {
            recordService\throwForbidden('Lead with these email addresses already exists.')
        }
        
        $y = $y + 1;
    }
    At this time, set the following formula script for the Contact:
    Code:
    $emailAddressesCount = array\length(emailAddressData);
    $emailAddressData = json\encode(emailAddressData);
    
    $emailAddressesArray = list();
    
    $i = 0;
    
    while ($i < $emailAddressesCount) {
        
        $emailAddress = json\retrieve($emailAddressData, string\concatenate($i, '.emailAddress'));
        
        $emailAddressesArray = array\push($emailAddressesArray, $emailAddress);
        
        $i = $i + 1;
    }
    
    $y = 0;
    
    while ($y < array\length($emailAddressesArray)) {
        
        $singleEmailAddress = array\at($emailAddressesArray, $y);
        
        if (record\exists('Account', 'emailAddress', $singleEmailAddress)) {
            recordService\throwForbidden('Account with these email addresses already exists.')
        }
        
        if (record\exists('Lead', 'emailAddress', $singleEmailAddress)) {
            recordService\throwForbidden('Lead with these email addresses already exists.')
        }
        
        $y = $y + 1;
    }
    And finally, the following formula script for the Lead:
    Code:
    $emailAddressesCount = array\length(emailAddressData);
    $emailAddressData = json\encode(emailAddressData);
    
    $emailAddressesArray = list();
    
    $i = 0;
    
    while ($i < $emailAddressesCount) {
        
        $emailAddress = json\retrieve($emailAddressData, string\concatenate($i, '.emailAddress'));
        
        $emailAddressesArray = array\push($emailAddressesArray, $emailAddress);
        
        $i = $i + 1;
    }
    
    $y = 0;
    
    while ($y < array\length($emailAddressesArray)) {
        
        $singleEmailAddress = array\at($emailAddressesArray, $y);
        
        if (record\exists('Account', 'emailAddress', $singleEmailAddress)) {
            recordService\throwForbidden('Account with these email addresses already exists.')
        }
        
        if (record\exists('Contact', 'emailAddress', $singleEmailAddress)) {
            recordService\throwForbidden('Contact with these email addresses already exists.')
        }
        
        $y = $y + 1;
    }

    Comment

    Working...