Skip to content

aleocampodev/LobsterMarketing

Repository files navigation

Nenufar Marketing Automation

Nenufar is an intelligent marketing automation system for Colombian Ancestral Jewelry. It follows a Brain-Arms pattern: OpenClaw (Luna) handles creative decisions and n8n executes publishing, image processing, and analytics.


Operational Flow

flowchart TD
    subgraph User["User — Shirley"]
        U1["Uploads photos/videos\nto Google Drive"]
        U2["Receives preview\nvia Telegram"]
        U3{{"APPROVE / MODIFY / CANCEL"}}
    end

    subgraph Brain["Brain — OpenClaw (Luna)"]
        B1["Analyzes new content\nin Google Drive"]
        B2["Queries templates bank\n(Supabase)"]
        B3["Trend scraping\n(Firecrawl + Graph API)"]
        B4["Generates optimized copy\n+ hashtags"]
        B5["Sends preview via Telegram"]
        B6["Dispatches task to n8n\n(Webhook)"]
    end

    subgraph Arms["Arms — n8n Workers"]
        A1["Retrieves media\nfrom Google Drive"]
        A2["Converts image\nFB: 1080x1080 / IG: 1080x1350"]
        A3["Applies Nenufar watermark"]
        A4["Publishes on Facebook + Instagram"]
        A5["Logs analytics in Supabase"]
        A6["Notifies user via Telegram"]
    end

    U1 --> B1
    B1 --> B2
    B2 --> B3
    B3 --> B4
    B4 --> B5
    B5 --> U2
    U2 --> U3
    U3 -- "Approve" --> B6
    B6 --> A1
    A1 --> A2
    A2 --> A3
    A3 --> A4
    A4 --> A5
    A5 --> A6
    A6 -.->|Done| U2
Loading

Tech Stack

Layer Technology Purpose
Brain OpenClaw (Luna) AI agent with eco-poetic voice
LLM Gemini 1.5 Flash Content generation + intent classification
Templates Supabase / Markdown Brand knowledge & pre-defined copy
Interface Telegram Bot Human-in-the-loop approval
Broker Direct HMAC Webhook Task dispatch between Brain and Arms
Workers n8n (GCP e2-micro) Lightweight routing, publishing, logging
Media Oracle Cloud (ARM A1) Heavy image/video processing (Sharp + ffmpeg)
Database Supabase PostgreSQL Long-term memory + analytics
Assets Google Drive Media storage
Publishing Meta Graph API Instagram + Facebook

Project Status

Epic Description Status
ip-001 Infrastructure Setup Completed
ip-002 Brain — OpenClaw (Luna) + Telegram In Progress
ip-003 Arms — n8n Workers In Progress
ip-004 Integration Testing Pending
ip-005 Production Launch Pending
ip-006 Supabase Improvements Completed

Key Features

Consistent Copywriting (Templates Bank)

The system uses a Templates Bank to ensure all copy is on-brand and optimized for token usage:

  • Verified template structures in Supabase for:
    • Product storytelling
    • Artisan heritage narratives
    • Collection launches
    • Educational content on materials/techniques
  • Prevents: Generic generation and hallucination
CREATE TABLE nenufar.templates_bank (
    id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    template_id TEXT UNIQUE NOT NULL,
    category TEXT NOT NULL,          -- story, product, engagement, fallback
    content TEXT NOT NULL,           -- Template with {{variables}}
    variables TEXT[],
    created_at TIMESTAMPTZ DEFAULT NOW(),
    updated_at TIMESTAMPTZ DEFAULT NOW()
);

Intelligent Hashtag Strategy

Tool Purpose
Firecrawl Extract trends from competitors and jewelry niche
Graph API Analyze top-performing posts in the niche

Platform-Optimized Publishing

Platform Format Watermark Timing
Facebook Feed 1080x1080 (square) Bottom right, 15% opacity 9am-11am, 7pm-9pm
Instagram Feed 1080x1350 (portrait) Bottom right, 15% opacity 9am-11am, 7pm-9pm
Instagram Stories 1080x1920 (vertical) Animated, corner 24h cycle
Reels 1080x1920 (vertical) Subtle, non-intrusive Trending audio

Project Structure

LobsterMarketing/
├── README.md                          # This file
├── CONTRIBUTING.md                    # Contribution guidelines
├── .env.production                    # Production environment vars
├── package.json                       # Root dependencies
│
├── agent_context/                     # Agent identity & configuration
│   ├── AGENTS.md                      # Agent workspace guide
│   ├── SOUL.md                        # Agent personality & voice
│   ├── IDENTITY.md                    # Agent identity
│   ├── USER.md                        # User profile (Shirley)
│   ├── TOOLS.md                       # Local tool notes
│   ├── HEARTBEAT.md                   # Heartbeat configuration
│   ├── GEMINI.md                      # Gemini model config
│   ├── TESTING_GUIDE.md              # Testing instructions
│   ├── openclaw_system_prompt.txt     # OpenClaw system prompt
│   └── agent_prompts.md              # Agent prompt templates
│
├── database/                          # Database schema
│   └── database_schema.sql           # Full Supabase SQL schema
│
├── deployments/                       # Deployment scripts
│   ├── deploy_oracle.sh              # Oracle Cloud deploy script
│   ├── n8n/                          # n8n deployment config
│   └── openclaw-server/              # OpenClaw server deployment
│
├── media-processor/                   # Image/video processing service (TypeScript)
│   ├── server.ts                     # Media processing server
│   ├── tsconfig.json                 # TypeScript configuration
│   └── package.json                  # Dependencies & scripts
│
├── specs/                             # Technical & brand specifications
│   ├── architecture/                 # Architecture docs
│   ├── adrs/                         # Architecture Decision Records
│   ├── implementation_plan/          # Implementation plans
│   ├── tests/                        # Test specs
│   ├── templates_bank.md             # Templates bank documentation
│   ├── brand_essence.md              # Brand voice & identity
│   ├── data_architecture.md          # Data model design
│   ├── media_processor_api.md        # Media API specification
│   └── *.md                          # Other specs
│
├── workflows/                         # n8n workflow JSON exports
│   ├── caption-approval-pipeline.json
│   ├── caption-callback-handler.json
│   ├── caption-preview-sender.json
│   ├── heartbeat-drive-monitor.json
│   └── video-callback-handler.json
│
└── memory/                            # Agent long-term memory
    └── MEMORY.md                      # Persistent memory log

Brand Quick Reference

Voice

  • Tone: Eco-poetic, close, professional
  • Language: Colombian Spanish, always "tu"
  • Narrative: "Poemas tejidos" — each piece is a poem

Keywords

Nenufar contigo - Tejiendo esperanzas - Tejiendo caminos - Punzadas de amor - Arte hecho a mano - Poemas tejidos - Gajes del oficio

7-Day Content Strategy

Day Theme Focus
Monday Tejiendo Caminos Social impact, artisan mothers
Tuesday Poemas Tejidos Storytelling of a specific piece
Wednesday Gajes del Oficio Weaving process & techniques
Thursday Universo Infantil Kids & minimalist accessories
Friday Naturaleza y Espiritu Spirituality & meaningful designs
Saturday Cultura en Movimiento Clients at cultural events in Cartagena
Sunday Reflexion y Color Color meanings & weekly energy

Built for Nenufar — Colombian Ancestral Jewelry

"Each piece carries a story. Our mission is to ensure that story is told well."

About

Marketing automation system for artisanal jewelry: intelligent copywriting + automatic publishing on Instagram and Facebook.

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors