Newer Version Available

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

LoginEvent

Represents a trackable user login event in your organization. This object is available in API version 36.0 and later.

Supported Calls

query()

Special Access Rules

Accessing this object requires View Event Log Files and API Enabled user permissions.

Fields

Field Details
AdditionalInfo
Type
string
Properties
Nillable
Description
JSON serialization of additional information that’s captured from the HTTP headers during a login request. For example, {"field1": "value1","field2": "value2"}.

See Working with AdditionalInfo.

ApiType
Type
string
Properties
Nillable
Description
English-only. The type of API that’s used to log in. Values include:
  • XML-RPC
  • OSOAP
  • SOAP Enterprise
  • SOAP Partner
  • SOAP Internal/CrossInstance
  • REST API
  • Metadata API
  • N/A
ApiVersion
Type
string
Properties
Nillable
Description
English-only. The version number of the API. If no version number is available, “Unknown” is returned.
Application
Type
string
Properties
Nillable
Description
The application name in English. For example, Salesforce Internal Application or Microsoft SOAP Toolkit.
AuthServiceId
Type
reference
Properties
Nillable
Description
Refers to the AuthenticationServiceId field on the LoginHistory object. For example, you can use this field to identify the SAML or authentication provider configuration with which the user logged in.
Browser
Type
string
Properties
Nillable
Description
The browser name and version if known. If no browser or version number is available, “Unknown” is returned. Product names are in English.
ClientVersion
Type
string
Properties
Nillable
Description
English-only. The version number of the login client. If no version number is available, “Unknown” is returned.
EventDate
Type
dateTime
Properties
Filter, Nillable, Sort
Description
The login time of the specified event. For example, 2013-01-01T03:01:01Z. Seconds are the most granular setting.
LoginGeoId
Type
reference
Properties
Nillable
Description
The Salesforce ID of the LoginGeo object associated with the login user’s IP address.
LoginHistoryId
Type
reference
Properties
Nillable
Description
Tracks a user session so you can correlate user activity with a particular login instance.
LoginType
Type
string
Properties
Nillable, Restricted picklist
Description
The event’s type of login. For example, “Application.”
LoginUrl
Type
string
Properties
Nillable
Description
The URL of the login host. For example, yourInstance.salesforce.com.
Platform
Type
string
Properties
Nillable
Description
The platform name and version that are used during the login event. If no platform name is available, “Unknown” is returned. Platform names are in English.
SourceIp
Type
string
Properties
Nillable
Description
The source IP address of the client logging in. For example, 126.7.4.2.
Status
Type
string
Properties
Nillable
Description
The login status is in English. "Success" is returned when successful. Otherwise, an error message is returned.
UserId
Type
ID
Properties
Nillable
Description
The user’s unique ID. For example, 005000000000123.
Username
Type
string
Properties
Nillable
Description
The username in the format of user@company.com.

Working with AdditionalInfo

AdditionalInfo enables you to extend the login event with custom data that can be queried later. For example, you can capture a correlation ID when a user logs in from an external system that shares that unique ID. This process enables tracking logins across systems. To store data with LoginEvent, begin all AdditionalInfo field names with x-sfdc-addinfo-{fieldname}. For example, a valid field assignment is x-sfdc-addinfo-correlation_id = ABC123 where x-sfdc-addinfo-correlation_id is the field name and ABC123 is the field value.

When defining field names, note the following:
  • x-sfdc-addinfo- is case-insensitive. x-sfdc-addinfo-{field name} is the same as X-SFDC-ADDINFO-{FIELD NAME}.
  • Fields can contain only alphanumeric and “_” (underscore) characters.
  • Filed names must be between 2 and 29 characters in length, excluding x-sfdc-addinfo-.
  • Field names that don’t start with x-sfdc-addinfo- are ignored.
  • Names that contain invalid characters after x-sfdc-addinfo- are ignored.
  • Only the first 30 valid field names are stored in AdditionalInfo. Field names are not necessarily stored in the same order in which they were passed to authentication.
When determining field values, keep the following in mind:
  • You can’t use existing API field names as AdditionalInfo names in the HTTP header. If the AdditionalInfo name conflicts with an object’s API name, the field value isn’t stored. For example, the HTTP header X-SFDC-ADDINFO-UserId='abc123' doesn’t get stored in AdditionalInfo.
  • Additional field values can contain only alphanumeric, “_,” and “-” characters.
  • Field values must be 255 characters in length or fewer. If a field value exceeds 255 characters, only the first 255 characters are stored and the rest are truncated.
  • Field values that contain invalid characters are saved with a field header of Empty String ("").
  • Only the first 30 valid field names are stored in the AdditionalInfo field. They are not guaranteed to be stored in the same order that they were passed into the authentication.
  • When AggregationFieldName or PlatformEventMetrics is SourceIp, you can’t filter on AggregationFiledValue if its value is Salesforce.com IP.

How to Pass Additional Information by Using HTTP with cURL

Here’s an example of passing additional information via the command line.
1curl https://yourInstance.salesforce.com/services/oauth2/token -d "grant_type=password" -d
2"client_id=3MVG9PhR6g6B7ps4RF_kNPoWSxVQstrazijsE8njPtkpUzVPPffzy8
3jIoRE6q9rPznNtlsqbP9ob8kUfMjXXX" -d "client_secret=4180313776440635XXX" -d
4"username=user@company.com" -d "password=123456" -H "X-PrettyPrint:1" -H
5"x-sfdc-addinfo-correlationid:
6d18c5a3f-4fba-47bd-bbf8-6bb9a1786624"

How to Pass Additional Information in Java

Here’s an example of passing additional information in Java.
1//adding additional info headers ..
2Map<String, String> httpHeaders = new HashMap<String,String>();
3httpHeaders.put("x-sfdc-addinfo-fieldname1" /* additional info field*/ ,
4"d18c5a3f-4fba-47bd-bbf8-6bb9a1786624" /* value*/);
5httpHeaders.put("x-sfdc-addinfo-fieldname2" /* additional info field*/ ,
6"d18c5a3f-4fba-47bd-bbf8-6bb9a1786624" /* value*/);
7ConnectorConfig config = new ConnectorConfig();
8config.setUsername(userId);
9config.setPassword(passwd);
10config.setAuthEndpoint(authEndPoint);
11config.setProxy(proxyHost, proxyPort);
12//setting additional info headers
13for (Map.Entry<String, String> entry : httpHeaders.entrySet()) {
14config.setRequestHeader(entry.getKey(), entry.getValue());
15}
16// Set the username and password if your proxy must be authenticated
179
18LoginEvent
19config.setProxyUsername(proxyUsername);
20config.setProxyPassword(proxyPassword);
21try {
22EnterpriseConnection connection = new EnterpriseConnection(config);
23// etc.
24} catch (ConnectionException ce) {
25ce.printStackTrace();
26}

SOQL Usage