Account onboarding from history
Stand up a new customer account from a folder of historical filings. Two and a half hours of setup down to eighteen minutes.
Read the caseThe upstream system offers no API, no webhook, and no bulk-import mechanism. Playwright drives the browser through a stable five-step UI flow; the LLM is reserved for diagnosing the 5% of failures from captured artifacts.
The upstream third-party system supports exactly one interface: its web UI behind a login form. The team was stepping through a five-step flow per account, dozens of times per month. Each session required staying focused on the browser for 15 to 20 minutes — and missing a branch condition on step 2 meant starting over from the beginning.
Six steps end-to-end. Five are deterministic Playwright; the sixth is the recovery path with artifact capture for the 5% the LLM diagnoses afterward.
The upstream UI is stable. Every form field has a known selector, every page transition has a predictable trigger, and the branch condition is boolean. A scripted Playwright flow runs in 90 seconds and follows the same path every time. An LLM-driven browser agent would be slower, less predictable, and more expensive for a flow where every step is already known. The LLM is reserved for the 5% of failures that need diagnosis from captured screenshots and HTML.
Step 5 (account number extraction) is the lowest-confidence step — it depends on a shared transmissions page that interleaves submissions across all users.
Each vendor handles what it's best at. Aisyst owns the orchestration layer in between.
Third-party logos are trademarks of their respective owners and appear here only to indicate integration.
The scripted path is fast, predictable, and cheap. The LLM reads captured screenshots and HTML to tell you what went wrong — not to drive the browser on every request.
If step 3 retries climb from 3% to 15%, the upstream system added a new validation. If step 5 retries climb, the transmissions page layout changed. The aggregate retry rate won't tell you which step broke; the per-step breakdown will. The fix is upstream: update the step's selector or polling logic — not the retry logic.