ShipIt Studio

#Build02 · Fintech · Internal platform

DotPe CRM internal brain

An internal platform with analytics dashboards, automated vendor onboarding and auto-generated templates.

DotPe CRM internal brain — screen 1
DotPe CRM internal brain — screen 2

/month saved

sales recovered

01

Problem

CRM sales, onboarding, and adoption data for merchants lived across scattered Redash queries and manually-updated Google Sheets. There was no single merchant profile — sales, ops, and leadership each pieced together their own view, and weekly reporting meant screenshotting dashboards into emails that often broke on size limits.

02

Solution

We built a merchant-centric dashboard and database: Redash queries and the CRM/Loyalty closures Google Sheet sync in automatically via cron, landing in a generic time-series snapshot table per merchant. Sales, ops, and leadership (read-only) all see the same account-level view, with a hand-built HTML email report sent out automatically instead of screenshots.

03

Process

Started with the data model — one merchant record, with a generic snapshot table so any new Redash or Sheets metric could be added without a schema change. Sync jobs were split into single-purpose cron routes after Vercel's function execution ceiling forced slow Redash syncs apart. The email report was rebuilt from scratch after discovering Gmail clips HTML over ~102KB, ruling out screenshot-based reporting.

Technical details

How it's built.

What runs where, what it talks to, and what was handed over.

Stack
Next.js 16 (App Router)TypeScriptReact 19PostgreSQL via PrismaSupabaseAuth.js (JWT, role-based)Tailwind CSSshadcn/ui + RadixRechartsResendVercel (serverless + cron)
Integrations
Redash — CRM activation, credit consumption, customer reach, MX-grain metricsGoogle Sheets — CRM/Loyalty closures, payments, branch counts, ratesResend — automated HTML email reports
Delivered
  • Merchant-centric dashboard + database view
  • Automated Redash + Google Sheets sync with run tracking
  • Role-based access (sales/ops write, leadership read-only)
  • Onboarding, roadmap, and support-request tracking
  • Automated weekly HTML email report (inline SVG charts, no screenshots)

Architecture

How the pieces connect.

Redash queries and the closures Google Sheet sync into Postgres via scheduled cron jobs, landing in a generic per-merchant snapshot table. Server Components read this via Prisma; a pure computation layer handles funnel/KPI/ARPU math separately from data fetching. A weekly cron renders a dependency-free HTML email report and sends it via Resend.

DotPe CRM internal brain architecture diagram
They turned our scattered CRM data and ops work into one live dashboard. Recovered 40% revenue by spotting gaps, saved hundreds of hours of manual work.
Ram · Dotpe CRM Lead

Pick a time, or just message. Either way you talk to the person building your tool.