lead/create
Create a new Lead record in Salesforce CRM.
When to Use
- Create a lead from a website contact form submission via a webhook trigger.
- Import leads from a marketing campaign list into Salesforce for follow-up.
- Auto-create a lead when a business card is scanned by a mobile app.
- Sync inbound leads from a LinkedIn Lead Gen Form into Salesforce immediately.
- Create a lead record when a user registers for a webinar or event.
Configuration
Connection
| Field | Type | Required | Description |
InstanceUrl | string | required | Salesforce org URL, e.g. https://myorg.my.salesforce.com |
AccessToken | string | required | Valid OAuth2 access token. Store in BizFirst Credentials Manager. |
Operation Fields
| Field | Type | Required | Description |
LastName | string | required* | Lead's last name. At least one of LastName or Company must be provided. |
Company | string | required* | Company name. At least one of LastName or Company must be provided. |
FirstName | string | optional | Lead's first name. |
Email | string | optional | Lead's email address. |
Phone | string | optional | Primary phone number. |
Title | string | optional | Job title of the lead. |
Street | string | optional | Street address. |
City | string | optional | City. |
State | string | optional | State or province. |
PostalCode | string | optional | Postal or ZIP code. |
Country | string | optional | Country. |
Website | string | optional | Lead's company website URL. |
LeadSource | string | optional | Source of the lead, e.g. Web, Phone Inquiry, Partner Referral. |
Status | string | optional | Lead status picklist value, e.g. Open - Not Contacted. |
Rating | string | optional | Lead rating, e.g. Hot, Warm, Cold. |
Industry | string | optional | Industry classification. |
NumberOfEmployees | int | optional | Number of employees at the lead's company. |
AnnualRevenue | decimal | optional | Estimated annual revenue of the company. |
Description | string | optional | Free-text description or notes about the lead. |
Sample Configuration
{
"Resource": "lead",
"Operation": "create",
"InstanceUrl": "https://myorg.my.salesforce.com",
"AccessToken": "{{credentials.salesforce.accessToken}}",
"FirstName": "Jane",
"LastName": "Doe",
"Company": "Acme Corp",
"Email": "jane.doe@acme.com",
"Phone": "+1-555-0100",
"Title": "VP of Engineering",
"LeadSource": "Web",
"Status": "Open - Not Contacted",
"Industry": "Technology",
"NumberOfEmployees": 500,
"Website": "https://acme.com",
"Description": "Inbound lead from product demo request form"
}
Validation Errors
| Error Code | Condition |
CFG_INVALID | Node settings could not be resolved. |
CFG_MISSING_INSTANCE | InstanceUrl is missing or empty. |
CFG_MISSING_TOKEN | AccessToken is missing or empty. |
VAL_MISSING_FIELD | Neither LastName nor Company was provided. |
UNEXPECTED_ERROR | Unexpected exception during execution. |
Output
Success Port
| Field | Type | Description |
leadId | string | The 18-character Salesforce ID of the newly created Lead. |
createdAt | string | ISO 8601 timestamp of when the lead was created. |
status | string | Always created on success. |
resource | string | Always lead. |
operation | string | Always create. |
Error Port
| Field | Type | Description |
errorCode | string | Machine-readable error code. |
message | string | Human-readable description of the error. |
resource | string | Always lead. |
operation | string | Always create. |
Sample Output
{
"leadId": "00Q5g000003aXyzEAE",
"createdAt": "2026-05-26T10:14:32.000Z",
"status": "created",
"resource": "lead",
"operation": "create"
}
Expression Reference
| Expression | Description |
{{nodes.CreateLead.leadId}} | The Salesforce Lead ID of the created lead. |
{{nodes.CreateLead.createdAt}} | Creation timestamp. |
{{nodes.CreateLead.status}} | Operation status (created). |
{{nodes.CreateLead.errorCode}} | Error code from the error port. |
{{nodes.CreateLead.message}} | Error message from the error port. |
Node Policies & GuardRails
| Policy | Detail |
| Credential storage | Store AccessToken in BizFirst Credentials Manager, not as plain text in configuration. |
| Token expiry | Access tokens expire. Configure automatic refresh via a Salesforce Connected App. |
| Duplicate prevention | Salesforce duplicate rules may block creation if the email or name matches an existing lead. Handle the error port to detect DUPLICATES_DETECTED responses. |
| Sandbox testing | Always test lead creation against a Salesforce sandbox before running in production. |
| Error port wiring | Always wire the error port. Org validation rules and permission sets can cause unexpected failures. |
| Field picklist values | LeadSource, Status, and Rating values must match picklist entries configured in the target org. |
Examples
Create Lead from Web Form
A webhook trigger fires when a visitor submits the contact form. Map form fields to the lead node and route the new leadId to a Slack notification node.
// Webhook payload
{ "firstName": "Jane", "lastName": "Doe", "email": "jane@acme.com", "company": "Acme" }
// Node config (expressions)
{
"FirstName": "{{trigger.firstName}}",
"LastName": "{{trigger.lastName}}",
"Email": "{{trigger.email}}",
"Company": "{{trigger.company}}",
"LeadSource": "Web",
"Status": "Open - Not Contacted"
}
Sync LinkedIn Lead Gen Form
A scheduled workflow polls the LinkedIn Lead Gen Forms API, then for each new submission calls lead/create with campaign metadata mapped to LeadSource and Description.
{
"FirstName": "{{item.firstName}}",
"LastName": "{{item.lastName}}",
"Email": "{{item.email}}",
"Company": "{{item.companyName}}",
"LeadSource": "Social Media",
"Description": "LinkedIn Lead Gen — Campaign: {{item.campaignName}}"
}
Business Card Scan Integration
A mobile scan app sends parsed card data via API. The workflow creates a lead and immediately assigns it to the scanning user's Salesforce queue.
{
"FirstName": "{{scan.first}}",
"LastName": "{{scan.last}}",
"Title": "{{scan.title}}",
"Company": "{{scan.company}}",
"Phone": "{{scan.phone}}",
"Email": "{{scan.email}}",
"LeadSource": "Other",
"Description": "Scanned by: {{scan.scannedByUserId}} at {{scan.eventName}}"
}