v0.5.0
0.5.0 (2026-06-03)
Bug Fixes
- add missing locale labels and translate Connection field (e3eefc3)
- use fresh token from jsforce connection for streaming (bf197e2)
Features
- add channel picklist to streaming node (7d13eff)
- add Open Org button to connection config node (1bbf8b0)
- improve bulk node with streaming support and single result output (ed0bb7c)
- split Apex into caller and code deployer nodes (0da89d9)
Breaking Changes
Apex nodes replaced
The salesforce-apex node has been replaced by two purpose-specific nodes:
- salesforce-apex-invocation — Calls existing Apex REST endpoints or Invocable Actions. Select the type (REST/Invocable), pick an endpoint from a dropdown that queries your org, and choose the HTTP method.
- salesforce-apex-code — Deploys and executes custom inline Apex code. Select the type (Invocable/REST), enter a class name, choose the HTTP method for REST, configure the URL mapping, and write your Apex method body in the built-in code editor.
Migration: Delete existing salesforce-apex nodes from your flows and replace them with salesforce-apex-invocation (for calling existing endpoints) or salesforce-apex-code (for deploying custom code). Re-wire any connections.
Bulk node restructured
The salesforce-bulk node has been significantly reworked:
- Port layout changed: The node now has a single output port. Job Created and Job Complete output ports have been removed. Job lifecycle events (created, uploading, processing, complete) are communicated via
this.status()— enable the Status Port toggle to react to them downstream. - Input format: Accepts
Record[]arrays, CSV strings, or Node.jsReadablestreams for ingest operations. SOQL queries are now configured via a dedicated TypedInput field (str/msg/jsonata) instead ofmsg.payload. - Output format changed: For ingest operations, the output
msg.payloadis now a single results object{ successfulResults, failedResults, unprocessedRecords }instead of streaming individual records. - New operations:
hardDeleteis now supported alongside insert, update, upsert, delete, and query. emitJobCreatedtoggle removed: Job Created is no longer a separate output port.
Migration: Delete existing bulk nodes from your flows and re-add them. Update downstream nodes to read from msg.payload.successfulResults and msg.payload.failedResults instead of processing individual record messages. If you relied on the Job Created or Job Complete output ports, use the Status Port instead.
Config property renamed
The type config property has been renamed to apexType on both Apex nodes to avoid conflicts with Node-RED's reserved type property. This affects saved flows — nodes using the old property name will need to be reconfigured.