Add leads using Portlet script.

Jira Code: TM 162

This article briefs about to add leads through dashboard with custom columns.

Portlet script

/**
 * @NApiVersion 2.x
 * @NScriptType Portlet
 * @NModuleScope SameAccount
 */
 /*******************************************************************************
* CLIENTNAME:Take5 Media
* TM-162
* Add Quick add lead
 *************************************************************************
* Date : 14-01-2019
*
* Author:Peter Ward
* Script Description : 
* Date created : 14-01-2019
*Add LContact First Name and last name 
* REVISION HISTORY
*
* Revision 1.0 ${14-01-2019} margrat : created
* 		   1.1 ${22-01-2019} aj : Remove middle name from the Lead form
* 		   1.2 ${28-01-2019} aj : Make WebAddress as URL field
* 
* 
*
******************************************************************************/
 
 
define(['N/record', 'N/ui/serverWidget', 'N/url', 'N/runtime' ],

function(record, serverWidget, url, runtime) {
   
    /**
     * Definition of the Portlet script trigger point.
     * 
     * @param {Object} params
     * @param {Portlet} params.portlet - The portlet object used for rendering
     * @param {number} params.column - Specifies whether portlet is placed in left (1), center (2) or right (3) column of the dashboard
     * @param {string} params.entity - (For custom portlets only) references the customer ID for the selected customer
     * @Since 2015.2
     */
    function render(params) {
	try{
		
		
		
			
			
				var portlet = params.portlet;
				portlet.title = 'QUICK ADD-LEADS';
				
				
				portlet.clientScriptFileId = '1089';
				portlet.setSubmitButton({
                url: 'www',
                label: 'Save'

            });
				var leadId = portlet.addField({
					id : 'textfield_leadid',
					type :  serverWidget.FieldType.TEXT,
					label : 'LEAD ID'
				});

				leadId.isMandatory = true;
				
				var firstname = portlet.addField({
					id : 'textfield_firstname',
					type :  serverWidget.FieldType.TEXT,
					label : 'First Name'
				});
				
				firstname.isMandatory = true;
				
				
				
				var lastname = portlet.addField({
					id : 'textfield_lastname',
					type : serverWidget.FieldType.TEXT,
					label : 'Last Name'
				});
				
				lastname.isMandatory = true;
	
				
				var companyName = portlet.addField({
					id : 'textfield_companyname',
					type :  serverWidget.FieldType.TEXT,
					label : 'COMPANY NAME'
				});

				companyName.isMandatory = true;
				
				
				
				var webAddress = portlet.addField({
					id : 'textfield_webaddress',
					type :  serverWidget.FieldType.URL,//TEXT,
					label : 'WEB ADDRESS'
				});

				webAddress.isMandatory = true;
				
				var email = portlet.addField({
					id : 'textfield_email',
					type :  serverWidget.FieldType.TEXT,
					label : 'EMAIL'
				});

				var phone = portlet.addField({
					id : 'textfield_phone',
					type :  serverWidget.FieldType.TEXT,
					label : 'PHONE'
				});


				var category = portlet.addField({
					id : 'textfield_category',
					type :  serverWidget.FieldType.TEXT,
					label : 'Category'
				});

				category.updateDisplayType({
         	    displayType: serverWidget.FieldDisplayType.HIDDEN
         	});

				var leadsource = portlet.addField({
					id : 'textfield_leadsource',
					type : serverWidget.FieldType.SELECT,
					label : 'LEAD SOURCE'
				});
				
				
				leadsource.addSelectOption({
                    value: '-2',
                    text: 'Ad'
                });
				leadsource.addSelectOption({
                    value: '50854',
                    text: 'Buyer Zone'
                });
               
                leadsource.addSelectOption({
                    value: '50860',
                    text: 'Inbound Blogs'
                });
				leadsource.addSelectOption({
                    value: '50859',
                    text: 'Inbound Website'
                });

                leadsource.addSelectOption({
                    value: '50856',
                    text: 'LinkedIn Inbound'
                });

                leadsource.addSelectOption({
                    value: '50855',
                    text: 'LinkedIn Self'
                });

                 leadsource.addSelectOption({
                    value: '50858',
                    text: 'Next Mark'
                });
               
                leadsource.addSelectOption({
                    value: '-3',
                    text: 'Other'
                });

                 leadsource.addSelectOption({
                    value: '-4',
                    text: 'Partner Referral'
                });

                 leadsource.addSelectOption({
                    value: '-5',
                    text: 'Trade Show'
                });

                 leadsource.addSelectOption({
                    value: '-6',
                    text: 'Web'
                });

                 leadsource.addSelectOption({
                    value: '50857',
                    text: 'Web Leads'
                });
                leadsource.defaultValue = 1;
				leadsource.isMandatory = true;
				
	
				
		} catch (e) {
				log.error({
					title : 'form for lead',
					details : e.message
				});
			}		
    }

    return {
        render: render
    };
    
});

Client script

/**
 * @NApiVersion 2.x
 * @NScriptType ClientScript
 * @NModuleScope SameAccount
 */
 /*******************************************************************************
* CLIENTNAME:Take5 Media
* TM-162
* Add Quick add lead
 *************************************************************************
* Date : 14-01-2019
*
* Author:Peter Ward
* Script Description : 
* Date created : 14-01-2019
*Add LContact First Name and last name 
* REVISION HISTORY
*
* Revision 1.0 ${14-01-2019} margrat : created
* 		   1.1 ${14-01-2019} aj : Remove middle name
* 		   1.2 ${28-01-2019} aj : To add sales team
* 
*
******************************************************************************/
define(['N/record','N/search','N/currentRecord','N/runtime'],

function(record,search,currentRecord,runtime) {
    
    
  
    function saveRecord(scriptContext) {
try{

var records = scriptContext.currentRecord;



            var entity =    records.getValue({
                    fieldId: 'textfield_leadid',
                   
                });

               
                
                var companyname =   records.getValue({
                    fieldId: 'textfield_companyname',
                   
                });
       
                var webaddress =    records.getValue({
                    fieldId: 'textfield_webaddress',
                   
                });

                var email = records.getValue({
                    fieldId: 'textfield_email',
                   
                });

                 var phone =    records.getValue({
                    fieldId: 'textfield_phone',
                   
                });
                var leadsource =    records.getValue({
                    fieldId: 'textfield_leadsource',
                   
                });


               
                 var firstname =    records.getValue({
                    fieldId: 'textfield_firstname',
                   
                });
               
                 console.log("firstname="+firstname)
                  
                 var lastname = records.getValue({
                    fieldId: 'textfield_lastname',
                   
                });
                 console.log("lastname="+lastname)


if(entity  && lastname && firstname && companyname  && webaddress && leadsource  ){



                var leadRec = record.create({
                    type: "LEAD",
                    isDynamic: true
                   });

                



                leadRec.setValue({
                    fieldId: 'entityid',
                    value: entity
                });

              

                leadRec.setValue({
                    fieldId: 'companyname',
                    value: companyname
                });
                leadRec.setValue({
                    fieldId: 'url',
                    value: webaddress
                });
                leadRec.setValue({
                    fieldId: 'email',
                    value: email
                });
                leadRec.setValue({
                    fieldId: 'phone',
                    value: phone
                });

                leadRec.setValue({
                    fieldId: 'category',
                    value: 4
                });

                leadRec.setValue({
                    fieldId: 'leadsource',
                    value: leadsource
                });
                
                // AJ MODIFIED TO ADD SALES TEAM
                var userID = runtime.getCurrentUser().id;
                console.log("userID="+userID);
              
                leadRec.selectLine({
                	sublistId:'salesteam',
                	line:0
                });
               
                // to set employee
                
                leadRec.setCurrentSublistValue({
                	sublistId:'salesteam',
                	fieldId:'employee',
                	value:userID,
                });
                
                // to set employee Sales rep
                
                leadRec.setCurrentSublistValue({
                	sublistId:'salesteam',
                	fieldId:'salesrole',
                	value:-2,
                });
                
                // to set employee Sales rep true
                
                leadRec.setCurrentSublistValue({
                	sublistId:'salesteam',
                	fieldId:'issalesrep',
                	value:true,
                });
                //isprimary
                leadRec.setCurrentSublistValue({
                	sublistId:'salesteam',
                	fieldId:'isprimary',
                	value:true,
                });
                leadRec.commitLine({
                	sublistId:'salesteam'
                });
            
  var internalid  =      leadRec.save();
  alert("You have successfully created the lead record internalId="+internalid)

      
try{

           var leadcontact = record.create({
                    type: "CONTACT"
                    
                   }); 

            leadcontact.setText({
                    fieldId: 'company',
                    text:companyname //entity
                });
                leadcontact.setValue({
                    fieldId: 'firstname',
                    value: firstname 
                });

                leadcontact.setValue({
                    fieldId: 'lastname',
                    value: lastname 

                });
var contactid  =      leadcontact.save();
}catch(e)
{
	console.log("Err 2 Contact create",e.message)
}
    window.location.reload();
   
    
}
else{
 alert("please fill all mandatory fields")
}}
catch (e) {
   alert("invalid field value"+e.message)
				
			}
    }

    return {
        
        saveRecord: saveRecord
    };
    
});

Leave a comment

Your email address will not be published. Required fields are marked *