Newer Version Available

This content describes an older version of this product. View Latest

Lead

Represents a prospect or potential Opportunity.

Supported Calls

create(), delete(), describeLayout(), describeSObjects(), getDeleted(), getUpdated(), merge(), query(), retrieve(), search(), undelete(), update(), upsert()

Fields

Field Details
Address
Type
address
Properties
Filter, Nillable
Description
The compound form of the address. Read-only. See Address Compound Fields for details on compound address fields.
AnnualRevenue
Type
currency
Properties
Create, Filter, Nillable, Sort, Update
Description
Annual revenue for the company of the lead.
City
Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
City for the address of the lead.
CleanStatus
Type
picklist
Properties
Create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
Indicates the record’s clean status as compared with Data.com. Values are: Matched, Different, Acknowledged, NotFound, Inactive, Pending, SelectMatch, or Skipped.
Several values for CleanStatus display with different labels on the lead record detail page.
  • Matched displays as In Sync
  • Acknowledged displays as Reviewed
  • Pending displays as Not Compared
Company
Type
string
Properties
Create, Filter, Group, Sort, Update
Description
Required. Company of the lead.

If person account record types have been enabled, and if the value of Company is null, the lead converts to a person account.

Note

CompanyDunsNumber
Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The Data Universal Numbering System (D-U-N-S) number is a unique, nine-digit number assigned to every business location in the Dun&Bradstreet database that has a unique, separate, and distinct operation. D-U-N-S numbers are used by industries and organizations around the world as a global standard for business identification and tracking. Maximum size is 9 characters.

This field is only available to organizations that use Data.com Prospector or Data.com Clean.

Note

ConnectionReceivedId
Type
reference
Properties
Filter, Group, Nillable, Sort
Description
ID of the PartnerNetworkConnection that shared this record with your organization. This field is only available if you have enabled Salesforce to Salesforce.
ConnectionSentId
Type
reference
Properties
Filter, Group, Nillable, Sort
Description
ID of the PartnerNetworkConnection that you shared this record with. This field is only available if you have enabled Salesforce to Salesforce. Beginning with API version 15.0, the ConnectionSentId field is no longer supported. The ConnectionSentId field is still visible, but the value is null. You can use the new PartnerNetworkRecordConnection object to forward records to connections.
ConvertedAccountId
Type
reference
Properties
Filter, Group, Nillable, Sort
Description
Object reference ID that points to the Account into which the Lead has been converted.
ConvertedContactId
Type
reference
Properties
Filter, Group, Nillable, Sort
Description
Object reference ID that points to the Contact into which the Lead has been converted.
ConvertedDate
Type
date
Properties
Filter, Group, Nillable, Sort
Description
Date on which this Lead was converted.
ConvertedOpportunityId
Type
reference
Properties
Filter, Group, Nillable, Sort
Description
Object reference ID that points to the Opportunity into which the Lead has been converted.
Country
Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
Country for the address of the lead.
CountryCode
Type
picklist
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The ISO country code for the lead’s address.
CurrencyIsoCode
Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort, Update
Description
Available only for organizations with the multicurrency feature enabled. Contains the ISO code for any currency allowed by the organization.
Description
Type
textarea
Properties
Create, Nillable, Update
Description
Description of the lead.
Division
Type
picklist
Properties
Defaulted on create, Filter, Group, Restricted picklist, Sort
Description
A logical segment of your organization's data. For example, if your company is organized into different business units, you could create a division for each business unit, such as “North America,” “Healthcare,” or “Consulting.” Available only if the organization has the Division permission enabled.
Email
Type
email
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
Email address for the lead.
EmailBouncedDate
Type
dateTime
Properties
Filter, Nillable, Sort, Update
Description
If bounce management is activated and an email sent to the lead bounced, the date and time the bounce occurred.
EmailBouncedReason
Type
string
Properties
Filter, Group, Nillable, Sort, Update
Description
If bounce management is activated and an email sent to the lead bounced, the reason the bounce occurred.
Fax
Type
phone
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
Fax number for the lead.
FirstName
Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
First name of the lead. Limited to 40 characters.
HasOptedOutOfEmail
Type
boolean
Properties
Create, Defaulted on create, Filter, Update
Description
Indicates whether the lead has opted out of email (true) or not (false). Label is Email Opt Out.
GeocodeAccuracy
Type
picklist
Properties
Retrieve, Query, Restricted picklist, Nillable
Description
Accuracy level of the geocode for the address on this object. See Compound Field Considerations and Limitations for details on geolocation compound fields.
Industry
Type
picklist
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
Industry the lead works in.
IsConverted
Type
boolean
Properties
Create, Defaulted on create, Filter, Group, Sort
Description
Indicates whether the Lead has been converted (true) or not (false). Label is Converted.
IsDeleted
Type
boolean
Properties
Defaulted on create, Filter
Description
Indicates whether the object has been moved to the Recycle Bin (true) or not (false). Label is Deleted.
IsUnreadByOwner
Type
boolean
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
If true, lead has been assigned, but not yet viewed. See Unread Leads for more information. Label is Unread By Owner.
Jigsaw
Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
References the ID of a contact in Data.com. If a lead has a value in this field, it means that a contact was imported as a lead from Data.com. If the contact (converted to a lead) was not imported from Data.com, the field value is null. Maximum size is 20 characters. Available in API version 22.0 and later. Label is Data.com Key.

The Jigsawfield is exposed in the API to support troubleshooting for import errors and reimporting of corrected data. Do not modify the value in the Jigsaw field.

Important

LastActivityDate
Type
date
Properties
Filter, Group, Nillable, Sort
Description
Value is one of the following, whichever is the most recent:
  • Due date of the most recent event logged against the record.
  • Due date of the most recently closed task associated with the record.
LastName
Type
string
Properties
Create, Filter, Group, Sort, Update
Description
Required. Last name of the lead. Limited to 80 characters.
LastReferencedDate
Type
date
Properties
Filter, Nillable, Sort, Update
Description
The timestamp for when the current user last viewed a record related to this record.
LastViewedDate
Type
date
Properties
Filter, Nillable, Sort, Update
Description
The timestamp for when the current user last viewed this record. If this value is null, this record might only have been referenced (LastReferencedDate) and not viewed.
Latitude
Type
double
Properties
Create, Filter, Nillable, Sort, Update
Description
Used with Longitude to specify the precise geolocation of an address. Acceptable values are numbers between –90 and 90 with up to 15 decimal places. See Compound Field Considerations and Limitations for details on geolocation compound fields.
Longitude
Type
double
Properties
Create, Filter, Nillable, Sort, Update
Description
Used with Latitude to specify the precise geolocation of an address. Acceptable values are numbers between –180 and 180 with up to 15 decimal places. See Compound Field Considerations and Limitations for details on geolocation compound fields.
LeadSource
Type
picklist
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
Source from which the lead was obtained.
MasterRecordId
Type
reference
Properties
Filter, Group, Nillable, Sort
Description
If this object was deleted as the result of a merge, this field contains the ID of the record that was kept. If this object was deleted for any other reason, or has not been deleted, the value is null.

When using Apex triggers to determine which record was deleted in a merge event, this field’s value is the ID of the record that was kept only in Trigger.old. In Trigger.new, the value is null.

Note

MiddleName
Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
Middle name of the lead. Maximum size is 40 characters. Contact Salesforce Customer Support to enable this field.
MobilePhone
Type
phone
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
Mobile phone number for the lead.
Name
Type
string
Properties
Filter, Group, Sort
Description
Concatenation of FirstName, MiddleName, LastName, and Suffix. Maximum size is 121 characters.
NumberOfEmployees
Type
int
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
Number of employees at the lead’s company. Label is Employees.
OwnerId
Type
reference
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
ID of the owner of the lead.
PartnerAccountId
Type
reference
Properties
Filter, Nillable
Description
ID of the partner account for the partner user that owns this lead. Available only if Partner Relationship Management is enabled OR Communities is enabled and you have partner portal licenses.

If you are uploading leads using API version 15.0 or earlier, and one of the leads in the batch has a partner user as the owner, the Partner Account field on all leads in the batch is set to that partner user’s account regardless of whether the partner user is the owner. In version 16.0, the Partner Account field is set to the appropriate account for the partner user that owns the lead. If the owner of the lead is not a partner user, this field remains blank.

Note

Phone
Type
phone
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
Phone number for the lead.
PhotoUrl
Type
url
Properties
Filter, Group, Sort
Description

Path to be combined with the URL of a Salesforce instance (for example, https://yourInstance.salesforce.com/) to generate a URL to request the social network profile image associated with the lead. Generated URL returns an HTTP redirect (code 302) to the social network profile image for the lead.

Blank if Social Accounts and Contacts isn't enabled for the organization or if Social Accounts and Contacts has been disabled for the requesting user.

PostalCode
Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
Postal code for the address of the lead. Label is Zip/Postal Code.
Rating
Type
picklist
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
Rating of the lead.
RecordTypeId
Type
reference
Properties
Create, Filter, Nillable, Update
Description
ID of the record type assigned to this object.
Salutation
Type
picklist
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
Salutation for the lead.
State
Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
State for the address of the lead.
StateCode
Type
picklist
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
The ISO state code for the lead’s address.
Status
Type
picklist
Properties
Create, Defaulted on create, Filter, Group, Sort, Update
Description
Status code for this converted lead. Status codes are defined in Status and represented in the API by the LeadStatus object.
Street
Type
textarea
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
Street number and name for the address of the lead.
Suffix
Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
Name suffix of the lead. Maximum size is 40 characters. Contact Salesforce Customer Support to enable this field.
Title
Type
string
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
Title for the lead, for example CFO or CEO.
Website
Type
url
Properties
Create, Filter, Group, Nillable, Sort, Update
Description
Website for the lead.

If you import Lead data and need to set the value for an audit field, such as CreatedDate, contact Salesforce. Audit fields are automatically updated during API operations unless you request to set these fields yourself..

Note

Converted Leads

Leads have a special state to indicate that they have been converted into an Account, Contact, and optionally, an Opportunity. Your client application can convert leads via the convertLead() call. Users can also convert leads through the user interface. Once a lead has been converted, it is read-only. You can’t update or delete a converted lead. However, you can query converted lead records.

Leads have several fields that indicate their converted status. These special fields are set when converting the lead in the user interface.

  • ConvertedAccountId
  • ConvertedContactId
  • ConvertedDate
  • ConvertedOpportunityId
  • IsConverted
  • Status

If person account record types have been enabled, and if the value of Company is null, the lead converts to a person account.

Note

Unread Leads

Leads have a special state to indicate that they have not been viewed or edited by the lead owner. In the user interface, this is helpful for users to know which leads have been assigned to them but which they have not touched yet. IsUnreadByOwner is true if the lead owner has not yet viewed or edited the lead, and false if the lead owner has viewed or edited the lead at least once.

Lead Status Picklist

Each Status value corresponds to either a converted or unconverted status in the lead status picklist, as defined in the user interface. To obtain the lead status values in the picklist, a client application can query LeadStatus.

You can’t convert a lead via the API by changing Status to one of the converted lead status values. When you convert qualified leads into an account, contact, and opportunity, you can select one of the converted status types for the lead. Leads with a converted status type are no longer available in the Leads tab, although you can include them in reports.

Usage

To update a Lead or to convert one with convertLead(), your client application must log in with the “Edit” permission on leads.

When you create, update, or upsert a lead, your client application can have the lead automatically assigned to one or more User records based on assignment rules that have been configured in the user interface.

To use this feature, your client application needs to set either of the following options (but not both) in the AssignmentRuleHeader used in create or update:

Field Field Type Details
assignmentRuleId reference ID of the assignment rule to use. Can be an inactive assignment rule. If unspecified and useDefaultRule is true, then the default assignment rule is used.

To find the ID for a given assignment rule, query the AssignmentRule object (specifying RuleType="leadAssignment"), iterate through the returned AssignmentRule records, find the one you want to use, retrieve its ID, and then specify its ID in this field in the AssignmentRuleHeader.

useDefaultRule boolean Specifies whether to use the default rule for rule-based assignment (true) or not (false). Default rules are assigned in the user interface.

Java Sample

The following Java sample shows how to automatically assign a newly created lead.

1package wsc;
2
3import com.sforce.soap.enterprise.Connector;
4import com.sforce.soap.enterprise.EnterpriseConnection;
5import com.sforce.ws.ConnectionException;
6import com.sforce.ws.ConnectorConfig;
7import com.sforce.soap.enterprise.sobject.Lead;
8import com.sforce.soap.enterprise.QueryResult; 
9import com.sforce.soap.enterprise.SaveResult; 
10import com.sforce.soap.enterprise.sobject.SObject;
11
12public class LeadAssignment {
13
14    static final String USERNAME = "REPLACE USER NAME";
15    static final String PASSWORD = "REPLACE PASSWORD";
16    static EnterpriseConnection connection;
17	
18    static LeadAssignment _leadAssignment;
19	
20    // Main
21    public static void main(String[] args)
22    { 
23        // Establish connection and login
24        ConnectorConfig config = new ConnectorConfig();
25        config.setUsername(USERNAME);
26        config.setPassword(PASSWORD);
27        try {
28            connection = Connector.newConnection(config);
29            System.out.println("Logged in, endpoint: " + config.getAuthEndpoint());
30        } catch (ConnectionException e1) {
31            e1.printStackTrace();
32        } 
33
34        // Create lead 
35        _leadAssignment = new LeadAssignment(); 
36        try { 
37            _leadAssignment.CreateLead(); 
38        } catch (Exception e) { 
39            e.printStackTrace(); 
40        } 
41        
42        // Logout
43        try {
44            connection.logout();
45            System.out.println("Logged out");
46        } catch (ConnectionException ce) {
47            ce.printStackTrace();
48        }	            
49    }
50    
51    public void CreateLead() throws ConnectionException
52    {    	
53        // Create a new Lead and assign various properties 
54        Lead lead = new Lead(); 
55     
56        lead.setFirstName("Joe"); 
57        lead.setLastName("Smith"); 
58        lead.setCompany("ABC Corporation"); 
59        lead.setLeadSource("API"); 
60        // The lead assignment rule will assign any new leads that 
61        // have "API" as the LeadSource to a particular user 
62        
63        // In this sample we will look for a particular rule and if found 
64        // use the id for the lead assignment. If it is not found we will 
65        // instruct the call to use the current default rule. You can't use 
66        // both of these values together. 
67        QueryResult qr = connection.query("SELECT Id FROM AssignmentRule WHERE Name = " +
68                             "'Mass Mail Campaign' AND SobjectType = 'Lead'"); 
69        if (qr.getSize() == 0) {
70            connection.setAssignmentRuleHeader(null, true);
71        } else {
72            connection.setAssignmentRuleHeader(qr.getRecords()[0].getId(), false);
73        }         
74			 
75        // Every operation that results in a new or updated lead will 
76        // use the specified rule until the header is removed from the 
77        // connection. 
78        SaveResult[] sr = connection.create(new SObject[] {lead}); 
79        for (int i=0;i<sr.length;i++) { 
80            if (sr[i].isSuccess()) {
81                System.out.println("Successfully created lead with id of: " + 
82                                   sr[i].getId() + ".");
83            } else {
84                System.out.println("Error creating lead: " + 
85                                   sr[i].getErrors()[0].getMessage());
86            }
87        } 		
88
89        // This call effectively removes the header, the next lead will 
90        // be assigned to the default lead owner. 
91        connection.clearAssignmentRuleHeader();
92    }    
93}

C# Sample

The following C# sample shows how to automatically assign a newly created lead.

1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using System.Threading.Tasks;
6using System.ServiceModel;
7using LeadSample.sforce;
8
9namespace LeadSample
10{
11    class LeadAssignment
12    {
13        private static SoapClient client;
14        private static SoapClient apiClient;
15        private static SessionHeader header;
16        private static LoginResult loginResult;
17        private static readonly string Username = "REPLACE USERNAME";
18        private static readonly string Password = "REPLACE PASSWORD AND SECURITY TOKEN";
19
20        // Create the proxy binding and login
21        private LeadAssignment()
22        {
23            client = new SoapClient();
24
25            try
26            {
27                loginResult = client.login(null, Username, Password);
28            }
29            catch (Exception e)
30            {
31                Console.WriteLine("Unexpected login error: " + e.Message);
32                Console.WriteLine(e.StackTrace);
33                return;
34            }
35            // Access API endpoint and create new client
36            header = new SessionHeader();
37            header.sessionId = loginResult.sessionId;
38            apiClient = new SoapClient("Soap", loginResult.serverUrl);
39        }
40
41        [STAThread]
42        static void Main(string[] args)
43        {
44            LeadAssignment leadAssignment = new LeadAssignment();
45            try
46            {
47                leadAssignment.CreateLead();
48            }
49            catch (Exception e)
50            {
51                Console.WriteLine(e.Message);
52                Console.WriteLine(e.StackTrace);
53                Console.WriteLine(e.InnerException);
54            }
55            // logout
56            client.logout(header);
57        }
58
59        public void CreateLead()
60        {
61            // Create a new Lead and assign various properties
62            Lead lead = new Lead();
63
64            lead.FirstName = "John";
65            lead.LastName = "Brown";
66            lead.Company = "ABC Corporation";
67            lead.LeadSource = "Advertisement";
68            // Setting the lead source for a pre-existing lead assignment rule. This 
69            // rule was created outside of this sample and will assign any new leads
70            // that have "Advertisement" as the LeadSource to a particular user.
71
72            // Create the assignment rule header and add it to the proxy binding
73            AssignmentRuleHeader arh = new AssignmentRuleHeader();
74
75            // In this sample we will look for a particular rule and if found
76            // use the id for the lead assignment. If it is not found we will
77            // instruct the call to use the current default rule. Both these
78            // values can't be used together.
79            QueryResult qr = null;
80            string query = "SELECT Id FROM AssignmentRule WHERE Name = " +
81                "'Mass Mail Campaign' AND SobjectType = 'Lead'";
82            try
83            {
84                LimitInfo[] limitArray = apiClient.query(
85                    header, // sessionheader
86                    null,   // queryoptions
87                    null,   // mruheader
88                    null,   // packageversionheader
89                    query,  // SOQL query
90                    out qr);
91            }
92            catch (Exception e)
93            {
94                Console.WriteLine("Unexpected query error: " + e.Message);
95                Console.WriteLine(e.StackTrace);
96            }
97            if (qr.size == 0)
98            {
99                arh.useDefaultRule = true;
100            }
101            else
102            {
103                arh.assignmentRuleId = qr.records[0].Id;
104            }
105
106            // Create the lead using our Assignment Rule header
107            LimitInfo[] li;
108            SaveResult[] sr;
109            apiClient.create(
110                header, // sessionheader
111                arh,    // assignmentruleheader
112                null,   // mruheader
113                null,   // allowfieldtrunctionheader
114                null,   // disablefeedtrackingheader
115                null,   // streamingenabledheader
116                null,   // allornoneheader
117                null,   // duplicateruleheader
118                null,   // localeoptions
119                null,   // debuggingheader
120                null,   // packageversionheader
121                null,   // emailheader
122                new sObject[] { lead },
123                out li,
124                out sr);
125            foreach (SaveResult s in sr)
126            {
127                if (s.success)
128                {
129                    Console.WriteLine("Successfully created Lead with ID: {0}", s.id);
130                }
131                else
132                {
133                    Console.WriteLine("Error creating Lead: {0}", s.errors[0].message);
134                }
135            }
136        }
137    }
138}