Salesforce - Create Record
↩ Part of the Salesforce integration.
Description
Section titled “Description”Creates a record of any sObject (POST /sobjects/{sobject}). You name the object, pass its fields as JSON, and the node returns the id Salesforce assigned.
It is the natural next step after a form, a webhook or an order: turning an incoming request into a Lead, an Account or a Case.
Configuration
Section titled “Configuration”| Field | Type | Required | Description |
|---|---|---|---|
credentials_id | credentials | Yes | Salesforce credential |
sobject | text | Yes | API name of the object: Account, Contact, Lead, Opportunity, Case, MyObject__c… |
fields | json | Yes | Record fields, e.g. {"Name":"ACME"} |
Both sobject and fields accept dynamic variables: the fields string is resolved as text before being parsed as JSON, so {"Email":"{{data.email}}"} is valid.
Credentials
Section titled “Credentials”This module requires a Salesforce credential:
| Field | Description |
|---|---|
login_url | https://login.salesforce.com or https://test.salesforce.com for a sandbox |
client_id / client_secret | Consumer Key and Secret of the Connected App |
username | Salesforce user |
password | Password plus the security token, concatenated |
Output
Section titled “Output”data is a small object with the new id:
{ "id": "00Q5g00000AbCdEFGH", "success": true}Along with it, _meta:
{ "moduleVersion": "1.0.0", "success": true, "id": "00Q5g00000AbCdEFGH", "totalMs": 380 }The node does not return the full record. If you need the stored values (formula fields, auto-numbers, defaults), read it back with Get record.
Usage Example
Section titled “Usage Example”Lead from a form
Section titled “Lead from a form”{ "credentials_id": "salesforce_prod", "sobject": "Lead", "fields": { "LastName": "{{data.lastName}}", "FirstName": "{{data.firstName}}", "Company": "{{data.company}}", "Email": "{{data.email}}", "LeadSource": "Web" }}Account
Section titled “Account”{ "credentials_id": "salesforce_prod", "sobject": "Account", "fields": { "Name": "ACME S.A.", "Phone": "+34600111222", "Website": "https://acme.com", "Industry": "Manufacturing" }}Opportunity linked to an account
Section titled “Opportunity linked to an account”{ "credentials_id": "salesforce_prod", "sobject": "Opportunity", "fields": { "Name": "ACME - annual renewal", "AccountId": "{{data.accountId}}", "StageName": "Prospecting", "CloseDate": "2026-12-31", "Amount": 12000 }}Support case
Section titled “Support case”{ "credentials_id": "salesforce_prod", "sobject": "Case", "fields": { "Subject": "{{data.subject}}", "Description": "{{data.message}}", "Origin": "Web", "ContactId": "{{data.contactId}}" }}- Field keys are API names, case-sensitive, and custom fields end in
__c.LastNameworks,lastnamedoes not. - Relationships are set by id:
AccountId,ContactId,OwnerId. To link by an external key instead, use Upsert record. - Dates go as
YYYY-MM-DD, date-times as ISO 8601 (2026-12-31T10:00:00Z). - A
400withREQUIRED_FIELD_MISSINGmeans a mandatory field is absent (LastNameandCompanyon a Lead,Nameon an Account,StageNameandCloseDateon an Opportunity). Validation rules and duplicate rules surface the same way. These errors are not retried — fix the data and run again. - If
fieldsis not a JSON object (an array or invalid JSON), the node stops before calling Salesforce.
Related Nodes
Section titled “Related Nodes”- Salesforce: Get record — read back the record you just created.
- Salesforce: Upsert record — create or update in a single call, without duplicates.
- Salesforce: SOQL query — check whether the record already exists first.