I have recently started exploring NocoBase and am running into an issue with variable resolution inside the Workflow engine.
I created a workflow triggered by a Custom action event (a button click on the frontend). The first node is an HTTP Request designed to pull data from an external REST API.
To keep things secure, I configured a global URL variable (BASE_URL) and a Token variable (API_TOKEN) inside NocoBase.
The Issue:
When configuring the HTTP Request node using these blue variable tags, the workflow fails during execution because NocoBase does not replace the variable placeholders with their actual string values.
When opening the Test Run panel inside the node configuration drawer, the modal explicitly reads “No variable” in the “Replace variables” section, completely failing to detect that variable tokens are present in the input fields.
If I completely remove the variable blocks and hardcode the raw static text (the literal URL and token strings) directly into the node configuration fields, the workflow executes perfectly without any issues.
Is there a specific configuration step or scope setting required for the workflow engine to natively access and resolve global variables/secrets, or is this a known limitation with the HTTP Request node variable parser?
Any insights or workarounds would be greatly appreciated!
Hopefully, the community or the dev team can point out if this is a scoping bug or if workflows require variables to be declared in a specific environment file instead of the UI manager. Let me know when you’ve posted it!
Please reproduce this problem in the demo environment.
https://a_8hwne7u84ho.v13.demo.nocobase.com/admin/
(Account: admin@nocobase.com, Password: admin123)
This seems like a classic problem not with the variables themselves, but with how the workflow engine “sees” them at runtime.
NocoBase has an important point: global variables/secrets and variables accessible within the Workflow runtime context aren’t always in the same resolution layer. Therefore, a situation where the UI displays blue tokens but the execution engine doesn’t insert them usually means that the HTTP Request node is running in a context where the variable resolver is simply not enabled.