Case Study

EcoSupport — we built the desk that already knows the order when the chat opens.

Live at support.bdshop.com. A shopper on BDSHOP or GroupBuy opens chat with the order already attached. The desk assigns, tickets, calls, or books the roof — Solar Hero in the field, Smart Chats drafting overnight. We shipped the widget, the inbox, the ticket book, voice, AI, and the crew app so support finishes as a product.

support.bdshop.comGo + Next.jsChat · Tickets · Solar Hero · AI
EcoSupport widget placeholder

4

Rails into one inbox

4

Chat lifecycle states

5

Ticket sources on one book

Hero

Field app for the roof

Snapshot is how the product is wired — not a SmartB traffic claim.

Why this build

We designed EcoSupport around how a solar desk already answers.

A rooftop buyer does not open a blank help form. They have an order, a kit, and sometimes a crew on the way. Chat, ticket, call, and install have to be the same person. That is the product we shipped.

Widget on the store

Shoppers

Open chat from BDSHOP or GroupBuy. The order and the SKU travel with them. A call or a ticket can start the same way.

Inbox · tickets · dial

The desk

Assign, reply, escalate, call. AI drafts. Reports score the day. Firewall keeps the queue clean.

Solar Hero

The crew

Requests, jobs, tasks, calendar on the phone. The rooftop they finish is the ticket the desk already holds.

The factory

Arrive. See. Act. Finish — on one book.

01
04
B

SmartB path

Arrive

In

The shopper never starts from a blank box

The BDSHOP or GroupBuy widget opens with the customer, the order, and the product. A ticket, a phone, or a dial-pad call can write the same person. Departments route the first desk.

See

Known

The agent already has the ticket

Inbox, thread, and details sit together. Linked client, orders, products, assignment, presence. A web call can open on the same chat. No one asks for the order number again.

Act

Moving

Chat becomes a ticket, a call, or a roof

Priorities, sources, and statuses live on one book. Call center and dial pad stay in the same chrome. An install request becomes a job on the solar calendar — then Solar Hero in the field.

Finish

Closed

AI, reports, and payouts close the loop

Local indexes and nightly proposals draft the next reply. Agent and business reports score the desk. Commissions pay the crew. Firewall keeps spam off the widget.

Infographic

How the desk holds the work — rings, funnel, gauges.

Process coverage on this product. Not a client KPI claim.

Layers on one conversation

Concentric rings — each ring a desk that stays attached.

  • Widget already holds the order96
  • Agent sees client + product92
  • Ticket stays on the same person88
  • Install job reaches Solar Hero84

How a case narrows to done

Funnel — the work gets smaller, the ticket stays one.

Inbox

Widget, ticket form, phone, dial

Assigned

Waiting → assigned on the queue

Ticket

Chat, email, phone, web, manual

Job

Request → calendar → Solar Hero

Closed

Resolved, reported, paid out

Four clocks on the same desk

Radial gauges — chat, ticket, call, install. Semicircle, not a bar.

Chat

Open → waiting → assigned → closed

Ticket

Five sources, one status book

Call

Web call + JsSIP softphone

Install

Request, job, calendar, crew

How people first arrive

Donut mix — share of the first door, not a before/after bar.

  • Live widget

    34% of first contact

  • Ticket form

    26% of first contact

  • Call / dial

    22% of first contact

  • Install ask

    18% of first contact

How the desk helps

Widget, inbox, tickets, Solar Hero — one scroll.

01 · Widget

How the public chat already knows the order

The storefront widget starts a chat with department, visitor session, and the logged-in customer. It can attach the order number, status, payment, and the SKU. Agents open a conversation that is already a ticket.

  • Departments the business actually staffs
  • Orders and products on the widget API
  • Link-client when a guest later signs in

02 · Inbox

How one queue holds every open chat

Inbox, thread, details. Tabs for direct and group. Filters by business, department, channel. Assignment, presence, read report. A web call can float on the same screen.

  • Statuses: open, waiting, assigned, closed
  • Realtime for the agent who is on the thread
  • Product picker and order notes beside the chat

03 · Tickets

How a chat becomes a book the whole desk can open

Open, waiting, assigned, in progress, resolved, closed. Sources: chat, email, phone, web, manual. Priority from low to urgent. Composer, attachments, activity feed, and an order picker so the ticket stays tied to the sale.

  • Filter by business, department, status, priority
  • Create from the desk or from the chat
  • Settings per business, not a global rumour

04 · Call + dial

How voice stays on the same customer

Call Center Support and a JsSIP dial pad. A web call can start from the chat. Softphone settings live under Support Settings. The voice is another door into the same client record.

  • Web call token on the widget conversation
  • Dial pad for outbound from the desk
  • Presence so the next agent sees who is live

05 · Solar + Hero

How a rooftop leaves the inbox as a job

Installation requests, jobs, and the solar calendar on the desk. Solar Hero is the mobile app for the crew — requests, jobs, tasks, calendar. Status and payments stay on the job the customer already bought.

  • Convert a request into a scheduled job
  • Tasks and complete-install on the field phone
  • Commissions can pay the crew from the same job

06 · Smart Chats

How the desk drafts the next honest reply

Local indexes, knowledge and quality, AI agents and rules, nightly proposals. The model learns from the catalog and the FAQ — it does not invent a price. Teach and golden answers stay in the loop.

  • Indexes the agent can trust on solar SKUs
  • Nightly proposals for the next morning
  • Rules so a bot never outruns the desk

07 · Connect + reports

How stores push in, and the desk reports out

Businesses connect with an integration key. Push products, services, orders, chats, tickets. Webhooks go back. Agent reports, business reports, overviews. Spam protection on the widget. Multi-tenant on one install.

  • BDSHOP and GroupBuy sync on the same API
  • Idempotency keys for high-traffic writes
  • Roles and permissions per module
Placeholder — EcoSupport widgetPlaceholder — chat inboxPlaceholder — ticketsPlaceholder — callsPlaceholder — Solar HeroPlaceholder — Smart ChatsPlaceholder — connect / reports

Shot list

Placeholders — drop 1440 JPGs in /public/cases/ecosupport/

Keep the file names. Change the map at the top of the case component from .svg to .jpg.

01 · Widget — replace 01-widget.svg
01 · Widget — replace 01-widget.svg
02 · Inbox — replace 02-inbox.svg
02 · Inbox — replace 02-inbox.svg
03 · Tickets — replace 03-tickets.svg
03 · Tickets — replace 03-tickets.svg
04 · Calls — replace 04-calls.svg
04 · Calls — replace 04-calls.svg
05 · Solar ops — replace 05-solar.svg
05 · Solar ops — replace 05-solar.svg
06 · Solar Hero — replace 06-hero.svg
06 · Solar Hero — replace 06-hero.svg
07 · Smart Chats — replace 07-ai.svg
07 · Smart Chats — replace 07-ai.svg
08 · Reports — replace 08-reports.svg
08 · Reports — replace 08-reports.svg

How it works

Three public steps. The desk and the crew finish the rest.

01

Open the chat

The widget already has the customer and the order.

02

The desk takes it

Assign, ticket, call, or schedule the roof.

03

The crew closes it

Solar Hero finishes the job. Reports and payouts follow.

A widget that arrives with the sale attached

01 · Deep dive

A widget that arrives with the sale attached

Start chat with department and visitor session. Send the order id, status, payment, and product. Link the client when they log in. The first message is already a record — not a greeting into the void.

One inbox for every business on the family

02 · Deep dive

One inbox for every business on the family

BDSHOP and GroupBuy are connected businesses. Channels, departments, and roles gate who sees which queue. Multi-tenant on one Go API and one Next desk.

Tickets that remember how they started

03 · Deep dive

Tickets that remember how they started

Five sources, six statuses, four priorities. Composer, attachments, activity, order picker. A chat can become a ticket without retyping the story.

Solar Hero takes the inbox onto the roof

04 · Deep dive

Solar Hero takes the inbox onto the roof

Requests convert to jobs. Calendar places the crew. The mobile app holds tasks, schedule, and complete-install. Commissions can pay from the same job.

Smart Chats keep the night shift useful

05 · Deep dive

Smart Chats keep the night shift useful

Local indexes, agents, rules, knowledge quality, nightly proposals. The catalog and the solar FAQ train the draft. The agent still sends it.

Stack we shipped

A full product stack, built to stay in their hands.

API — Go, Gin, GORM, PostgreSQL, JWT. Live at support.bdshop.com.

Desk — Next.js 16. Chat, tickets, call center, dial pad, roles.

Field — Solar Hero mobile: requests, jobs, tasks, calendar.

Voice — Widget web call + JsSIP softphone.

Connect — Push API and webhooks for BDSHOP and GroupBuy. Smart Chats indexes, agents, nightly proposals. Firewall on the widget.

Before / after

A support case now finishes as a ticket the whole desk can see.

BeforeChat asked for the order number first

AfterWidget already holds order, SKU, and customer

BeforeTickets lived in a second inbox

AfterChat, email, phone, web — one ticket book

BeforeCalls were a mobile on the desk

AfterWeb call + JsSIP dial pad on the same client

BeforeInstall dates sat in a group chat

AfterRequest → job → calendar → Solar Hero

BeforeReplies were typed from memory

AfterIndexes, agents, nightly proposals

BeforeEach store ran its own helpdesk

AfterBDSHOP and GroupBuy on one multi-tenant desk

BeforeSpam walked into the widget

AfterFirewall: device, IP, ban

BeforeMonth-end rebuilt agent scores

AfterAgent reports, business reports, overviews

Every chat, call, and rooftop attaches to a client the desk already holds. Widget, ticket, or Solar Hero — all become a book the agent, the crew, and reports can open.

Ready to build the support desk you have been holding in your head?

Bring the dream product. We’ll make a plan.

Start a project