salesforce.salesforce
Home > @runlightyear/salesforce > Salesforce
Salesforce class
Salesforce connector
Signature:declare class Salesforce extends RestConnector
Extends:
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
Constructor | Modifiers | Description |
---|---|---|
(constructor)(props) | Constructs a new instance of the Salesforce class |
Properties
Property | Modifiers | Type | Description |
---|---|---|---|
authType | static | AuthType | |
domain | string | ||
OAuth | static | typeof SalesforceOAuth |