App Push
Pushes specified data to a running instance.
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.
if ContinueOnError property is true, no error is caught when the project is executed even if Catch node is used.
Input
- Data - Data to be pushed to the instance. The response is a custom JSON object specific to the application.
How It Works
The App Push node sends real-time updates to the Robomotion App interface without waiting for a response. Unlike App Out which sends a final response, App Push can be used multiple times to send intermediate updates during automation execution. The execution follows these steps:
- Delay Before - Waits for the specified delay before execution (if configured)
- Context Validation - Validates the application context:
- Checks for
$AppID$global variable - Checks for
$AppUserID$global variable - Retrieves the session ID from the message
- Checks for
- Data Processing - Retrieves and serializes the data to JSON format
- Message Creation - Creates a push message with:
- New unique message ID
- Application ID, User ID, Session ID
- Robot ID and version
- Encrypted payload
- Push Transmission - Sends the update through the websocket connection without waiting for acknowledgment
- Delay After - Waits for the specified delay after execution (if configured)
The pushed data appears in the Robomotion Apps UI in real-time.
Requirements
- Robomotion Deskbot - This node only works with Robomotion Deskbot
- Application Context - Must be running within a Robomotion App instance
- App In Node - Requires an App In node earlier in the flow to establish context
- Network Connection - Active websocket connection to Robomotion service
Error Handling
| Error Code | Description | Common Cause |
|---|---|---|
Core.Application.AppPush.ErrOnCreate | Configuration parse error | Invalid node configuration or corrupted flow |
Core.Application.AppPush.ErrOnConnect | Connection error | Failed to connect to application service |
Core.Application.AppPush.ErrOnMessage | Message parse error | Invalid input message format |
Core.Application.AppOut.InvalidAppID | Application ID not found | Running outside of application context |
Core.Application.AppPush.InvalidUID | User ID not found | Global variable $AppUserID$ not set |
Core.Application.AppPush.SessionNotFound | Session ID not found | Session expired or invalid |
Core.Application.AppPush.InvalidBody | Invalid body data | Data cannot be retrieved from input variable |
Core.Application.AppPush.PayloadErr | Payload serialization error | Data cannot be converted to JSON |
Core.Application.AppPush.ErrWrite | Write error | Failed to send push through websocket |
Usage Examples
Example 1: Progress Updates
Push progress updates during data processing:
Data: {
"type": "progress",
"current": {{currentIndex}},
"total": {{totalCount}},
"message": "Processing record {{currentIndex}}"
}
The UI can display a progress bar based on these updates.
Example 2: Interim Results
Push interim results as they're found:
Data: {
"type": "result",
"item": {{foundItem}},
"timestamp": {{now}}
}
Allows displaying results to the user before the automation completes.
Example 3: Status Updates
Push status changes during workflow execution:
Data: {
"type": "status",
"status": "downloading",
"description": "Downloading files from server"
}
Keeps users informed about what the automation is currently doing.
Example 4: Live Data Feed
Push real-time data as it's extracted:
Data: {
"type": "data",
"record": {{extractedRecord}},
"count": {{recordCount}}
}
Useful for displaying live data extraction results.
Usage Notes
- Multiple Pushes - Can be used multiple times in a single flow execution
- No Response - Does not wait for or receive a response from the UI
- JSON Format - Data must be serializable to JSON
- Encryption - All pushed data is automatically encrypted
- UI Updates - The receiving app UI must handle pushed messages appropriately
- Order Guaranteed - Messages are sent in the order they're pushed
- Non-Blocking - Does not block flow execution while sending
Tips
- Type Field - Include a "type" field to help the UI distinguish different kinds of updates
- Structured Data - Use consistent JSON structure for easier UI handling
- Progress Tracking - Push progress updates for long-running operations
- Error Updates - Push error or warning messages without stopping the flow
- Rate Limiting - Don't push too frequently; combine updates when possible
- Meaningful Updates - Only push updates that provide value to the user
- Testing - Ensure your app UI properly handles pushed messages
- Combine with App Log - Use App Log for simple text messages, App Push for structured data
Related Nodes
- App Out - For sending the final response
- App Log - For sending simple log messages
- App In - Required to establish the application context
- App Request - For sending requests and waiting for responses