Portal Community

bulk/create

Insert a large batch of records into any Salesforce SObject type using the Salesforce Bulk API.

Bulk API vs REST API: The Bulk API is designed for 10,000+ records. It processes data asynchronously in Salesforce and is much more efficient for large data loads. For small batches under 200 records where per-record error detail matters, prefer individual create operations instead.

When to Use

Configuration

Connection

FieldTypeRequiredDescription
InstanceUrlstringrequiredSalesforce org URL.
AccessTokenstringrequiredValid OAuth2 access token.

Operation Fields

FieldTypeRequiredDescription
SObjectTypestringrequiredSalesforce object API name, e.g. Lead, Contact, Account, or a custom object like Product__c.
RecordsarrayrequiredArray of objects to insert. Each object is a map of field name to value. All fields must match the SObject's field API names.

Sample Configuration

{
  "Resource": "bulk",
  "Operation": "create",
  "InstanceUrl": "https://myorg.my.salesforce.com",
  "AccessToken": "{{credentials.salesforce.accessToken}}",
  "SObjectType": "Lead",
  "Records": [
    { "FirstName": "Alice", "LastName": "Chen", "Company": "Acme Corp", "Email": "alice@acme.com", "LeadSource": "Trade Show" },
    { "FirstName": "Bob", "LastName": "Park", "Company": "Beta Ltd", "Email": "bob@beta.com", "LeadSource": "Trade Show" }
  ]
}

Validation Errors

Error CodeCondition
CFG_MISSING_INSTANCEInstanceUrl is missing.
CFG_MISSING_TOKENAccessToken is missing.
VAL_MISSING_FIELDSObjectType or Records is missing.
UNEXPECTED_ERRORUnexpected exception during Bulk API job creation or processing.

Output

Success Port

FieldTypeDescription
jobIdstringSalesforce Bulk API Job ID.
statestringFinal job state: JobComplete.
recordsProcessedintNumber of records successfully inserted.
recordsFailedintNumber of records that failed to insert.
resultsarrayPer-record results array with id, success, and errors for each record.
resourcestringAlways bulk.
operationstringAlways create.

Error Port

FieldTypeDescription
errorCodestringMachine-readable error code.
messagestringError description.

Sample Output

{
  "jobId": "7505g000003XyzBAAQ",
  "state": "JobComplete",
  "recordsProcessed": 49985,
  "recordsFailed": 15,
  "results": [
    { "id": "00Q5g0000XyzEAE", "success": true, "errors": [] },
    { "id": null, "success": false, "errors": [{ "message": "DUPLICATE_VALUE: duplicate value found" }] }
  ],
  "resource": "bulk",
  "operation": "create"
}

Expression Reference

ExpressionDescription
{{nodes.BulkCreate.jobId}}Bulk API Job ID.
{{nodes.BulkCreate.recordsProcessed}}Count of successfully inserted records.
{{nodes.BulkCreate.recordsFailed}}Count of failed records.
{{nodes.BulkCreate.results}}Per-record result array.

Node Policies & GuardRails

PolicyDetail
Batch size guidanceBulk API is optimal for 10,000+ records. For fewer than 200 records, individual REST API operations provide better per-record error detail.
Partial failure handlingBulk jobs can partially succeed. Always check recordsFailed and iterate results to log failed records for retry or investigation.
Field API namesAll field keys in each record must use the Salesforce API field name (case-sensitive), not the label.
Credential storageStore AccessToken in BizFirst Credentials Manager.
Error port wiringAlways wire the error port. Job creation failures route here.
Sandbox testingAlways test bulk loads in sandbox before running against production org.

Examples

Import Trade Show Leads from CSV

{
  "SObjectType": "Lead",
  "Records": "{{nodes.ParseCSV.rows}}"
  // Each row: { "FirstName": ..., "LastName": ..., "Company": ..., "Email": ..., "LeadSource": "Trade Show" }
}

Migrate Contacts from Legacy CRM

{
  "SObjectType": "Contact",
  "Records": "{{nodes.TransformLegacyData.records}}"
  // Transformed to SF Contact field structure
}

Load Annual Renewals

{
  "SObjectType": "Opportunity",
  "Records": "{{nodes.GenerateRenewals.opportunities}}"
  // Each: { "Name": ..., "AccountId": ..., "CloseDate": ..., "StageName": "Needs Analysis", "Type": "Renewal" }
}