Globals Class

The Globals class allows external Apex code to access some Coveo for Salesforce features.

generateSearchToken

Generates a search token that can then be used to invoke the Coveo Search REST API on the Coveo Platform. Under the hood, this calls the Coveo Search API /rest/search/v2/token endpoint.

String token = CoveoV2.Globals.generateSearchToken(<PARAMS>);

Where the <PARAMS> (Object, Optional) parameter allows you to pass additional information that should be added to the search token.

Example:

String token = CoveoV2.Globals.generateSearchToken(new Map<String, Object> {
    'filter' => '@source==KnowledgeBase',
    'pipeline' => 'InternalSearch'
});

additionalUserIdentity (Optional)

Specifies a list of identities to add to the token. For example, this can be used when you have a specific identity that has access to documents that everyone should be able to see.

Example:

String token = CoveoV2.Globals.generateSearchToken(new Map<String, Object> {
    'additionalUserIdentities' => new List<CoveoV2.UserIdentity>{
        new CoveoV2.UserIdentity('john@doe.com'),
        new CoveoV2.UserIdentity('jane@doe.com','Email Security Provider')
        new CoveoV2.UserIdentity('jane@doe.com','Email Security Provider','USER')
    }
});

The UserIdentity class used to add user identities uses the following constructor:

UserIdentity(<NAME>, <PROVIDER>, <TYPE>)

Where:

  • <NAME>: (String, Required) The identity provider to add.

  • <PROVIDER>: (String, Optional) The security provider of your user identity.

  • <TYPE>: (String, Optional) The virtual group your identity belongs to.

For more information on user identities, see Coveo Cloud Management of Security Identities and Item Permissions.

filter (Optional)

The filter query expression to apply when authenticating a query with this search token.

This expression will be merged with the constant part of the query expression (cq) using an AND operator.

The filter can also be used in query pipeline condition statements (e.g., when $constantQuery contains \"@source==KnowledgeBase\").

Example: @source==KnowledgeBase

String token = CoveoV2.Globals.generateSearchToken(new Map<String, Object> {
    'filter' => '@source==KnowledgeBase'
});

pipeline (Optional)

The name of the query pipeline to use when authenticating a query with this search token.

This query pipeline will take precedence over the possible output of all other query pipeline routing mechanisms when using this search token (see Query Pipeline Routing Mechanisms and Rules).

Example: InternalSearch

String token = CoveoV2.Globals.generateSearchToken(new Map<String, Object> {
    'pipeline' => 'InternalSearch'
});

searchHub (Optional)

The name of the search hub to enforce when authenticating a query with this search token.

This value will override the searchhub parameter of the query itself, and will be passed as the originLevel1 property value when logging usage analytics search events.

The search hub can also be used in query pipeline condition statements (e.g., when $searchhub is \"CommunityHub\").

Example: SupportHub

String token = CoveoV2.Globals.generateSearchToken(new Map<String, Object> {
    'searchHub' => 'SupportHub'
});

userDisplayName (Optional)

The userDisplayName to pass when logging usage analytics search events.

This information is leveraged in the Analytics section of the Coveo Cloud administration console.

Example: Alice Smith

String token = CoveoV2.Globals.generateSearchToken(new Map<String, Object> {
    'userDisplayName' => 'Alice Smith'
});

userGroups (Optional)

The userGroups to pass when logging usage analytics search events.

This information is leveraged in the Analytics section of the Coveo Cloud administration console.

User groups can be also be used in query pipeline condition statements (e.g., when $groups contains \"Employees\").

Example: ["Tech support agents", "Employees"]

By default, the service uses the user profile name inside Salesforce.

String token = CoveoV2.Globals.generateSearchToken(new Map<String, Object> {
    'userGroups' => new List<String>{ "Tech support agents","Employees" }
});

validFor (Optional)

The number of milliseconds the search token will remain valid for once it has been created.

Minimum value: 900000 (i.e., 15 minutes)

Maximum/default: 86400000 (i.e., 24 hours)

String token = CoveoV2.Globals.generateSearchToken(new Map<String, Object> {
    'validFor' => '3600000'
});
What's Next for Me?