Skip to main content

salesforce.salesforce

Home > @runlightyear/salesforce > Salesforce

Salesforce class

Salesforce connector

Signature:
declare class Salesforce extends RestConnector 

Extends:

RestConnector

Example 1

Install

npm install @runlightyear/salesforce

Example 2

Import

import { Salesforce } from "@runlightyear/salesforce";

Example 3

Use in an action

defineAction({
name: "salesforce-example",
title: "Salesforce Example",
apps: ["salesforce"],
run: async ({ auths }) => {
const salesforce = new Salesforce({
auth: auths.salesforce,
domain: "https://lightyear2-dev-ed.develop.my.salesforce.com",
});
});

Example 4

Get a list of accounts

const response = await salesforce.query({
q: `SELECT Name FROM Account`,
});

const accounts = response.data.records;

Example 5

Page through a long list of accounts

let response = await salesforce.query({ q: `SELECT Name from Account` });

console.log("First batch of accounts", response.data.records);

while (!response.data.done) {
response = await salesforce.query({
nextRecordsUrl: response.data.nextRecordsUrl,
});

console.log("Next batch of accounts", response.data.records);
}

Example 6

Create an account

const response = await salesforce.createRecord({
objectType: "Account",
fieldValues: { Name: "A New Account" },
});

console.log("Created new account", response.data.id);

Example 7

Get the list of field names on Contacts

const response = await salesforce.describeObject({ objectType: "Contact" });

console.log(
"fields:",
response.data.fields.map((field) => field.name)
);

Example 8

Full example: Poll for new leads once a minute

import { defineAction, setVariable } from "@runlightyear/lightyear";
import { Salesforce } from "@runlightyear/salesforce";

defineAction({
name: "get-new-leads",
title: "Get New Leads",
apps: ["salesforce"],
variables: ["lastCreatedDate"],
trigger: {
pollingFrequency: 1,
},
run: async ({ auths, variables }) => {
const salesforce = new Salesforce({
auth: auths.salesforce,
domain: "<your salesforce domain name>",
});

const response = await salesforce.query({
q: `SELECT Name, CreatedDate from Lead WHERE CreatedDate > ${
variables.lastCreatedDate || "YESTERDAY"
} ORDER BY CreatedDate`,
});

const newLeads = response.data.records;

if (newLeads.length > 0) {
console.log(
"New leads",
newLeads.map((lead) => lead.name)
);

await setVariable(
"lastCreatedDate",
String(newLeads[newLeads.length - 1].createdDate)
);
}
},
});

Constructors

ConstructorModifiersDescription
(constructor)(props)Constructs a new instance of the Salesforce class

Properties

PropertyModifiersTypeDescription
authTypestaticAuthType
domainstring
OAuthstatictypeof SalesforceOAuth