@boozt/sfmc-request
v0.0.4
Published
SFMC Request
Downloads
13
Keywords
Readme
sfmc-request
Many years ago, one decided to take matters into their own hands and build a module that would help people avoid the unbearable burden of dealing with unexpected responses from the Marketing Cloud API.
The hero tried to use the existing SDKs and thoughtfully inspect the documentation. After some time of careful research, his labors were rewarded and this package was born.
At the moment, this is limited but quite useful functionality that will be expanded later.
what is the capable for?
- DataExtensionRow (Insert, Update, Get, Delete) — sync calls
- DataExtensionRowAsync (Insert, Upsert, Status, Result) — async calls
example of use
import { Client, DataExtensionRowAsync, DataExtensionRow } from '@boozt/sfmc-request'
const client = new ClientProvider(SFMC_BASE_URL, SFMC_SOAP_URL, SFMC_TOKEN_URL, [
{ name: SFMC_UNIT_NAME, clientId: SFMC_CLIENT_ID, clientSecret: SFMC_CLIENT_SECRET }
]).getClient(SFMC_UNIT_NAME)
const requestAsync = new DataExtensionRowAsync(client)
const requestSync = new DataExtensionRow(client)
const upsertResult = await requestAsync.upsert(TARGET_DE_KEY, upsertData)
if (upsertResult.ok) {
logger.status(`Update successful, requestId: ${upsertResult.value.requestId}`)
} else if (upsertResult.ok === false) {
return res.status(500).send(upsertResult.error.message)
}
const deleteResult = await requestSync.delete({ key: TARGET_DE_KEY }, deleteData)
if (deleteResult.ok) {
logger.status(`Deletion successful, requestId: ${deleteResult.value.RequestID}`)
} else if (deleteResult.ok === false) {
return res.status(500).send(JSON.stringify(deleteResult.error))
}
nice things
- you can use your own implementation of the client
- the module is covered with types as much as it could be done for a quick start
- it will get more abilities in the foreseeable future