Use the SDK to call the Genesys Cloud Platform API
You can use our SDK in the managed package to call the Genesys Cloud Platform API in Salesforce. The SDK uses the Salesforce Apex programming language.
Prerequisites
- Authentication configured.
You can call any Platform API that is not tied to a specific user context and that the permissions in your OAuth client allow. The OAuth client is the OAuth client that you created for the Authentication settings in Salesforce. For more information, see Authentication.
Access our SDK through the Rest class under the purecloud.SDK.Rest namespace. For examples that access our SDK through the Rest class, see Genesys Cloud for Salesforce SDK Examples (GitHub).
Rest class
Contains methods that act on the Genesys Cloud Platform API through Genesys Cloud for Salesforce.
Namespace
purecloud.SDK.Rest
Usage
Use these methods to GET, PATCH, POST, PUT, or DELETE data with the Platform API through Genesys Cloud for Salesforce.
Rest methods
The following methods are available for the Rest class.
Sends an HTTP GET request to a Platform API endpoint.
Parameters
Name | Data type | Required or optional | Description |
---|---|---|---|
url | String | Required | Path for a Platform API, for example, /api/v2/users/{userId}. |
headers | Map<String, String> | Optional | Custom data added to HTTP headers. |
Return value
Data type | Description |
---|---|
HttpResponse | Returns native Salesforce HttpResponse. |
Example
The following example returns information about a particular user and sends a custom header with the /api/v2/users/{userId} endpoint.
HttpResponse response = purecloud.SDK.Rest.get('/api/v2/users/6a50987a-f00c-4b10-b627-4a677f9f0263', new Map<String, String>{'CustomHeaderValue' => 'Foo'});
Sends an HTTP PATCH request to a Platform API endpoint.
Parameters
Name | Data type | Required or optional | Description |
---|---|---|---|
url | String | Required | Path for a Platform API, for example, /api/v2/users/search. |
body | String | Required | Serialized JSON object. |
headers | Map<String, String> | Optional | Custom data added to HTTP headers. |
Return value
Data type | Description |
---|---|
HttpResponse | Returns native Salesforce HttpResponse. |
Example
The following example modifies attributes on a chat participant with the /api/v2/conversations/chats/{conversationId}/participants/{participantId}/attributes endpoint. The request body is formatted as { “attributes”: { “attrib1”: “John Doe”, “attrib2”: “Foo” }}.
Map<String,Object> attributes = new Map<String,Object> {
'attrib1' => 'John Doe',
'attrib2' => 'Foo'
};
Map<String,Object> body = new Map<String,Object> {
'attributes' => attributes
};
HttpResponse response = purecloud.SDK.Rest.patch('/api/v2/conversations/chats/42a09688-c7e2-4d49-b9b8-8667d321a6f7/participants/5ad38568-9b97-4db6-850b-48b750566b06/attributes', JSON.serialize(body), new Map<String, String>{'CustomHeaderValue' => 'Foo'});
Sends an HTTP POST request to a Platform API endpoint.
Parameters
Name | Data type | Required or optional | Description |
---|---|---|---|
url | String | Required | Path for a Platform API, for example, /api/v2/users/search. |
body | String | Required | Serialized JSON object. |
headers | Map<String, String> | Optional | Custom data added to HTTP headers. |
Return value
Data type | Description |
---|---|
HttpResponse | Returns native Salesforce HttpResponse. |
Example
The following example searches users by name and sends a custom header with the /api/v2/users/search endpoint. The example uses two mapped objects to generate a JSON string. The request body is formatted as { “query”: [{ “fields”: [“name”], “value”: “John Doe”, “type”: “CONTAINS” }] }
Map<String,Object>query=new Map<String,Object>{
'fields'=newList<String>{'name'},
'value'=>'John Doe',
'type' =>'CONTAINS'
};
Map<String,Object>body=newMap<String,Object>{
'query' => new List<Object>{ query }
};
HttpResponse response = purecloud.SDK.Rest.post('/api/v2/users/search', JSON.serialize(body), new Map<String, String>{'CustomHeaderValue' => 'Foo'});
Sends an HTTP PUT request to a Platform API endpoint.
Parameters
Name | Data type | Required or optional | Description |
---|---|---|---|
url | String | Required | Path for a Platform API, for example, /api/v2/users/{userId}/callForwarding. |
body | String | Required | Serialized JSON object. |
headers | Map<String, String) | Optional | Custom data added to HTTP headers. |
Return value
Data type | Description |
---|---|
HttpResponse | Returns native Salesforce HttpResponse. |
Example
The following example updates the call forwarding settings for a particular user and sends a custom header with the /api/v2/users/{userId}/callForwarding endpoint.
String body = '{ "enabled": true, "phoneNumber": "+13175550123" }';
HttpResponse response = purecloud.SDK.Rest.put('/api/v2/users/6a50987a-f00c-4b10-b627-4a677f9f0263/callForwarding', body, new Map<String, String>{'CustomHeaderValue' => 'Foo'});
Sends an HTTP DEL request to a Platform API endpoint.
Parameters
Name | Data type | Required or optional | Description |
---|---|---|---|
url | String | Required | Path for a Platform API, for example, /api/v2/users/{userId}/station/associatedStation. |
headers | Map<String, String> | Optional | Custom data added to HTTP headers. |
Return value
Data type | Description |
---|---|
HttpResponse | Returns native Salesforce HttpResponse. |
Example
The following example deletes the association between a station and a user and sends a custom header with the /api/v2/users/{userId}/station/associatedstation endpoint.
HttpResponse response = purecloud.SDK.Rest.del('/api/v2/users/6a50987a-f00c-4b10-b627-4a677f9f0263/station/associatedstation', new Map<String, String>{'CustomHeaderValue' => 'Foo'});
For more information, see SDK in Genesys Cloud for Salesforce.
For more information about the integration, see About Genesys Cloud for Salesforce.