🔧 AI Nachrichten Major AI platforms go down in unprecedented simultaneous outage(03.09.2026 um 17:34 Uhr)
🔧 AI Nachrichten ChatGPT, Claude, and Grok Down? Users Report Widespread Outages(03.09.2026 um 19:14 Uhr)
🔧 AI Nachrichten OpenAI Launches GPT-6 Astra, Says We May Have Entered the AGI Era(03.09.2026 um 22:08 Uhr)
🔧 AI Nachrichten Claude Comes to CarPlay as Fifth Major AI Chatbot App(05.09.2026 um 05:31 Uhr)
🔧 AI Nachrichten OpenAI’s GPT-6 Astra Is AGI, Says NVIDIA CEO Jensen Huang(07.09.2026 um 06:31 Uhr)
🔧 AI Nachrichten Blame AI companies for Mac mini and Mac Studio shortage(31.08.2026 um 10:32 Uhr)
🔧 AI Nachrichten Major AI platforms go down in unprecedented simultaneous outage(03.09.2026 um 17:34 Uhr)
🔧 AI Nachrichten ChatGPT, Claude, and Grok Down? Users Report Widespread Outages(03.09.2026 um 19:14 Uhr)
🔧 AI Nachrichten OpenAI Launches GPT-6 Astra, Says We May Have Entered the AGI Era(03.09.2026 um 22:08 Uhr)
🔧 AI Nachrichten Claude Comes to CarPlay as Fifth Major AI Chatbot App(05.09.2026 um 05:31 Uhr)
🔧 AI Nachrichten OpenAI’s GPT-6 Astra Is AGI, Says NVIDIA CEO Jensen Huang(07.09.2026 um 06:31 Uhr)
🔧 AI Nachrichten Blame AI companies for Mac mini and Mac Studio shortage(31.08.2026 um 10:32 Uhr)

🔧 Programmierung 🕛 kürzlich 5 Min Lesezeit
0

I didn't write my n8n node's 323 operations. I scraped the docs and generated them.

↗ Quelle (dev.to)
🗣️ Stimme:
📑 Inhaltsübersicht

Last month my n8n community node for .

A

It covers 42 resources and 323 operations of the Holded API v2, plus a trigger node for 58 webhook events.



Here's the part that matters: I hand-wrote almost none of it. This is the story of shipping a huge API surface as a solo dev by treating the node as a compiler target instead of a codebase.





Why bother with a node for a Spanish ERP?



Spanish SMEs are migrating to n8n from Make and Zapier for a very unglamorous reason: per-operation pricing. The moment you automate invoicing properly — say, an ecommerce store pushing 1,000+ orders a month into accounting — a per-task bill stops making sense. Self-hosting also plays well with GDPR anxiety.



The blocker was that n8n had zero Holded connectivity. Everyone was gluing HTTP Request nodes to a quirky API. That's the gap.





The math that forbids hand-writing



Holded's API v2 is big: invoices, contacts, products, stock, CRM funnels, projects, payroll, remittances… When I mapped it, I got 591 endpoints across 42 resources.



An n8n node describes every operation declaratively: resource options, operation options, every parameter with its type, defaults, and displayOptions controlling when it appears in the UI. Written by hand, that's maybe 60–80 lines per operation. Times 323.



That's a ~25,000-line file I would have to maintain by hand every time Holded touches their API. No.





The pipeline: scrape → spec → generate



So the repo has a spec/ folder that most n8n nodes don't:




CODE
spec/
├── scrape-v2.py # scrapes the official API docs
├── v2-endpoints.json # 72,000 lines: every endpoint, param, type
└── gen-v2.py # 888 lines that write the node for me








  1. scrape-v2.py walks Holded's API reference and dumps every endpoint — path, method, params, body schema — into v2-endpoints.json (~72k lines of structured truth).


  2. gen-v2.py compiles that spec into V2Generated.ts: 22,000 lines of n8n property descriptors — every resource, operation, and field, with correct displayOptions wiring.

  3. A 173-line dispatcher routes (resource, operation) pairs to generic HTTP execution. The actual .node.ts shell is 355 lines.



The generated file opens with the only comment that matters:




CODE
// AUTO-GENERATED by spec/gen-v2.py from spec/v2-endpoints.json.
// Do not edit by hand — regenerate with `python3 spec/gen-v2.py`.






When Holded changes their API, I re-scrape, re-generate, diff, release. Maintenance went from "career" to "afternoon".






What codegen can't do (and what I still wrote by hand)



Generation gets you coverage. It does not get you good UX. Three things stayed human:





  • The Contact resource is fully handwritten. It's the resource everyone touches first, and the generated version was technically correct but clumsy — search deserves first-class email / vatNumber / phone fields, not a generic filter collection. High-traffic paths earn hand-polish; the long tail stays generated.


  • Naming and grouping. A dropdown with 42 resources is only usable if names match what users see in Holded's UI, not what the API paths say.


  • n8n's lint rules. eslint-plugin-n8n-nodes-base has strong opinions (alphabetized options, description formats, casing). The generator had to learn them — fixing lint output in the generator instead of in the generated file is the whole trick of this approach.






Getting the "verified" badge



n8n's verification reviews your code before the node becomes installable on n8n Cloud (community nodes otherwise need self-hosting). What it costs you: strict linting, no runtime dependencies, real docs, and review iterations measured in days-to-weeks.



What you get: distribution. Verified nodes show up in the in-app node panel for every n8n Cloud user, plus (MIT)


  • Docs, coverage matrix and use cases: (Spanish).



  • Ready-to-import workflow templates (Shopify → invoices, Stripe → paid invoices, overdue-invoice chasing…) are landing on my n8n creator profile — I'll update this post with the links as they're approved.



    Questions about the codegen pipeline or the verification process — ask away in the comments. 🇪🇸

    Vollständiger Original-Bericht
    Ausführliche Details, Code-Beispiele & Hersteller-Stellungnahme auf dev.to.
    ↗ Original-Artikel auf dev.to lesen
    Wie bewertest du diesen Beitrag?
    1 Klick Feedback
    Teilen mit Netzwerk & Team:

    Community-Analysen & Experten-Meinungen 0

    Verfasse deine eigene Analyse, teile Workarounds oder diskutiere diesen Vorfall im Blog.
    Noch keine Community-Analyse verfasst. Markiere einen Textabschnitt oder klicke oben auf Eigene Analyse verfassen“!
    Community Pulse: Relevanz-Einschätzung
    1 Klick Experten-Votum
    🔴 Akute Relevanz 0%
    🟡 In Evaluierung 0%
    🟢 Keine Auswirkung 0%
    Spannende Innovation 0%
    Verwandte Story-Cluster & Quellen (Vektor-KI)
    Port 8095 Engine
    3 Quellen
    GPT-6 Astra Release Today? OpenAI’s Next Major AI Model Is Almost Here
    1 Quelle
    Apple accuses OpenAI of destroying evidence as trade-secrets fight intensifies
    1 Quelle
    Major AI platforms go down in unprecedented simultaneous outage
    Ähnliche Beiträge
    🔍 Verwandte News

    Auch interessante Nachrichten I didn't write my n8n node's 323 operations. I scraped the docs and generated them.

    Thematisch verwandte Begriffe: didnt, write, nodes, operations · 6 Treffer

    Laden...

    Videos werden geladen ...

    Laden...

    Beiträge werden geladen ...

    Laden...

    Videos werden geladen ...

    Laden...

    Beiträge werden geladen ...

    Laden...

    Videos werden geladen ...

    Laden...

    Beiträge werden geladen ...

    Laden...

    Videos werden geladen ...

    Laden...

    Beiträge werden geladen ...

    Laden...

    Videos werden geladen ...