Skip to content

gojob-1337/sfmc-rest-sdk

Repository files navigation

@gojob/sfmc-rest-sdk

NPM publish

To publish a new version of this package, you have to build the project before run npm publish.

Description

The purpose of this library is to provide a Typescript wrapper around Salesforce Marketing Cloud API: SFMC.

Installation

yarn add @gojob/sfmc-rest-sdk

Usage example

import SFMC from '@gojob/sfmc-rest-sdk';

const sdk = new SFMC({
  domain: "mcdomainname",
  clientId: "123",
  clientSecret: "456",
  grantType: "client_credentials",
});

// ...

const makeSyncRequest = async () => {
  try {
    await sdk.dataEvents.sync.insertRows(
      [{
        keys: { subscriber_key: '123' },
        values: { email: '[email protected]' },
      }],
      "DATAEXTENSION_KEY"
    );
  } catch (e) {
    console.log(e);
  }
};

await makeSyncRequest();

Documentation

Authentification

When dealing with SFMC REST API, all requests have to be authentified through a OAuth token that has a time based expiration. All requests must also be correctly declaring permission roles. This sdk handle automatic authentification and token renewal through the v2/token Marketing Cloud APIs

Requestable

In addition to authentification, the Requestable class can be used to request any REST endpoint of the Marketing Cloud APIs that wouldn't be wrapped into existing classes

import { Requestable } from '@gojob/sfmc-rest-sdk';

const req = new Requestable();

req.authenticatedRequest({
  type: RequestType.POST,
  endpoint: `hub/whatever/mc/endpoint`,
  scope: Scope.according_scope,
  data,
});

API wrapper classes

Class REST API Doc Description
Auth SFMC.Auth Authentification V2 token API
DataEventsSync SFMC.DataEvents Sync operations on dataextensions
DataEventsASync SFMC.DataEvents Sync operations on dataextensions

Data Events API