u/EngJosephYossry

Built an n8n workflow that turns trash git commits ("fixed bug lol") into clean CHANGELOG.md files and auto-commits them back
▲ 2 r/n8n

Built an n8n workflow that turns trash git commits ("fixed bug lol") into clean CHANGELOG.md files and auto-commits them back

Ello!

I absolutely hate writing changelogs. When I'm deep in a coding flow, my commit messages get incredibly lazy ("fixed bug", "optimized file lol", "finally working"). It’s fine for my own speed, but it sucks for anyone else trying to read the project history or see what actually changed

So I spent about 2 hours building an n8n setup to completely automate the boring part straight from a GitHub push webhook.

The whole workflow is open-source. You can grab the JSON blueprint from the repo, host it yourself, and build on top of it: [link!](https://github.com/engyossefyossry-crypto/git-log-humanizer)

🛠️ How it works under the hood:

  1. The Ingestion: It catches the live GitHub push event and grabs the raw commit text array.

  2. The Clean-up: Passes the commits to Llama 3.1 (via Groq) locked behind a strict JSON schema output parser. The model filters out the pure noise (like "finally working") and rewrites the actual technical fixes into clean, professional bullet points categorized by Features, Bug Fixes, and Performance.

  3. The Auto-Commit: It compiles everything into markdown and uses the GitHub API node to automatically update `docs/CHANGELOG.md` in the repo.

  4. The Logs: In parallel, it drops a clean summary into Discord/Gmail and logs the raw metrics to a database table for tracking engineering velocity.

📋 Two details I added to make developing this less annoying:

Local Sandbox Fallback: Testing webhook-driven pipelines usually means spamming your live git history with empty commits just to see if your nodes trigger. I put a small JS check in the ingestion node, if you run it manually in the n8n editor without a live payload, it swaps in a mock array of garbage commits so you can debug the whole canvas instantly without polluting your real GitHub repo.

Deterministic Parsing: Small models love wrapping JSON responses inside markdown code blocks (```json ... ```), which instantly breaks downstream JavaScript or database nodes. The structured output parser fixes this by forcing raw JSON straight out of the inference layer.

It's fully free-tier friendly and easy to configure. Check out the repo, hook up your own credentials, and let me know if you have any ideas to scale it or handle multi-repo setups!

u/EngJosephYossry — 17 hours ago

I built an agentic n8n pipeline that turns messy, casual Telegram texts into structured developer billing metrics and auto-routes them

Ello!

so I wanted to share a productivity utility I just wrapped up to solve a classic freelancer/developer annoyance: manual time-tracking. Opening a tracking tool or logging rows manually every time you switch context completely breaks your creative coding flow.

I built an event-driven automation framework in n8n that intercepts casual, unformatted text messages sent straight from mobile endpoints (like Telegram) and parses them with zero manual sorting.

If you want to view the full open-source JSON blueprint file, check it out on GitHub here: [link!](https://github.com/engyossefyossry-crypto/ai-casual-time-logger/tree/main)

🏗️ How the Infrastructure Works:

  1. Trigger & UX Emulation: An inbound webhook intercepts the text via a Telegram bot. The pipeline instantly fires a "sendChatAction" typing state to emulate zero latency while the backend engine runs heavy model tasks.
  2. Semantic Extraction Layer: Passes the raw string payload to a "llama-3.1-8b" model on Groq constrained by a highly rigid structured data output schema.
  3. Omnichannel Matrix Router: Evaluates the AI's destination intent parameter to decide where the data goes next, dynamically generating formatted blocks for Discord hooks, Telegram, or Gmail.

🛠️ The Hard Engineering Battles Solved:

Chronological String Normalization: The engine accepts completely chaotic natural language phrases (like, "spent like 1 hour and 45 minutes tweaking text UI structures") and accurately isolates the variables. The AI converts mixed temporal expressions into absolute mathematical integers (105 minutes) while rewriting raw dev slang into formal executive summaries.

Defensive Batch-Safe JS Layer: Instead of piping raw AI strings straight into downstream app nodes! which causes catastrophic failures if fields evaluate to null, i wrote a highly defensive JavaScript parsing layout. It maps arrays safely using unified iteration loops and assigns structural fallback objects if a parameter is dropped.

Check out the workflow layout in the repository! I'd love to hear your feedback on expanding this into a persistent SQL ledger or handling rate-limiting throttles over massive multi-user scales!

u/EngJosephYossry — 19 hours ago
▲ 1 r/n8n

Built an agentic n8n pipeline that turns messy, casual telegram texts into structured developer billing metrics and auto-routes them

Ello!

so I wanted to share a productivity utility I just wrapped up to solve a classic freelancer/developer annoyance: manual time-tracking. Opening a tracking tool or logging rows manually every time you switch context completely breaks your creative coding flow.

I built an event-driven automation framework in n8n that intercepts casual, unformatted text messages sent straight from mobile endpoints (like Telegram) and parses them with zero manual sorting.

If you want to view the full open-source JSON blueprint file, check it out on GitHub here: [link!](https://github.com/engyossefyossry-crypto/ai-casual-time-logger/tree/main)

🏗️ How the Infrastructure Works:

  1. Trigger & UX Emulation: An inbound webhook intercepts the text via a Telegram bot. The pipeline instantly fires a "sendChatAction" typing state to emulate zero latency while the backend engine runs heavy model tasks.
  2. Semantic Extraction Layer: Passes the raw string payload to a "llama-3.1-8b" model on Groq constrained by a highly rigid structured data output schema.
  3. Omnichannel Matrix Router: Evaluates the AI's destination intent parameter to decide where the data goes next, dynamically generating formatted blocks for Discord hooks, Telegram, or Gmail.

🛠️ The Hard Engineering Battles Solved:

Chronological String Normalization: The engine accepts completely chaotic natural language phrases (like, "spent like 1 hour and 45 minutes tweaking text UI structures") and accurately isolates the variables. The AI converts mixed temporal expressions into absolute mathematical integers (105 minutes) while rewriting raw dev slang into formal executive summaries.

Defensive Batch-Safe JS Layer: Instead of piping raw AI strings straight into downstream app nodes! which causes catastrophic failures if fields evaluate to null, i wrote a highly defensive JavaScript parsing layout. It maps arrays safely using unified iteration loops and assigns structural fallback objects if a parameter is dropped.

Check out the workflow layout in the repository! I'd love to hear your feedback on expanding this into a persistent SQL ledger or handling rate-limiting throttles over massive multi-user scales!

u/EngJosephYossry — 19 hours ago
▲ 3 r/n8n_ai_agents+1 crossposts

My friend needed an automated multi-source Technical Radar, so I built an agentic n8n engine to solve it! and found a way to completely bypass the "Merge Node Stalling Trap

Ello!
so today i just hit a massive milestone, I officially published my first major open-source automation architecture to GitHub! and I wanted to share the build, the logic, and the engineering battles I had to fight to get it production-ready

The Problem

A friend of mine, was drowning trying to track technical updates, trending discussions, and emerging bug reports across completely different developer platforms (specifically Subreddits and GitHub repositories). Doing this manually every day was exhausting, so I wanted to build an autonomous system that could poll these sources, isolate major findings, perform severity scores, and deliver clean technical radar summaries.

The Architecture

Instead of building a massive, single-file linear workflow that could easily crash or hit runtime timeouts, I designed it as a decoupled, two-layer framework:

  1. The Core Ingestion Orchestrator: Acts as the primary router. It manages user conversation, handles execution pacing, and streams descriptive text out by breaking down large paragraphs using a custom split delimiter (|||) layer.
  2. The Deep-Dive Subworkflow Worker: An isolated worker triggered parametrically by the core engine. It manages the actual API integrations with Reddit and GitHub, gathers the payloads, and runs the analytical models.

Advanced Engineering Hurdles Overcome

This is where things got really interesting (and where I spent hours debugging!):

  • Smashing the "Merge Node Stall Trap": Initially, I ran into a classic architectural bottleneck. Standard multi-input Merge nodes wait for all upstream branches to deliver data before moving forward. Because my workflow uses a conditional Switch path (only hitting Reddit OR GitHub per execution), one branch would always stay empty, causing the engine to stall infinitely. I completely solved this by swapping out the traditional layout for a singular, unified JavaScript Code Node acting as an open collection bucket. It instantly processes active paths while naturally ignoring idle routes.
  • Asymmetric Data Normalization: The payloads coming from the Reddit API and GitHub API are structured completely differently (e.g., selftext vs description). I wrote a custom JS normalization layer inside the subworkflow to flatten and pipe both data streams down into a singular corporate data schema before it ever hits the AI.
  • Defensive Free-Tier LLM Parsing: I wanted this engine to run smoothly using free-tier models via OpenRouter (like llama-3.3-70b-instruct:free). However, conversational models frequently violate structured schemas by injecting markdown wrappers (like \``json ... ```), which instantly crashes standard system output parsers. I ditched the native LangChain structured parser entirely and engineered a post-processing **Regex Cleansing Node** using customtry/catch` logic to programmatically sanitize the text strings back into true JSON arrays.

🔬 Looking for Reviews & Feedback!

As this is my first time sharing a major architectural creation publicly, I would absolutely love to get some eyes on it from the community.

  • How do you typically handle rate-limit throttling when scaling subworkflows across multi-source looping triggers?
  • Are there cleaner ways to handle token-splitting for interactive frontend UI streaming directly from an n8n Agent node?

If you wanna preview it on GitHub, here's the link!

Looking forward to hearing your thoughts, criticisms, and suggestions. Let me know what you think!

https://preview.redd.it/t4ohbw5u09bh1.png?width=1880&format=png&auto=webp&s=92bbe64cce9a7bb062f16e11f0e0784980f9335a

https://preview.redd.it/n08dqx3x09bh1.png?width=1878&format=png&auto=webp&s=1877981cfb581a7495045706afa01a3ad0cea14d

reddit.com
u/EngJosephYossry — 1 day ago