I’m running a self‑hosted Retool instance (v3.75.9) and I’d like to automate loading and interacting with a Retool app (or any URL) in a truly server‑side, headless context—not opening anything in the user’s browser.
My high‑level goal is:
From a Workflow JS step, spin up a headless browser or “tab” on the server
Navigate to a given Retool app URL
Execute automated interactions (e.g. clicks, form fills, exports)
Close the browser—all without any UI on the client side
Before I go further down the Puppeteer path (where I ran into executablePath issues), I wanted to check:
Is this pattern—opening a headless browser from within a Retool workflow—officially supported?
If yes, which Workflow contexts support it? (Server‑side JS, Shell command resource, custom external service, etc.)
Are there built‑in Retool features or best practices for headless automation, or is Puppeteer/Playwright via a separate service the recommended approach?
Any security or sandboxing caveats I should watch out for on self‑hosted?
Hi @b7av3.T7av3l3r, that's an interesting question! I recreated the bug with the executablePath using a server-side JS block and it seems to be a common issue with puppeteer regardless of doing it on Retool. v3.75 may not have access to some libraries that would help with the implementation. Here is something I found about that bug:
Alternatively, If you're just interested in using puppeteer for some kind of WebDriver testing, and since you mentioned Playwright, I would recommend checking out this resource:
To your last question, I would take the same precautions as you normally would.
Feel free to post in this thread if you want to keep troubleshooting with puppeteer or if you use Playwright and have any issues in implementing it.