How it works

The Salesforce connector indexes documents from your Salesforce. These documents organized around the Objects that you indicate. Examples are below.

Setting up

Authorization

  1. Log into Salesforce
    • The Salesforce user must be an organization member or have admin access to the data you would like to index.
  2. Click the profile avatar and choose Settings.
SalesforceConnectorAuth
  1. Select My Personal InformationReset My Security Token.
SalesforceConnectorAuth
  1. Check your email for the security token.
SalesforceConnectorAuth
  1. Once the token has been regenerated, you can use it (as well as your username and password) to authorize your onyx connector

Indexing

  1. Navigate to the Admin Dashboard and select the Salesforce Connector Tile.
  2. Provide your Username, Password and the Security Token received from the above steps. 3a. Simple: Enter the Salesforce Object(s) you wish to index and organize your Onyx documents by.
    • make sure to use the singular version of object name (e.g. Opportunity instead of Opportunities)
    • if no objects are indicated, it will default to indexing by Account
    • Each Onyx Document extracted from Salesforce contains all fields and associations of each object. For example, when indexing each Account we include the fields of the AccountFeed and AccountShare objects as well (but not the associations of those objects). This can lead to bloated queries and memory intensive indexing in larger salesforce instances; use the Advanced mode to have finer grained control over what is indexed if necessary. 3b. Advanced:
    • specify which objects, fields, and associations get indexed with a json
    • top level keys are Salesforce Objects, each value is a json object specifying:
      • “fields”: a list of srings describing the fields of the object to index
      • “associations”: a JSON object mapping a Salesforce Object associated with the parent object to a list of fields to be indexed for the child object
    • example:
    {
        "Account": {
            "fields": ["Id", "Name", "Industry", "CreatedDate", "lastModifiedDate"],
            "associations": {
                "Contact": ["Id", "FirstName", "LastName", "Email"],
                "Opportunity": ["Id", "Name", "StageName", "Amount", "CloseDate"]
            }
        },
        "Lead": {
            "fields": ["Id", "FirstName", "LastName", "Company", "Status"],
            "associations": {}
        }
    }
    
  3. Information will then be indexed by the indicated object(s)

An Example

  • You indicate you’d like to organize information by Account and click connect:
SalesforceConnectorAuth - Onyx will generate a document for every single Account in your Salesforce - Attached to each document will be all the information associated with that Account - This information would also include information from the Account’s children objects (E.g. all associated Contacts, Notes, etc.) - This means indicating Account means that all Contacts that are attached to an account will also be grabbed - However, if you want to index any Contacts that aren’t attached to any Accounts, (as well as Accounts), you would indicate that like so: SalesforceConnectorAuth