Cut
Splits a string at the first occurrence of a separator into "before" and "after" parts.
Common Properties
- Name - The custom name of the node.
- Color - The custom color of the node.
- Delay Before (sec) - Waits in seconds before executing the node.
- Delay After (sec) - Waits in seconds after executing node.
- Continue On Error - Automation will continue regardless of any error. The default value is false.
info
If the ContinueOnError property is true, no error is caught when the project is executed, even if a Catch node is used.
Inputs
- String - The string to cut/split.
- Separator - The separator to cut at (first occurrence only).
Options
This node does not have configurable options.
Output
- Result - An object containing:
before- The part of the string before the separatorafter- The part of the string after the separator
If separator is not found, before contains the entire string and after is empty.
How It Works
The Cut node finds the first occurrence of the separator and splits the string into two parts:
- Everything before the separator →
result.before - Everything after the separator →
result.after - The separator itself is not included in either part
- If separator not found: entire string goes to
before,afteris empty
Usage Examples
Example 1: Split Email Address
- String:
"user@example.com" - Separator:
"@" - Result:
before:"user"after:"example.com"
Example 2: Extract Domain
- String:
"https://example.com/path" - Separator:
"//" - Result:
before:"https:"after:"example.com/path"
Example 3: Parse Key-Value Pair
- String:
"name=John" - Separator:
"=" - Result:
before:"name"after:"John"
Example 4: Separator Not Found
- String:
"Hello World" - Separator:
"@" - Result:
before:"Hello World"after:""(empty)
Example 5: Multiple Separators (Uses First)
- String:
"one,two,three" - Separator:
"," - Result:
before:"one"after:"two,three"
Tips
- Only splits at the first occurrence of separator
- The separator itself is removed from the result
- Perfect for simple key-value parsing
- Use Split node if you need to split at all occurrences
- Access results using
${msg.result.before}and${msg.result.after} - If separator not found, check if
afteris empty
Common Errors and Solutions
Error: Can't access before/after values
- Cause: Incorrect variable reference
- Solution: Use
${msg.result.before}and${msg.result.after}
Error: Need to split at all occurrences, not just first
- Solution: Use Split node instead, which returns an array of all parts
Practical RPA Examples
Example: Parse Email
String: "john.doe@company.com"
Separator: "@"
Result:
before: "john.doe" (username)
after: "company.com" (domain)
Example: Extract File Extension
String: "document.pdf"
Separator: "."
Result:
before: "document" (filename)
after: "pdf" (extension)
note
For files with multiple dots (e.g., "file.tar.gz"), this returns first split only. Consider using LastIndex for accurate extension extraction.
Example: Parse URL Protocol
String: "https://api.example.com"
Separator: "://"
Result:
before: "https" (protocol)
after: "api.example.com" (host and path)
Example: Split First Name and Last Name
String: "John Doe Smith"
Separator: " "
Result:
before: "John" (first word)
after: "Doe Smith" (rest)
Example: Parse Log Entry
String: "[ERROR] Connection timeout occurred"
Separator: "] "
Result:
before: "[ERROR" (level)
after: "Connection timeout occurred" (message)
Example: Extract Subdomain
String: "api.staging.example.com"
Separator: "."
Result:
before: "api" (first part)
after: "staging.example.com" (rest)
Working with the Result Object
Access Before Part
Variable: ${msg.result.before}
Use in next node
Access After Part
Variable: ${msg.result.after}
Use in next node
Check if Separator Was Found
If ${msg.result.after} is empty:
Separator was not found
Else:
Separator was found and string was split
Comparison with Other Nodes
| Node | Use Case |
|---|---|
| Cut | Split at first occurrence into 2 parts |
| Split | Split at all occurrences into array |
| Index | Find position without splitting |
| Replace | Replace separator, don't split |
Pattern: Cascading Cuts
Parse complex strings with multiple separators:
Step 1: Cut by "://" → protocol and rest
Step 2: Cut rest by "/" → domain and path
Step 3: Cut domain by ":" → host and port
Example:
"https://example.com:8080/api/users"
Cut 1: "https" | "example.com:8080/api/users"
Cut 2: "example.com:8080" | "api/users"
Cut 3: "example.com" | "8080"