Available for automation projects

Shopkeeper Copilot

Customers get instant, accurate answers about products and prices on WhatsApp. The owner updates prices by texting a bot in plain language. Both read the exact same live catalog.

n8n WhatsApp Telegram Google Sheets
Small grocery shop storefront

The problem

A small shop owner wants a WhatsApp presence customers can message any time, but can't staff it 24/7, and every time a price changes, updating it across however staff currently communicate it is slow and error-prone. Customers end up with stale prices, or nobody answers WhatsApp outside working hours at all.

The approach

Two n8n workflows sharing one Google Sheet as the single source of truth.

  1. The customer WhatsApp agent answers questions about products and prices using only the live catalog, with per-customer conversation memory so it doesn't repeat itself.
  2. The owner price-update bot on Telegram lets the owner text in plain language, "tomato is now 45," "add ginger at 90 under vegetables," and an AI parses the product and price, matches it against the catalog, and writes the update back to the sheet.
  3. The moment the owner sends an update, the very next customer message on WhatsApp reflects it. No cache, no webhook race.

Architecture

flowchart LR
    subgraph Customer["Customer side"]
    WA[WhatsApp Message] --> TXT{Text Message?}
    TXT -- yes --> READ1[Read Catalog]
    READ1 --> AGENT1[Customer AI Agent]
    AGENT1 --> REPLY1[Reply on WhatsApp]
    TXT -- no --> REPLY2["Please send text"]
    end
    subgraph Owner["Owner side"]
    TGO[Telegram Message] --> OWNER{Sender is Owner?}
    OWNER -- yes --> READ2[Read Catalog]
    READ2 --> EXTRACT[AI Extracts Product + Price]
    EXTRACT --> VALID{Valid Update?}
    VALID -- yes --> WRITE[(Update Catalog)]
    WRITE --> CONFIRM["Confirm: Tomato 50 to 45"]
    VALID -- no --> CLARIFY[Ask to Rephrase]
    OWNER -- no --> IGNORE[Silently Ignored]
    end
    WRITE -. same live sheet .-> READ1
                    

Engineering decisions

Zero sync lag

Both workflows read the same sheet fresh on every single message. There is no cache and no separate push-update step to forget.

Owner-only guard on the admin path

Anyone who isn't the configured owner messaging the update bot is silently ignored, never parsed, never actioned.

Fuzzy, forgiving product matching

Casual phrasing, different capitalization, and minor typos still resolve to the right catalog row, and genuinely new products get added cleanly rather than creating near-duplicate rows.

The AI never invents a price

The customer agent is scoped to answer strictly from the current catalog contents, not from general knowledge or prior conversation assumptions.

Orchestration

n8n

Messaging

WhatsApp Business Cloud API Telegram Bot API

AI / LLM

OpenRouter

GPT-5

Data

Google Sheets (shared live catalog)

Want something like this built for your business?