Project case study

Bemar Color Messaging & Odoo Automation

An AI-assisted customer-service and operations system connecting WhatsApp, 1msg, Chatwoot, n8n, business rules, and Odoo while keeping human agents responsible for the customer relationship.

Status: Production + continuous improvementRole: Digital Transformation & Systems Engineer

Visual walkthrough

The visual evidence documents the real messaging flow, Chatwoot/n8n automation on Hetzner, local Odoo operations, and the end-to-end customer-service process.

Project profile

Scope, role and technology

StatusProduction + continuous improvement
RoleDigital Transformation & Systems Engineer
Stack1msg, Chatwoot, n8n, Odoo, PostgreSQL, REST APIs, AI assistants, Linux, Hetzner

The operational problem

Bemar Color handles photography, printing, customized products, framing, apparel, identification products, and other jobs that arrive heavily through WhatsApp. The challenge was not merely answering messages; it was reducing the amount of manual interpretation and repeated data entry required before staff could move a request into the operational system.

  • Mapped real customer-service and production needs before designing the automation.
  • Built around the existing human team instead of trying to replace it with an autonomous chatbot.
  • Connected communication with the data needed for quotations, orders, status, and production follow-up.

WhatsApp → Chatwoot messaging layer

I implemented a messaging architecture in which WhatsApp traffic is bridged through 1msg and surfaced inside Chatwoot for the team. n8n handles automation around the conversation and integrates AI or business actions where they are useful.

  • Incoming and outgoing message flows were integrated between WhatsApp, Chatwoot, n8n, and the provider.
  • Multiple outgoing attachments are handled individually so a single Chatwoot message can deliver all intended files through WhatsApp.
  • Conversation data can be enriched with message metadata needed by downstream workflows.

AI as an assistant to human customer service

The AI layer is intentionally assistive. It helps answer frequent questions and organize the information required for operational actions, but a human agent remains part of the customer-service process.

  • FAQ assistance based on business information.
  • Intent and information extraction from natural customer messages.
  • Structured collection of the fields needed before creating or managing an Odoo-related action.
  • Human takeover when the conversation needs judgment, clarification, design discussion, or another non-automated decision.

Odoo-oriented order workflow

The automation helps convert unstructured WhatsApp conversations into the structured information required by the business. Instead of forcing staff to repeatedly re-read long conversations, the workflow can identify what has already been provided and what is still missing.

  • Customer details, requested product/service, quantities, design or production information, delivery/pickup context, payment data, and other required fields can be organized before an order step.
  • The system is designed around actual production states and business timing rather than generic CRM stages.
  • Odoo is used as the operational system for invoicing, products, inventory, customers, and order-related processes.

Business rules grounded in real operations

The workflows encode business-specific rules so the AI does not invent policies or treat every customized product the same way.

  • Production, ready, delivered, overdue, and expiration-related operational states.
  • Deposit/payment expectations and job-specific information requirements.
  • Different product categories can require different fields before the work can move to production.

Media and customer files

Because customized-printing customers frequently send photos, documents, references, and multiple attachments, the messaging layer must preserve those files instead of reducing the interaction to plain text.

  • Image and document attachments are passed through the conversation flow.
  • Multi-attachment outgoing behavior was corrected so each media item is sent rather than only the first attachment.
  • The architecture leaves room for specialized extraction or classification when a media type needs automated handling.

Hybrid cloud + local infrastructure

BEMAR COLOR uses a separated cloud/local architecture: Chatwoot and n8n run on the Hetzner server, while Odoo runs locally at BEMAR COLOR. Integration workflows connect the customer-service layer to the local ERP when an operational action is required.

  • Hetzner: Chatwoot and n8n customer-service/automation services.
  • Local BEMAR COLOR: Odoo ERP and its operational database.
  • API/integration workflows connect the Hetzner automation layer with the local Odoo environment without treating them as one server.

System architecture

The architecture separates the online customer-service layer from the local ERP. Chatwoot and n8n run on Hetzner, while Odoo stays local at BEMAR COLOR; integrations exchange only the business data/actions needed by the workflow.

Customer / WhatsApp1msgChatwoot — Hetznern8n — HetznerAPI / IntegrationOdoo — Local BEMAR COLOR

Engineering decisions

This project is shaped by direct knowledge of how the business works day to day. That operational context changes the design: the goal is to remove repetitive work without removing the human decisions that matter in customized production.

  • Human-in-the-loop by design.
  • Business data is structured before sending transactional changes to Odoo.
  • Communication reliability and attachment handling are treated as engineering concerns, not UI details.
  • Automation is added incrementally around real bottlenecks instead of automating every conversation indiscriminately.