Skip to main content
Version: 2.2.0

Node.js SDK

Our Node.js SDK allows you to easily setup, build, test, and go live with Alloy Embedded. Our SDK allows you to interface with our backend REST APIs in a quick and easy manner.

In this guide, we'll take a look at how to use the Node.js SDK.

Installation

To get started, install alloy-node using npm as seen below:

npm install alloy-node --save

Or using yarn:

yarn add alloy-node

Usage

The package needs to be configured with your account's API key, which is available in the Alloy Dashboard under settings. You must supply the API key with each instantiation of the module.

JavaScript
const apiClient = new Embedded("MY_API_KEY...);

Creating a User

Similar to Unified API, in order to make API calls to Alloy Embedded, you must first create a user. To create a user in Embedded, call the User.createUser() method as seen below. You must pass a unique username.

JavaScript
let bodyData = {
username: `sara456`,
};
let data = await apiClient.User.createUser(body);

Once you've created a user, you'll need to identify that user each time you make a call that requires a userId. Fortunately, the identify() method exists for this purpose.

Pass a userId to the identify() method as seen below:

JavaScript
await apiClient.identify("YOUR_USER_ID");

Obtain a workflowId

Before you can make API calls to Alloy Embedded, you will need to install a workflow using our frontend SDK. You can read more here.

Making requests to Alloy Embedded SDK

Once you have a workflowId, you can make requests

JavaScript
await apiClient.identify("YOUR_USER_ID");
let data = await apiClient.Workflows.list();

This call will return all workflows relevant to the specified user.

Note that the userId is stored temporarily so as long as the library is instantiated. Therefore, you can make subsequent invocations without needing to invoke identify each time. To clear out the currently identified user, invoke the clear method as seen below.

JavaScript
await apiClient.identify("YOUR_USER_ID");
await apiClient.clear();

SDK Methods


User Methods

The user methods make it easy to create, update, find, and delete users in Alloy Embedded.

Create a User

Verifies the functionality of creating a user through the createUser method. It sends a request to the server with a unique username, and upon success, the user ID is stored for subsequent tests.

JavaScript
let body = {
username: `user123`,
};
const apiClient = new Embedded("YOUR_API_KEY");

await apiClient.User.createUser(body);

Update a User

Ensures the ability to update user details using the updateUser method. It first identifies the user by setting the user ID and then sends a request to update the user's full name.

JavaScript
const apiClient = new Embedded("YOUR_API_KEY");
await apiClient.identify("userId");

let body = {
fullName: `user123`,
};

await apiClient.User.updateUser(body);

Get a User

Checks the functionality of retrieving user information with the getUser method. After identifying the user, it sends a request to the server to get the user's details.

JavaScript
const apiClient = new Embedded("YOUR_API_KEY");
await apiClient.identify("userId");

await apiClient.User.getUser();

List All Users

Verifies the ability to retrieve a list of all users, using the listUsers method after identifying the user. The server responds with a list of users, and the test ensures the expected properties are present.

JavaScript
const apiClient = new Embedded("YOUR_API_KEY");
await apiClient.identify("userId");

await apiClient.User.listUsers();

Batch Create Users

Validates the batch creation of users through the createBatchUsers method. After identifying the user, it sends a request to the server with a batch of user data and expects a success message in response.

JavaScript
const apiClient = new Embedded("YOUR_API_KEY");
await apiClient.identify("userId");

let batchData = {
users: [
{ username: `user123`, fullName: "Joe Smoe" },
{ username: `user123` },
{ username: `user123`, fullName: "Jane Doe" },
],
};

await apiClient.User.createBatchUsers(batchData);

Delete a User

Verifies the functionality of deleting a user using the deleteUser method. After identifying the user, it sends a request to the server to delete the user account.

JavaScript
const apiClient = new Embedded("YOUR_API_KEY");
await apiClient.identify("userId");

await apiClient.User.deleteUser();

Workflow Methods

List Workflows

Lists all workflows associated with the user.

JavaScript
let data = await apiClient.Workflows.list();

List Workflow Versions

Lists all versions of a specific workflow.

JavaScript
let data = await apiClient.Workflows.listVersions(workflowId);

Get Workflow Details

Gets details about a specific workflow.

JavaScript
let data = await apiClient.Workflows.get(workflowId);

Deactivate All Workflows

Deactivates all workflows associated with the user.

JavaScript
let data = await apiClient.Workflows.deactivateAll();

Activate Workflow

Activates a specific workflow.

JavaScript
let data = await apiClient.Workflows.activate(workflowId);

Deactivate Workflow

Deactivates a specific workflow.

JavaScript
let data = await apiClient.Workflows.deactivate(workflowId);

Upgrade Workflow

Upgrades a specific workflow to the latest version.

JavaScript
let data = await apiClient.Workflows.upgrade(workflowId);

Delete Workflow

Deletes a specific workflow.

JavaScript
let data = await apiClient.Workflows.delete(workflowId);

Tokens Methods

Get User Token

Generate a short lived user token (JSON Web Token) to pass to your fronent. This method is required in order to properly render the Alloy Modal on your frontend.

JavaScript
const apiClient = new Tokens("YOUR_API_KEY");
await apiClient.identify(userId);
let data = await apiClient.get();

Credentials Methods

Create Credential

Creates a new user credential.

JavaScript
const apiClient = new Embedded("YOUR_API_KEY");
await apiClient.identify(userId);
let credential = {
credential: {
type: "wooCommerce",
data: {
consumerKey: "XXX",
consumerSecret: "XXX",
url: "XXX",
},
},
};
let data = await apiClient.Credentials.create(credential);

List User Credentials

Lists all credentials associated with the user.

JavaScript
const apiClient = new Embedded("YOUR_API_KEY");
await apiClient.identify(userId);
let data = await apiClient.Credentials.listUserCredentials();

Get Metadata

Retrieves metadata for user credentials.

JavaScript
const apiClient = new Embedded("YOUR_API_KEY");
await apiClient.identify(userId);
let data = await apiClient.Credentials.getMetadata();

Delete Credential

Deletes a specific user credential.

JavaScript
const apiClient = new Embedded("YOUR_API_KEY");
await apiClient.identify(userId);
let data = await apiClient.Credentials.delete(credentialId);

Generates an OAuth link for a specific app and integration.

JavaScript
const apiClient = new Embedded("YOUR_API_KEY");
await apiClient.identify(userId);
let data = await apiClient.Credentials.generateOauthLink(
"shopify",
"integrationId"
);

Logs Methods

Get Workflow Errors

Retrieve errors associated with a specific workflow.

JavaScript
const apiClient = new Logs("YOUR_API_KEY");
await apiClient.identify(userId);
let data = await apiClient.getWorkflowErrors();

Get Workflow Logs

Retrieve logs associated with a specific workflow.

JavaScript
const apiClient = new Logs("YOUR_API_KEY");
await apiClient.identify(userId);
let data = await apiClient.getWorkflowLogs();

Rerun Workflow Execution

Rerun a specific workflow execution.

JavaScript
const apiClient = new Logs("YOUR_API_KEY");
await apiClient.identify(userId);
let data = await apiClient.rerunWorkflowExecution();

Compliance Methods

Delete User Logs

Delete user logs for compliance purposes. Can be used in conjunction with a GDPR or CCPA request.

JavaScript
const apiClient = new Compliance("YOUR_API_KEY");
await apiClient.identify(userId);
let data = await apiClient.deleteUserLogs();

Generate Installation URL

Generate an external installation URL for a specific integration. This method is used for Embedded Link.

JavaScript
const apiClient = new Link("YOUR_API_KEY");
await apiClient.identify(userId);
let data = await apiClient.generate(integrationId);

Note: Make sure to create a user and list integrations before calling the generate method to ensure a valid userId and integrationId.

Integration Methods

List Integrations

Retrieves a list of integrations associated with the user.

JavaScript
const apiClient = new Integration("YOUR_API_KEY");
let data = await apiClient.listIntegrations();

Get Integration

Retrieves details about a specific integration.

JavaScript
const apiClient = new Integration("YOUR_API_KEY");
let integrationId = "your_integration_id"; // Replace with the actual integration ID
let data = await apiClient.getIntegration(integrationId);

Events Methods

List Events

Lists all events associated with the user.

JavaScript
const apiClient = new Embedded("YOUR_API_KEY");
await apiClient.identify(userId);
let data = await apiClient.Events.list();

Run Event

Runs a specific event with optional data.

JavaScript
const apiClient = new Embedded("YOUR_API_KEY");
await apiClient.identify(userId);
let eventName = "Get Customers";
let bodyData = { name: "Gregg" };
let data = await apiClient.Events.run(eventName, bodyData);

Apps Methods

Get Apps

Retrieves a list of available apps.

JavaScript
const apiClient = new App("YOUR_API_KEY");
let data = await apiClient.getApps();

Analytics Methods

Get Workflow Analytics

Retrieves analytics data for the specified workflow, based on the identified user.

JavaScript
const apiClient = new Analytics(apiKey);
await apiClient.identify(userId);
let data = await apiClient.get(workflowId);