A screen recording can show a whole job without explaining it. Someone opens an inbox, checks a sender, copies a value into a customer record, compares it with a spreadsheet, sends a summary, and moves on.
That work is visible, but automation still has to survive a harder test: can the system rebuild the job without dropping a step, wiring the wrong action, or importing something that looks right and fails later?
I built the n8n side of the screen-analysis project around that problem. The generator does not treat the final file as a bag of text. It turns discovered automations into N8NWorkflow, N8NNode, and connection objects, then emits n8n-compatible JavaScript Object Notation (JSON). That adds code ceremony, but it catches a class of mistakes that string assembly invites.
1. Keep the platform vocabulary narrow
Every emitted node type comes from NodeType in n8n_workflow_generator.py. The enumeration covers triggers, language model nodes, and application integrations the generator knows how to create. When the project needs another n8n node, I add it there before generation can use it.






