@evokegroup/salesforce
Library for limited Salesforce integration
Class: Salesforce
Class: Salesforce.Api
constructor(args)
Parameter |
Type |
Default |
Description |
authorizer |
OAuth2.Authorizer |
|
|
clientId |
string |
|
|
clientSecret |
string |
|
|
subdomain |
string |
|
|
authOrigin |
string |
auth.marketingcloudapis.com |
|
restOrigin |
string |
rest.marketingcloudapis.com |
|
timeout |
number |
30000 |
|
logger |
Logger , |
|
A Logger to output logs to |
authenticate() => Promise<OAuth2.AccessToken>
Authenticates. Called automatically.
dataQuery(args)
Queries a data extension. The filter + fields query string character length must be <= 2048 characters when url encoded. See Utility.createDataQueryValueBatches
to break large queries into batches.
Parameter |
Type |
Default |
Description |
dataExtension |
string |
|
The name of the data extension to query |
filter |
Salesforce.Api.FilterGroup , Salesforce.Api.Filter
|
|
The query filter |
fields |
Array<string> |
|
The fields to return |
output |
Salesforce.Api.OutputFormat |
Salesforce.Api.OutputFormat.Json |
The output format |
transform |
boolean |
true |
Transforms the data returned to match the fields given |
const Salesforce = require('@evokegroup/salesforce');
const sf = new Salesforce.Api({
subdomain: 'abc123',
clientId: 'qwer456',
clientSecret: 'poiu0987'
});
sf.dataQuery({
dataExtension: 'DE_Custom_Contact',
filter: new Salesforce.Api.FilterGroup({
type: Salesforce.Api.FilterGroupType.And,
filters: [
new Salesforce.Api.FilterGroup({
type: Salesforce.Api.FilterGroupType.Or,
filters: [
new Salesforce.Api.Filter({
key: 'Contact Key',
value: 'guid-1'
}),
new Salesforce.Api.Filter({
key: 'Contact Key',
value: 'guid-2'
})
]
}),
new Salesforce.Api.Filter({
key: 'Custom Field Name',
value: 'Evoke'
})
]
}),
fields: ['Contact Key', 'Custom Field Name', 'Another Field']
})
.then((data) => {
console.log(data);
/*
[{
'Contact Key': 'guid-1',
'Custom Field Name': 'Evoke',
'Another Field': 'abc'
}, {
'Contact Key': 'guid-2',
'Custom Field Name': 'Evoke',
'Another Field': 'def'
}]
*/
})
.catch((ex) => {
console.log(ex);
});
dataInsertAsync(args)
Parameter |
Type |
Default |
Description |
dataExtension |
string |
|
The name of the data extension |
items |
Array<object> |
|
The data items to insert |
output |
Api.OutputFormat , Salesforce.Api.OutputFormat
|
Salesforce.Api.OutputFormat.Json |
The output format |
dataUpsertAsync(args)
Parameter |
Type |
Default |
Description |
dataExtension |
string |
|
The name of the data extension |
items |
object |
|
The data extension data to upsert |
output |
Salesforce.Api.OutputFormat |
Salesforce.Api.OutputFormat.Json |
|
interactionEvent(args)
Parameter |
Type |
Default |
Description |
contactKey |
string |
|
The contact key |
eventDefinitionKey |
string |
|
The event definition key |
data |
object |
|
The event data |
output |
Salesforce.Api.OutputFormat |
Salesforce.Api.OutputFormat.Json |
|
Class: Salesforce.Api.TokenAuthorizerV2 extends OAuth2.WebTokenAuthorizer
constructor({ subdomain, clientId, clientSecret, logger, authOrigin, timeout })
Class: Salesforce.Api.Filter
constructor(args)
Parameter |
Type |
Default |
Description |
key |
string |
|
This filter key (typically the field name) |
value |
string |
|
The value to filter on |
comparison |
string |
Api.FilterComparison.Equals |
The filter value comparison operator |
Properties
Name |
Type |
Default |
Description |
key |
string |
|
This filter key (typically the field name) |
value |
string |
|
The value to filter on |
comparison |
string |
Api.FilterComparison.Equals |
The filter value comparison operator |
Methods
toQuerystring()
Class: Salesforce.Api.FilterEquals extends Salesforce.Api.Filter
constructor(key, value)
Parameter |
Type |
Default |
Description |
key |
string |
|
This filter key (typically the field name) |
value |
string |
|
The value to filter on |
Class: Salesforce.Api.FilterGroup
constructor(args)
Parameter |
Type |
Default |
Description |
type |
string |
Api.FilterGroupType.And |
The operator the join filters with |
filters |
Array<object> |
|
An array containing Filter s and/or FilterGroups
|
Class: Salesforce.Api.FilterGroupAnd extends Salesforce.Api.FilterGroup
constructor(filters[, ...filter])
Parameter |
Type |
Default |
Description |
filter |
Array<Salesforce.Api.Filter> , Salesforce.Api.Filter
|
|
An array of Salesforce.Api.Filter or any number of filter paramters |
Class: Salesforce.Api.FilterGroupOr extends Salesforce.Api.FilterGroup
constructor(filters[, ...filter])
Parameter |
Type |
Default |
Description |
filter |
Array<Salesforce.Api.Filter> , Salesforce.Api.Filter
|
|
An array of Salesforce.Api.Filter or any number of filter paramters |
Enumeration: Salesforce.Api.FilterComparison
Enumeration: Salesforce.Api.FilterGroupType
Enumeration: Salesforce.Api.OutputFormat
Class: Salesforce.Constants
static DATA_QUERY_CHARACTER_LIMIT
The maximum number of characters allowed (2048) in a data queries filter and fields.
Class: Salesforce.Utility
static batchItems(items, { maxBytes, encoding })
Create item batches that are less than a given maximum byte size
static createDataQueryValueBatches({ filterKey, filterValues, fields, filterGroupType, filterComparisonType }) => Array<Array>
Separates large queries into batches which will be under the data query maximum character limit. Returns an array of arrays of unique filter values
Parameter |
Type |
Default |
Description |
filterKey |
string |
|
The filter key |
filterValues |
Array<string> |
|
The filter values |
fields |
Array<string> |
|
The fields the query would return |
filterGroupType |
Salesforce.Api.FilterGroupType.Or |
|
The filter group type |
filterComparisonType |
Salesforce.Api.FilterComparison.Equals |
|
The filter comparison |
const values = [...]; // A large number of filter values
const batches = Salesforce.Api.createDataQueryValueBatches({ filterKey: 'Email', filterValues: values, fields: ['Email', 'First Name', 'Last Name'] });
/* batches = [
[...],
[...],
[...]
] */