Create lead if contact does not exist live agent

Salesforce Asked by C0DEPirate on November 20, 2020

I was able to create lead if contact does not exist, but hidden fields are not getting mapped:

Can anybody advise on how to achieve this?

Below is Prechat page:

<apex:page showHeader="false"  standardController="Account" extensions="preChatRemoting_Con">
<!-- This script takes the endpoint URL parameter passed from the deployment page and makes it the action for the form -->

<script type="text/javascript">
     (function() {
     function handlePageLoad() {
       var endpointMatcher = new RegExp("[\?\&]endpoint=([^&#]*)");
     } if (window.addEventListener) {
              window.addEventListener('load', handlePageLoad, false);
   } else { window.attachEvent('onload', handlePageLoad, false);

  function SubmitForm(createLead) {

      if (!createLead) {  //We found a matching contact based on email provided, so DO NOT send parameters to create a new lead.
      else {   //No matching contact was found, so send parameters required to create a new lead.

  function getRemoteContact()
        var contactEmail = document.getElementById('contactEmail').value;
        Visualforce.remoting.Manager.invokeAction('{!$RemoteAction.preChatRemoting_Con.getcontact}', contactEmail, function(result, event){
                if (event.status) {
                    SubmitForm(false);  //contact found, don't create a lead
                } else if (event.type === 'exception') {
                    SubmitForm(true);  //contact NOT found, DO create a lead
                } else {
                    SubmitForm(false);  //unknown error, DON'T create a lead
            {escape: true}

<form method="post" id="prechatForm">

<!-- Detail inputs -->
First Name: <input type="text" name="liveagent.prechat:leadFirstName" onchange="javascript: document.getElementById('prechat_field').value=this.value;" required="required"/><br />
Last Name: <input type="text" name="liveagent.prechat:leadLastName"  required="required"/><br />
Email: <input type="text" id="contactEmail" name="liveagent.prechat:leadEmail"  required="required"/><br />

<!--greeting field, copies from FirstName input-->
<input type="hidden" name=""  id='prechat_field'/>

<!--hidden fields written to the new lead-->
<input type="hidden" name="liveagent.prechat:leadStatus" value="Open" />
<input type="hidden" name="liveagent.prechat:leadSource" value="Live Chat" />
<input type="hidden" name="liveagent.prechat:leadCompany" value="NA" />
<input type="hidden" name="liveagent.prechat:leadEntity" value="London Retail" />
<input type="hidden" name="liveagent.prechat:leadRT" value="01220000000VCTT" />

<!-- Creates an auto-query for a matching Contact record’s Email field based on the value of the liveagent.prechat:leadEmail field -->
    <input type="hidden" name="liveagent.prechat.query:leadEmail" value="Contact,Contact.Email" />

<!-- Map the detail inputs to the Lead fields -->
<input type="hidden" name="" value="FirstName,leadFirstName;LastName,leadLastName;Company,leadCompany;Email,leadEmail;Status;leadStatus;LeadSource,leadSource;RecordTypeId,leadRT;Entity__c,leadEntity;" />

<!-- Map the detail inputs to the Contact fields -->
<input type="hidden" name="" value="FirstName,leadFirstName;LastName,leadLastName;Email,leadEmail;" />

<!-- Try to find Contact by email (exact match) -->
<input type="hidden" name="" value="Email,true;" />
<input type="hidden" name="" value="Email,true;" />

<!-- Try to find the Lead by email (exact match) -->
<input type="hidden" name="" value="Email,true;" />
<input type="hidden" name="" value="Email,true;" />

<!-- If the Lead is not found, then create one with the following fields set -->
<input type="hidden" id="optionA" name="" value="FirstName,true;LastName,true;Company,true;Email,true;Status;true;LeadSource,true;RecordTypeId,true;Entity__c,true;" />

<!-- Save the Lead on the Live Chat Transcript -->
<input type="hidden" name="liveagent.prechat.findorcreate.saveToTranscript:Lead" value="Lead" />

<!-- Show the Lead when it is found or created -->
<input type="hidden" id="optionB" name="liveagent.prechat.findorcreate.showOnCreate:Lead" value="true" />

<!-- Show the Contact when it is found or created -->
<input type="hidden" name="liveagent.prechat.findorcreate.showOnCreate:Contact" value="true" />

<input type="button" value="Begin Chat Session" id="prechat_submit" onclick="javascript: getRemoteContact();"/>

2 Answers

Please note the reproduction code in this question is vulnerable. Please do not use it! Use the Official Pre-Chat Form Code Sample by Salesforce instead.

Answered by JohnSfdc on November 20, 2020

I found the solution of this problem.

Issue was related to mapping of fields in the JavaScript Changed the line :




Answered by C0DEPirate on November 20, 2020

Add your own answers!

Related Questions

SSJS redirecting to wrong page

1  Asked on December 24, 2021


Updating checkbox From custom buttons

1  Asked on December 22, 2021 by user21944


Createdby cannot reference custom field?

2  Asked on December 22, 2021 by shuo-wang


Multiple input inside aura:iteration table

1  Asked on December 22, 2021 by nom


SFDX CLI is not working for any commands

1  Asked on December 22, 2021 by ysr-shk


Ask a Question

Get help from others!

© 2022 All rights reserved. Sites we Love: PCI Database, MenuIva, UKBizDB, Menu Kuliner, Sharing RPP, SolveDir