General
Supported version
The connector is developed using the SOAP API version 32.0 (Winter '15) and tested with Salesforce Enterprise Edition ('16).
Limitations
As of June 2016 it was not possible to list members of the computer generated group "All Internal Users". In our test environment this group is used for giving user permissions in Salesforce, but it is not possible to check if a given user is part of this group - to set accurate security permissions. It is possible to check if a user is internal - just not if it's an actual member of this group.
There are several security override possibilities in Salesforce. Permissions can for example be given to different Profiles (Standard User or custom profiles etc.) or to User Roles (can also be custom). Objects can also be set to inherit security from other objects (contacts from accounts) or in user hierarchy. Therefore Salesforce Security must be tested, using settings from the environment where it will be installed, and maybe some changes must be done to the connector before it can be deployed.
Permissions needed
At connection install time an Index User (with password and User Security Token) with access to the API and the content in Salesforce is needed. A Consumer Key and a Consumer Secret must also be provided - which are given by creating a Connected App in Salesforce (see below). At search time a user must log into a Salesforce account (with username, password and user security token) to get search hits from Salesforce.
The User Security Token can be omitted at install and search time if the actual Login IP Ranges are provided (for the profile of the given user) in Salesforce (see Authentication) .
Other information
There is a limited number of API calls that can be made for an organization within 24 hours. Use of salesforce within the application is also included in this given API limit. Because of the API restrictions the connector does not contain a preview of items. We also limit the number of calls by not indexing all the item types in Salesforce. Tasks are among items that are omitted in this version of the connector, but easily can be added.
Configurations
Connection
A connection to Salesforce is established based on the username, password, User Security Token, Consumer Key and the Consumer Secret provided in the Admin Wizard. The Salesforce API is used for all communication with the application.
Content types
The connector can index following content types.
- Users
- Accounts
- Contacts
- Opportunities
- Leads
- Attachments
User
Selected metadata
Field | Example | Show | Searchable | Use as refiner | Comment |
Id | 005A0000006ScSEIA0 | No | No | No | Internal id |
CreatedDate | 03.08.2015 08:29:35 | Yes | No | No | |
CreatedById | 005A0000001DwEjIAK | No | No | No | Reference to user (User id) |
LastModifiedDate | 29.06.2016 09:22:56 | Yes | No | No | |
LastModifiedById | 005A0000006ScSEIA0 | No | No | No | Reference to user |
Name | Ola Nilsen | Yes | Yes | No | Used as title |
Username | ola.nilsen@vw.com | Details | Yes | No | |
Company | VirtualWorks | Details | Yes | No | |
Title | Regional Manager | Details | Yes | No | |
Division | Sales | Details | Yes | No | |
Department | HR | Details | Yes | No | |
Street | Bay Drive 32 | Details | Yes | No | |
City | Miami | Details | Yes | No | |
State | FL | Details | Yes | No | |
PostalCode | 33131 | Details | Yes | No | |
Country | USA | Details | Yes | No | |
ola@vw.com | Details | Yes | No | ||
Phone | 55555500 | Details | Yes | No | |
Mobile | 99999900 | Details | Yes | No | |
Alias | olan | Details | Yes | No | |
CommunityNickname | Ola Nilsen | Details | Yes | No | |
IsActive | True / False | Details | No | No | Used for checking if a user is internal |
UserRoleId | 00EA0000000EjKIMA0 | No | No | No | Reference to role |
ProfileId | 00eA0000000RkJkIAK | No | No | No | Reference to profile |
UserType | Standard | Details | Yes | No | Used for checking if a user is internal |
EmployeeNumber | 77 | Details | Yes | No | |
ManagerId | 005A0000001DwEjIAK | No | No | No | Reference to user |
ContactId | 003A000001gMLRzIAO | No | No | No | |
AccountId | 001A0000013RamJIAS | No | No | No | |
AboutMe | I enjoy the beach | Details | Yes | No | |
IsPortalEnabled | True / False | No | No | No | Used for checking if a user is internal |
A complete list of all user metadata fields can found here:
https://developer.salesforce.com/docs/atlas.en-us.192.0.api.meta/api/sforce_api_objects_user.htm
User items can only be viewed by users that have a profile set to view all users.
Account
Selected metadata
Field | Example | Show | Searchable | Use as refiner | Comment |
Id | 001A0000013RamJIAS | No | No | No | Internal id |
CreatedDate | 03.08.2015 08:29:35 | Yes | No | No | |
CreatedById | 005A0000001DwEjIAK | No | No | No | Reference to user |
LastModifiedDate | 29.06.2016 09:22:56 | Yes | No | No | |
LastModifiedById | 005A0000006ScSEIA0 | No | No | No | Reference to user |
Name | VW | Yes | Yes | No | Used as title |
Type | Prospect | Details | Yes | No | |
BillingStreet | 22 Main Rd. | Details | Yes | No | |
BillingCity | New York | Details | Yes | No | |
BillingState | NY | Details | Yes | No | |
BillingPostalCode | 31283 | Details | Yes | No | |
BillingCountry | USA | Details | Yes | No | |
ShippingStreet | 22 Main Rd. | Details | Yes | No | |
ShippingCity | New York | Details | Yes | No | |
ShippingState | NY | Details | Yes | No | |
ShippingPostalCode | 31283 | Details | Yes | No | |
ShippingCountry | USA | Details | Yes | No | |
Industry | IT Services | Details | Yes | No | |
AnnualRevenue | 291800000 | Details | Yes | No | |
NumberOfEmployees | 916 | Details | Yes | No | |
Description | Company Info | Details | Yes | No | |
Phone | 55555500 | Details | Yes | No | |
Website | http://vw.com | Details | Yes | No | |
Currency | USD | Details | Yes | No | |
Owner (OwnerId) | Kari Nilsen (005A0000001DKnBIAW) | Details | Yes | No | Name of owner object used |
LastActivityDate | 2015-12-23 | Details | Yes | No |
A complete list of all account metadata fields can found here:
https://developer.salesforce.com/docs/atlas.en-us.192.0.api.meta/api/sforce_api_objects_account.htm
Contact
Selected metadata
Field | Example | Show | Searchable | Use as refiner | Comment |
Id | 003A000001gMLRzIAO | No | No | No | Internal id |
CreatedDate | 03.08.2015 08:29:35 | Yes | No | No | |
CreatedById | 005A0000001DwEjIAK | No | No | No | Reference to user |
LastModifiedDate | 29.06.2016 09:22:56 | Yes | No | No | |
LastModifiedById | 005A0000006ScSEIA0 | No | No | No | Reference to user |
Name | Kari Larsen | Yes | Yes | No | Used as title |
Account (AccountId) | VW (001A0000013RamJIAS) | Details | Yes | No | Name of account object used |
OtherStreet | Nedre Slottsgate 97 | Details | Yes | No | |
OtherCity | Oslo | Details | Yes | No | |
OtherState | Oslo | Details | Yes | No | |
OtherPostalCode | 2010 | Details | Yes | No | |
OtherCountry | Norway | Details | Yes | No | |
MailingStreet | 250 Chestnut Street | Details | Yes | No | |
MailingCity | Toronto | Details | Yes | No | |
MailingState | Ontario | Details | Yes | No | |
OtherPostalCode | L8C 1Y7 | Details | Yes | No | |
MailingCountry | Canada | Details | Yes | No | |
Phone | 555-7777 | Details | Yes | No | |
Mobile | 901-7777 | Details | Yes | No | |
HomePhone | 555-7777 | Details | Yes | No | |
AssistantPhone | 901-7777 | Details | Yes | No | |
ReportsToId | 003A000001Il7xmIAB | No | No | No | Contact reference |
info@salesforce.com | Details | Yes | No | ||
Title | VP Sales | Details | Yes | No | |
Department | Sales | Details | Yes | No | |
AssistantName | John Malone | Details | Yes | No | |
LeadSource | Employee Referral | Details | Yes | No | |
Birthdate | 17-08 | Details | Yes | No | |
Description | Reseller | Details | Yes | No | |
Currency | NOK | Details | Yes | No | |
Owner (OwnerId) | Steve (005A0000001Dds8IAC) | Details | Yes | No | Name of owner object used |
LastActivityDate | 2015-12-24 | Details | Yes | No |
A complete list of all contact metadata fields can found here:
https://developer.salesforce.com/docs/atlas.en-us.192.0.api.meta/api/sforce_api_objects_contact.htm
Contacts can be set to inherite security tokens from a accounts - depending on the Salesforce settings.
Opportunity
Selected metadata
Field | Example | Show | Searchable | Use as refiner | Comment |
Id | 006A000000Mjv5cIAB | No | No | No | Internal id |
CreatedDate | 03.08.2015 08:29:35 | Yes | No | No | |
CreatedById | 005A0000001DwEjIAK | No | No | No | Reference to user |
LastModifiedDate | 29.06.2016 09:22:56 | Yes | No | No | |
LastModifiedById | 005A0000006ScSEIA0 | No | No | No | Reference to user |
Name | Frank Rice | Yes | Yes | No | Used as title |
Account (AccountId) | VW (001A0000013RamJIAS) | Details | Yes | No | Name of account object used |
Stage | Closed Won | Details | Yes | No | |
Description | Law firm | Details | Yes | No | |
Amount | 3110 | Details | Yes | No | |
Probability | 100 | Details | Yes | No | |
ExpectedRevenue | 3110 | Details | Yes | No | |
CloseDate | 2013-12-27 | Details | Yes | No | |
Type | New End User | Details | Yes | No | |
NextStep | Lost | Details | Yes | No | |
LeadSource | Registration | Details | Yes | No | |
IsClosed | True / False | No | No | No | |
IsWon | True / False | No | No | No | |
ForecastCategory | Omitted | No | No | No | |
ForecastCategoryName | Omitted | No | No | No | |
Currency | NOK | Details | No | Yes | |
CampaignId | No | No | No | ||
Owner (OwnerId) | Lars Olsen (005A0000001Dds8IAC) | Details | Yes | No | Name of owner object used |
LastActivityDate | 2015-12-23 | Details | Yes | No | |
Fiscal | 2013 4 | Details | Yes | No | Contains FiscalYear and FiscalQuarter |
A complete list of all opportunity metadata fields can found here:
https://developer.salesforce.com/docs/atlas.en-us.192.0.api.meta/api/sforce_api_objects_opportunity.htm
Lead
Selected metadata
Field | Example | Show | Searchable | Use as refiner | Comment |
Id | 00QA000000hOyJKMA0 | No | No | No | Internal id |
CreatedDate | 03.08.2015 08:29:35 | Yes | No | No | |
CreatedById | 005A0000001DwEjIAK | No | No | No | Reference to user |
LastModifiedDate | 29.06.2016 09:22:56 | Yes | No | No | |
LastModifiedById | 005A0000006ScSEIA0 | No | No | No | Reference to user |
Name | Nils Jensen | Yes | Yes | No | Used as title |
Company | Records Specialist | Details | Yes | No | |
Title | Public Information | Details | Yes | No | |
Street | Old Street 44 | Details | Yes | No | |
City | Portland | Details | Yes | No | |
State | OR | Details | Yes | No | |
PostalCode | 97212 | Details | Yes | No | |
Country | USA | Details | Yes | No | |
nilsj@vw.com | Details | Yes | No | ||
Phone | 555-801-9006 | Details | Yes | No | |
Mobile | +1 5095200010 | Details | Yes | No | |
Website | www.info.com | Details | Yes | No | |
Description | Information center | Details | Yes | No | |
LeadSource | Other | Details | Yes | No | |
Status | Qualified | Details | Yes | No | |
Industry | Government | Details | Yes | No | |
Rating | Details | Yes | No | ||
Currency | USD | Details | Yes | No | |
AnnualRevenue | 6500000000 | Details | Yes | No | |
NumberOfEmployees | 37000 | Details | Yes | No | |
Owner (OwnerId) | Lars Olsen (005A0000001Dds8IAC) | Details | Yes | No | Name of owner object used |
IsConverted | True / False | No | No | No | |
ConvertedDate | 2013-12-23 | Details | Yes | No | |
ConvertedAccount (ConvertedAccountId) | County Department (001A0000013QUY0IAO) | Details | Yes | No | Name of account object used |
ConvertedContact (ConvertedContactId) | Mark Rice (003A000001Jj73nIAB) | Details | Yes | No | Name of contact object used |
ConvertedOpportunityId (ConvertedOpportunityId) | County Sale (006A000000MjfxfIAB) | Details | Yes | No | Name of opportunity object used |
LastActivityDate | 2013-12-12 | Details | Yes | No | |
DoNotCall | True / False | Details | No | No |
A complete list of all lead metadata fields can found here:
https://developer.salesforce.com/docs/atlas.en-us.192.0.api.meta/api/sforce_api_objects_lead.htm
Attachment
Selected metadata
Field | Example | Show | Searchable | Use as refiner | Comment |
Id | 00PA000000dfTYzMAM | No | No | No | Internal id |
CreatedDate | 03.08.2015 08:29:35 | Yes | No | No | |
CreatedById | 005A0000001DwEjIAK | No | No | No | Reference to user |
LastModifiedDate | 29.06.2016 09:22:56 | Yes | No | No | |
LastModifiedById | 005A0000006ScSEIA0 | No | No | No | Reference to user |
Name | Impact.pdf | Yes | Yes | No | Used as title |
Parent (ParentId) | John Rice (006A000000MlV2SIAV) | Details | Yes | No | Reference to various object types. Name of parent used |
IsPrivate | True / False | No | No | No | |
ContentType | application/pdf | Details | Yes | No | |
BodyLength | 49807 | No | No | No | |
Description | Manufacture | Details | Yes | No | |
Owner (OwnerId) | Linda Alves (005A0000001DNyHIAW) | Details | Yes | No | Name of owner object used |
A complete list of all attachment metadata fields can found here:
https://developer.salesforce.com/docs/atlas.en-us.192.0.api.meta/api/sforce_api_objects_attachment.htm
Attachments inherent security settings from the mother items. Attachments where the mother item is not indexed (for example tasks) are indexed, but can only be viewed by user with a profile set to view all data.
Refiners
No refiners are defined in the connector. They must be set up for each installation independently. Under Show Navigator in ViaWorks all the item types and document owners in Salesforce are listed. There the user can specify which items and owners to search for.
Preview
There are no preview of documents due to the restrictions in Salesforce API usage within 24 hours.
Opening / Buttons
When clicking on the open button all items open directly in Salesforce - where users can see and edit the full content. The user must log in to Salesfoce in order to display the items. Other buttons leads to related objects in Salesforce. The buttons displayed in ViaWorks depends on the item type and its content. For example, only attachments can be downloaded. As an alternative to the buttons, rights clicking on the title lists the options available for an item.
Button name | Function | Application | Log in required |
Open | Opens a Salesforce URL to the item | in Salesforce (web browser) | Yes |
Open Owner | Opens a Salesforce URL to the Owner (User) of the item | In Salesforce (web browser) | Yes |
Open Parent | Opens a Salesforce URL to Parent of the item | In Salesforce (web browser) | Yes |
Converted Account | Only for leads. Opens a Salesforce URL to the converted account | in Salesforce (web browser) | Yes |
Converted Contact | Only for leads. Opens a Salesforce URL to the converted contact | in Salesforce (web browser) | Yes |
Converted Opportunity | Only for leads. Opens a Salesforce URL to the converted opportunity | in Salesforce (web browser) | Yes |
Manager | Currently only for users. Opens a Salesforce URL to the manager | in Salesforce (web browser) | Yes |
Download | Only for attachments. Downloads file | in web browser | Yes |
Authentication
At search time users needs to log into their Salesforce accounts in ViaWorks. This authentication is done under Account & Settings and Source Credentials.
The salesforce security token is given for each user and can be reset and sent by email from Salesforce. This user token is needed together with the username and password to get access to the API and use the connector. It is possible to omit the token and only use the username and password to login. This is done by adding the IP in use under IP Login IP Ranges in Salesforce. The ranges are given for each profile group (for example System Administrator etc). Each user having the current profile can then login without the security token. Still a random text string must be filled in the field salesforcetoken in the window, to be able to authenticate the user, but this text is ignored.
Authorization
Items are marked with a list of Salesforce groups and user SIDs at fetching time. At search time, users are given SIDs based on the Salesforce account associated with the ViaWorks login.
Example:
- "SalesF 005A0000004wzojIAA" (User)
- "SalesF 00GA0000001LnPuMAK" (Group)
- "SalesF AllData" (View all data - from profile settings)
- "SalesF Users" (View all users - from profile settings)
Installation
After installing the connector using the MSI package the Salesforce Fetch Service can be started. When the fetch service is running please open the ViaWorks Management Console to set up an connection.
ViaWorks Admin Wizard
When installing the connector the following values in the Admin Wizard below needs to filled in.
Under Salesforce Entities to index, it is possible to restrict indexing to certain object types.
There could be quite strict API restriction for organizations. The maximum number of calls to the API is calculated for a 24 hours period. Information about the current API usage is found in the response header and checked in the program. Two different stop limits are set in the wizard and used by the connector. Both limits are in percentage of the maximum numbers of API calls. The first one is a limit for when to start a full crawl. In the example above this limit is set to 20%. The other limit is when to stop making any API call from the connector. This restriction also includes Salesfoece login in Viaworks. Here this limit is set to 80%. This second limit is also stored in the database to be used within the Security Authentication plugin.
The Consumer Key and the Consumer Secret must be included in the second page of the Admin Wizard. As mentioned under Authentication the User Security Token must be included unless the IP that is used is added to the "Login IP Ranges" in Salesforce (for the profile of the index user).
The values Consumer Key and Consumer Secret are used with the Source Credentials entered in Viaworks (browser login at search time - see Authentication) to authenticate the user. FullStopAPILimit is the same as the second limit from the general settings (stop all API calls). Not even authenticating the user is possible if the organizations API usage exceeds this limit (here set to 80%).
The 3 values used by the Security Authentication plugin are stored in database table search.auth_realm_setting.
Custom Templates
Custom templates are not in use.
Security
A user can be granted access to an item in several ways. Not all possible ways are currently included in the connector. The possible security overrides depends on the Salesforce edition.
The current user security access is implemented in the connector.
- User access is given by the user Id
- Group access is given from user roles and inherited sub roles
- Permission to view all data, if the profile has this access
- Permission to view all users, if the profile has this access
Salesforce Connected Apps
As mentioned above a Connected App must be registered in the Salesforce application to generate a Consumer Key and a Consumer for connecting to the Salesforce API. A Connected App can be created under Setup → Create → Apps as shown below.
Salesforce API
Salesforce objects and the API can be tested in the developer console in the application or in the workbench: https://workbench.developerforce.com/login.php
API Documentation: https://developer.salesforce.com/docs/atlas.en-us.192.0.api.meta/api/sforce_api_quickstart_intro.htm