Most of this runs inside MagicLead, the AI post-sale support SaaS for e-commerce that I founded, and Propositum, my performance marketing agency. I'm the one who builds the automation layer for both.
The typical shape of what I ship
Triggerwebhook · channel · schedule
→
n8n orchestrationqueue workers · retries
→
LLM + toolsprompts · API calls · data
→
Validationstructured output · QA rules
→
Action or human handoffDB write · reply · escalation
01 · Customer-facing AI agents
Production AI support agents for e-commerce brands
LLM agents that handle post-sale support (order tracking, exchanges, returns, refunds) for several online stores across WhatsApp, Instagram DMs and email, around the clock.
- Each agent has its own business rules, tone and escalation rules per client and per channel
- Tool calls into store platforms (Shopify, Nuvemshop, Yampi) to fetch real order data instead of guessing
- Hands off to a human agent when confidence is low or a policy boundary is reached
- Model routing through OpenRouter, with Claude Haiku preferred for strict instruction-following
n8nClaudeOpenRouterWhatsApp APIInstagram Graph APIChatwoot
02 · Voice of customer
Conversation classifiers that turn chats into data
Agents that read customer conversations and return structured signals, not prose.
- Product-interest tagging against a per-store list of valid interests
- Funnel-stage scoring on a strict 0–4 integer scale
- Results written to Supabase to power CRM segmentation and follow-ups
n8nLLMSupabaseJSON schemas
03 · Content synthesis
Automated SEO content pipeline with a QA gate
An n8n + Claude pipeline that turns a topic bank into published articles.
- Separate generation and validation steps
- A QA node checks each draft against explicit rules before anything goes live
Lesson: the QA rules came from real failures found in production, not from guesses up front.
n8nClaude APIPostgres
04 · Integrations
Wiring commerce systems together
- Webhook-driven Shopify product sync into Supabase, with idempotent upserts and cursor-paginated bulk backfill
- Custom shipping-quote API for the Yampi checkout, per-product-group rules backed by Redis
- Meta Graph API reporting workflow that renders per-creative performance cards
- Abandoned-cart recovery that sends WhatsApp templates through the Chatwoot API
RESTWebhooksShopifyMeta Graph APIRedis
05 · Reliability
Knowing when a workflow should become a service
The Yampi shipping quote started as an n8n webhook. It sits in the checkout path, so latency and uptime matter.
- Moved it to a dedicated Fastify service once the load required it
- n8n kept doing orchestration, where it's strongest
FastifyNode.jsRedis
06 · Running it at scale
Operating the platform behind the automations
I self-host and operate the infrastructure these workflows run on, across several VPS clusters.
- n8n in queue mode on Docker Swarm, with multiple workers and webhook replicas on tuned Postgres 16 and Redis 7
- Execution pruning (by age and count) and no full payload storage for successful runs, so the database stays under control
- Secrets moved into Docker secrets; deployments through Portainer and GitHub Actions
- Debugged real incidents: queue backlogs from slow jobs, Postgres connection exhaustion, disks filled by container logs
Docker SwarmTraefikPortainerPostgres 16Redis 7GitHub Actions
07 · Product
MagicLead v2: an AI-first support platform
The next version of the platform, built on React/Vite and Supabase (Postgres, Edge Functions, row-level security per store). It connects directly to the official Instagram and WhatsApp Cloud APIs, and keeps n8n as the external orchestration layer for AI behavior: content detection, routing and handoffs.
ReactSupabaseEdge FunctionsRLSMeta APIsn8n