<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: WeRumo</title>
    <description>The latest articles on DEV Community by WeRumo (@werumoconsulting).</description>
    <link>https://dev.to/werumoconsulting</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4219448%2Fe58f6553-a5aa-41c7-969e-9a2ebc25d49c.png</url>
      <title>DEV Community: WeRumo</title>
      <link>https://dev.to/werumoconsulting</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/werumoconsulting"/>
    <language>en</language>
    <item>
      <title>Routing contact-form leads into a CRM with n8n: dedupe, enrich and alert without losing a request</title>
      <dc:creator>WeRumo</dc:creator>
      <pubDate>Sun, 01 Nov 2026 20:13:16 +0000</pubDate>
      <link>https://dev.to/werumoconsulting/routing-contact-form-leads-into-a-crm-with-n8n-dedupe-enrich-and-alert-without-losing-a-request-nj9</link>
      <guid>https://dev.to/werumoconsulting/routing-contact-form-leads-into-a-crm-with-n8n-dedupe-enrich-and-alert-without-losing-a-request-nj9</guid>
      <description>&lt;p&gt;Small service businesses lose leads in boring ways: a form email lands in a shared inbox, two people answer it, or nobody does. Here is the n8n flow we use for client projects to make every request land in the CRM exactly once and reach the right person within a minute.&lt;/p&gt;

&lt;h2&gt;
  
  
  The flow
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Webhook trigger.&lt;/strong&gt; The site form posts JSON to an n8n Webhook node. Respond immediately with &lt;code&gt;200&lt;/code&gt; so the visitor never waits on downstream steps.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Normalize.&lt;/strong&gt; A Set node trims whitespace, lowercases the email and maps the form's &lt;code&gt;service&lt;/code&gt; field to a fixed list of values.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dedupe.&lt;/strong&gt; Search the CRM for a contact with that email. If found, add a note to the existing deal instead of creating a new one.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Create or update.&lt;/strong&gt; An IF node branches into "create contact + deal" or "append note".&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Route.&lt;/strong&gt; A Switch node on &lt;code&gt;service&lt;/code&gt; picks the owner and posts to that person's Slack or Telegram channel with a link to the CRM record.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Error workflow.&lt;/strong&gt; A separate Error Trigger workflow catches any failed execution and sends the raw payload to an ops channel, so a broken API key never silently drops a lead.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Details that matter
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Store the raw payload in a data table before any API call. If the CRM is down, you can replay it.&lt;/li&gt;
&lt;li&gt;Use an idempotency key (a hash of email + timestamp rounded to a minute) to stop double submissions.&lt;/li&gt;
&lt;li&gt;Keep credentials in n8n's credential store, never in Set nodes.&lt;/li&gt;
&lt;li&gt;Log timings per node for the first week; the slow step is rarely the one you expect.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  n8n vs Make vs Zapier
&lt;/h2&gt;

&lt;p&gt;Self-hosted n8n wins when data must stay on your own server, for example GDPR-sensitive intake in the EU. Make is faster to hand over to a non-technical owner. Zapier is the simplest for two-step flows but gets expensive with volume.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Disclosure: I work at WeRumo, where we build flows like this for small businesses in Germany — &lt;a href="https://werumo.com/en/services#digital" rel="noopener noreferrer"&gt;process automation services&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>n8n</category>
      <category>automation</category>
      <category>nocode</category>
      <category>webhooks</category>
    </item>
    <item>
      <title>How We Built a Zero-Database, High-Performance Multilingual Platform for German Relocation &amp; Business Setup</title>
      <dc:creator>WeRumo</dc:creator>
      <pubDate>Sat, 31 Oct 2026 17:39:10 +0000</pubDate>
      <link>https://dev.to/werumoconsulting/how-we-built-a-zero-database-high-performance-multilingual-platform-for-german-relocation--2jap</link>
      <guid>https://dev.to/werumoconsulting/how-we-built-a-zero-database-high-performance-multilingual-platform-for-german-relocation--2jap</guid>
      <description>&lt;p&gt;When architecting software solutions for the German corporate and relocation ecosystem, technical architecture quickly collides with stringent legal frameworks. Between GDPR (DSGVO), statutory retention requirements, and cross-border identity processing for expatriates and corporate founders, persisting personal records in persistent SQL databases introduces significant operational and compliance liability.&lt;/p&gt;

&lt;p&gt;At &lt;a href="https://werumo.com/en" rel="noopener noreferrer"&gt;WeRumo&lt;/a&gt;, we took a fundamentally different engineering route: building a &lt;strong&gt;zero-database, static-first, edge-orchestrated architecture&lt;/strong&gt; designed specifically for high-speed delivery, strict compliance, and effortless multi-language internationalization.&lt;/p&gt;

&lt;p&gt;In this deep dive, we break down how we designed the platform, eliminated database attack vectors, and optimized our infrastructure for 100/100 Core Web Vitals across Europe.&lt;/p&gt;




&lt;h3&gt;
  
  
  1. The Architectural Challenge: Compliance by Design
&lt;/h3&gt;

&lt;p&gt;Building digital tools for German business formation (UG &amp;amp; GmbH setup) and skilled immigration dossiers (§ 18g AufenthG EU Blue Card, § 20a Chancenkarte) involves handling sensitive corporate and personal metadata:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Notarial articles of association (&lt;em&gt;Musterprotokoll&lt;/em&gt; / &lt;em&gt;Satzung&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;Residential confirmations (&lt;em&gt;Wohnungsgeberbestätigung&lt;/em&gt; pursuant to § 19 BMG)&lt;/li&gt;
&lt;li&gt;Commercial register excerpts (&lt;em&gt;Handelsregisterauszug&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;Proof of Stammkapital deposit and Sperrkonto confirmations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Under &lt;strong&gt;GDPR Art. 5 (Data Minimization)&lt;/strong&gt; and &lt;strong&gt;Art. 17 (Right to Erasure)&lt;/strong&gt;, storing intermediate documents and applicant PII in a centralized SQL cluster creates extensive overhead: audit logs, encryption at rest, token rotation, automated purge scripts, and leak surfaces.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Solution:&lt;/strong&gt; Decouple public interaction, questionnaire pipelines, and document drafting from persistent web databases.&lt;/p&gt;




&lt;h3&gt;
  
  
  2. Frontend Architecture: Edge-Rendered, Multi-Regional Next.js
&lt;/h3&gt;

&lt;p&gt;Our web layer is built on &lt;strong&gt;Next.js with TypeScript and Tailwind CSS&lt;/strong&gt;, deployed to distributed edge networks.&lt;/p&gt;

&lt;h4&gt;
  
  
  A. Static Dictionaries with Zero Runtime Penalty
&lt;/h4&gt;

&lt;p&gt;Rather than querying dynamic localization tables, our multi-locale architecture (&lt;code&gt;/en&lt;/code&gt;, &lt;code&gt;/de&lt;/code&gt;, &lt;code&gt;/ru&lt;/code&gt;, &lt;code&gt;/uk&lt;/code&gt;) utilizes pre-compiled immutable locale trees.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;supportedLocales&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;en&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;de&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ru&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;uk&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="kd"&gt;as const&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;type&lt;/span&gt; &lt;span class="nx"&gt;Locale&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;typeof&lt;/span&gt; &lt;span class="nx"&gt;supportedLocales&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;&lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;By compiling all routes at build time with Incremental Static Regeneration (ISR), Time to First Byte (TTFB) is kept under 35ms across European edge nodes without any cold-start database connection pool latency.&lt;/p&gt;

&lt;h4&gt;
  
  
  B. Component Hierarchy &amp;amp; Accessibility
&lt;/h4&gt;

&lt;p&gt;Every interactive module adheres strictly to WCAG 2.1 AA accessibility guidelines, semantic HTML5 landmarks, and structured JSON-LD Schema markup (&lt;code&gt;Organization&lt;/code&gt;, &lt;code&gt;Service&lt;/code&gt;, &lt;code&gt;FAQPage&lt;/code&gt;), providing rich indexing for search engines and AI web crawlers.&lt;/p&gt;




&lt;h3&gt;
  
  
  3. Stateless Form Pipelines &amp;amp; Transient Edge Processing
&lt;/h3&gt;

&lt;p&gt;How does a platform process business inquiries and service requests without a database?&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[ Client Browser ]
        │  (Client-side Zod validation)
        ▼
[ Edge API Middleware (Next.js Route Handler) ]
        │  (HMAC Signature + Rate Limiting + Schema Sanitization)
        ▼
[ Transient Encrypted Webhook (n8n Orchestration) ]
        │
   ┌────┴────────────────────────┬─────────────────────────┐
   ▼                             ▼                         ▼
[ Direct Alert Bot ]      [ PGP Encrypted Mail ]    [ Ephemeral Buffer ]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Client-side Verification:&lt;/strong&gt; Every input (tax IDs, company registration numbers, visa timelines) is validated client-side via type-safe &lt;code&gt;zod&lt;/code&gt; schemas.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Edge Route Handler:&lt;/strong&gt; When submitted, an ephemeral Edge Route Handler verifies an HMAC token, strips untrusted properties, and validates origin headers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Event Dispatch:&lt;/strong&gt; Instead of executing an &lt;code&gt;INSERT INTO users&lt;/code&gt; query, the payload is converted into an encrypted event dispatched directly to a self-hosted, hardened &lt;strong&gt;n8n workflow runner&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transient Storage:&lt;/strong&gt; Data is processed instantaneously into actionable operational alerts and encrypted customer receipts, leaving zero residual footprint on web-accessible servers.&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  4. Zero-DB Security Benefits in Numbers
&lt;/h3&gt;

&lt;p&gt;By eliminating traditional web databases:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Zero SQL Injection Vector:&lt;/strong&gt; There is literally no database engine running behind the public API routes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero Inactive PII Exposure:&lt;/strong&gt; A data breach of the web server yields zero persisted customer databases, password hashes, or identity records.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DDoS Resilience:&lt;/strong&gt; 99.8% of platform assets are cached statically at CDN edge nodes, reducing server CPU compute spikes during traffic surges.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Near-Zero Infrastructure Footprint:&lt;/strong&gt; Serverless execution and static assets mean hosting costs remain flat even as consultation volume scales.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  5. Key Takeaways for Full-Stack Teams
&lt;/h3&gt;

&lt;p&gt;When building platforms in regulated industries:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Challenge the 'Default Database' assumption:&lt;/strong&gt; Not every interactive web application needs a persistent PostgreSQL or MongoDB backend.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lean on Edge &amp;amp; Workflow Engines:&lt;/strong&gt; Moving state management and document routing to specialized workflow orchestrators (like n8n) drastically simplifies web architecture.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Make Performance Part of SEO:&lt;/strong&gt; Instant static page loads directly boost conversion rates and domain authority.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To inspect how this architecture operates live in production for international founders and expatriates, visit the live deployment at &lt;a href="https://werumo.com/en" rel="noopener noreferrer"&gt;WeRumo Consulting&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;What are your thoughts on zero-database architectures for compliant business platforms? Let's discuss in the comments below!&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>performance</category>
      <category>privacy</category>
      <category>softwareengineering</category>
    </item>
  </channel>
</rss>
