Create a Salesforce Function

This Quick Start provides code samples in Node.js with JavaScript. For examples using Java and TypeScript, see Explore Solutions and Sample Code.

You're ready to create your first function. Run this command in the project root directory:

  • -n the name of the function; must start with a letter and contain only lowercase letters and numbers
  • -l the programming language for your function; javascript, typescript, or java

In VS Code from the Command Palette, choose SFDX: Create Function. Enter a function name. For this tutorial use myfunction and select the JavaScript language.

Your project now contains the basic scaffolding for your function, including supporting metadata and default boilerplate code. The project generation process creates a directory myfunction with default configuration files:

  • A package.json file that contains information about dependencies
  • A project.toml file that contains function metadata information. See Developer Guide: Function Metadata TOML Files for more details.
  • index.js that contains boilerplate code for your function. This file is your primary source code file. It's preconfigured with an entry point method that has parameters used to pass payload data to the function and to communicate with the invoking org. The default function in index.js logs the received payload, issues a query for Account data, and logs the query results.

The function parameters are:

eventAn Event object that describes the triggering event and contains event data. This parameter is also sometimes called the 'payload.'
contextSalesforce org context for reading from and writing to Salesforce. The context is pre-configured to be authenticated to the invoking org.
loggerSalesforce logger for the function.

Edit index.js and update your function to match the following example. This function uses the Salesforce Functions SDK for Node.js to insert a new Account record in your scratch org. It then queries all Account records with the given fields in the org. The new Account's name is populated from the name field of the payload.