Skip to main content
info@magetechsol.com
Note : We help you to Grow your Business
MageTech ServiceFlow
MageTech ServiceFlow 1 MageTech ServiceFlow 2 MageTech ServiceFlow 3
JAVA SaaS Product

MageTech ServiceFlow

Brand: MageTech Solutions

SKU: MTS-SERVICEFLOW-001

Monthly
₹999.00
per month
Yearly
₹10,789.00
per year Save 10%
In Stock (999 available)

Never miss a service. Never miss a follow-up. The all-in-one platform for AC, RO, appliance, pest-control, solar and maintenance businesses. Track every customer and asset, schedule and dispatch jobs, and let ServiceFlow automatically remind and follow up — so repeat work never slips away.

MageTech ServiceFlow

Never Miss a Service. Never Miss a Follow-up.

What is ServiceFlow?

An all-in-one platform for AC, RO, appliance, pest-control, solar and maintenance businesses. Track every customer and asset, schedule and dispatch jobs, and let ServiceFlow automatically remind and follow up — so repeat work never slips away.

Positioning: "Never Miss a Service. Never Miss a Follow-up."

Section 01 · Commercial Proposition

Customers don't care about the technology stack. They care about one thing: "Will this help me get more repeat service jobs and stop losing customers because we forgot to follow up?"

1

Customer

2

Equipment

3

Service

4

Reminder

5

Follow-up

6

Repeat Service

This is the cycle that matters for an AC, RO, appliance, pest-control, solar or maintenance company. Every service job the platform records automatically schedules the next service reminder and a post-service follow-up — building a self-replenishing pipeline of repeat revenue.

Section 02 · Stack

A modern, containerised stack: Java 21 + Spring Boot on the backend, Next.js 16 on the frontend, PostgreSQL with row-level security for hard tenant isolation, Redis for performance and RabbitMQ for asynchronous notifications and reminders.

LayerTechnologyNotes
Backend runtimeSpring Boot 3.4.8 · Java 21REST API under /api context path; versioned resources under /api/v1
Backend buildMaven (wrapper) · MapStruct 1.6.3 · LombokDTO mapping via MapStruct; boilerplate via Lombok
SecuritySpring Security 6 · jjwt 0.12.6 · bcryptJWT access + refresh tokens (HS256), bcrypt hashing, RBAC
DatabasePostgreSQL 16 · Spring Data JPA (Hibernate) · FlywayFlyway migrations V1–V17 + dev seeds V901–V907; shared-schema multi-tenancy with RLS
Cache & rate limitRedis 7Token denylist, rate limiting (in-memory fallback), hot-read caching
MessagingRabbitMQ 3.13 (AMQP)Async notification & reminder delivery (dead-letter handling planned)
EmailSpring Mail (SMTP)Verification / reset / reminder emails; MailHog in dev; log-mode when app.mail.enabled=false
PaymentsRazorpay (REST)Subscriptions API + webhooks; simulated mode by default in dev, live via env config
SMSTwilio (opt-in)Activated with SMS_PROVIDER=twilio; fails open to console in dev
FrontendNext.js 16 · React 19 · TypeScript 5.7Standalone build served by nginx; app-router pages, server components
Frontend UITailwind CSS 4 · TanStack Query 5Corporate indigo design system; server-state caching for API data
API docsspringdoc-openapi 2.6Swagger UI (dev) at /api/swagger-ui.html, OpenAPI JSON at /api/v3/api-docs
TestingJUnit 5 · Testcontainers PostgreSQL · H2 · Vitest · RTLBackend tests on H2 (PostgreSQL mode) + Testcontainers; frontend unit tests in Vitest
DeliveryDocker Compose · GitHub Actions · GHCR · AWS EC2Local stack in docker-compose.yml; production stack via docker-compose.prod.yml on a single EC2 host (Phase 1)

Section 03 · Architecture

Deployment overview (Phase 1): Vercel/nginx (Next.js 16) → HTTPS /api/* → AWS EC2 (Nginx/ALB, Spring Boot) → PostgreSQL 16, Redis 7, RabbitMQ 3.13.

Request
  –> Nginx/ALB –> /api –> Spring Security (JWT) –> TenantFilter | set TenantContext
        v
  Controller –> Service –> Repository –> TenantAwareDataSource
                                          | SET app.current_tenant=<id>
                                          v
                          PostgreSQL 16 with FORCE ROW LEVEL SECURITY

Every tenant-scoped query is filtered twice: the application layers its tenant_id predicates on index-aligned (tenant_id, …) indexes, and PostgreSQL row-level security enforces the same boundary at the database — so a buggy query can never leak cross-tenant data.

Asynchronous notifications (RabbitMQ): Publisher (job status change, follow-up, subscription event) → publish JSON NotificationMessage → serviceflow.notification.exchange (direct, durable) → routing key serviceflow.notification.send → serviceflow.notification.queue → @RabbitListener consumer → persist IN_APP notification and fan out to EMAIL / SMS / WhatsApp providers. JSON via Jackson2JsonMessageConverter; poison-message dead-lettering planned for Phase 2. Redis supports rate limiting, the JWT denylist and hot dashboard reads.

Reminder engine: per-tenant fixed-delay scheduler (Spring @Scheduled) scans equipment.next_service_date − rule.days_before <= today; reminder_rules (service_category, days_before INT[], channels); dedupe via reminder_logs unique (tenant, equipment, rule, channel, days_before); insert reminder_log (PENDING) → publish to RabbitMQ → deliver channel (IN_APP · EMAIL · SMS) → mark SENT / FAILED (+ error_message).

Module boundaries (bounded contexts): com.magetech.serviceflow — config (Security, Web MVC, Redis, RabbitMQ, OpenAPI, JPA auditing, Jackson) · shared (ApiResponse/PageResponse, BaseEntity, exception handling) · tenant (TenantContext ThreadLocal, filter, interceptor, data source decorator) · auth (login/register/refresh/logout, JWT provider & filter) · user (users, Role enum OWNER/MANAGER/TECHNICIAN). Domain modules: customer, equipment, technician, job, followup, reminder, notification, subscription.

Security model: short-lived accessToken (15 min, JWT HS256) + long-lived refreshToken (7 days) stored hashed (SHA-256) in refresh_tokens with rotation & revocation; bcrypt passwords; single-use 2-hour password-reset token; RBAC (OWNER everything + billing/settings, MANAGER operations, TECHNICIAN assigned jobs); anti-enumeration on forgot-password; Redis rate limiting auth:login:<email>:<ip> (5/15min) and auth:forgot:<email> (3/hour) with in-memory fallback; Bearer-only auth (no cookies) so CSRF disabled; CORS permissive in dev, restricted in prod; RFC-7807-style 401s via RestAuthenticationEntryPoint.

Scalability roadmap: extract auth-service / notification-service / ai-service when load justifies (monolith-by-module keeps costs low now) · Kafka replaces RabbitMQ for higher-volume eventing (exchange abstraction keeps producers unchanged) · Kubernetes with Helm + HPA once the single EC2 host saturates (RLS stays the isolation invariant) · S3 for customer documents & job photos via pre-signed URLs · read-only replicas for reporting with tenant-aware routing intact.

Section 04 · Multi-tenancy & Data Isolation

Model: shared schema + tenant_id column. Every tenant-scoped table carries a tenant_id UUID and a composite (tenant_id, …) index. One PostgreSQL cluster serves all tenants — the most cost-efficient model for Phase 1 — while isolation is enforced at two independent layers:

Layer 1 — Application context

TenantFilter resolves the tenant at request entry (X-Tenant-ID header, falling back to the authenticated user's tenant) and stores it in TenantContext, a ThreadLocal<UUID>. TenantInterceptor always clears the context after the request so async work must propagate the tenant explicitly.

Layer 2 — Connection binding

TenantAwareDataSource decorates the connection pool; every getConnection() returns a TenantAwareConnection that runs SET app.current_tenant = '<tenantId>' on acquisition and resets it when returned to the pool.

Layer 3 — PostgreSQL RLS

Each tenant-scoped table is protected with ENABLE + FORCE ROW LEVEL SECURITY and a single tenant_isolation policy — even the database owner cannot read or write rows outside the current tenant.

-- applied to every tenant-scoped table (V14)
ALTER TABLE service_jobs ENABLE ROW LEVEL SECURITY;
ALTER TABLE service_jobs FORCE ROW LEVEL SECURITY;

CREATE POLICY tenant_isolation ON service_jobs
  FOR ALL
  USING (tenant_id::text = current_setting('app.current_tenant', true))
  WITH CHECK (tenant_id::text = current_setting('app.current_tenant', true));

RLS protected: customers, equipment, technicians, service jobs, follow-ups, reminder rules/logs, notifications, organizations, subscriptions. Not protected (no tenant context): tenants (registry), refresh_tokens (auth). This design scales — moving to Kubernetes or Kafka later does not touch tenancy; RLS stays the isolation invariant.

Section 05 · Feature Catalogue

Feature areaStatusHighlights
Roles & Access ControlImplementedOWNER / MANAGER / TECHNICIAN; JWT access (15 min) + hashed refresh (7 days, rotation & revocation); bcrypt; email verification; 2-hour password reset; no enumeration; Redis rate limiting on login/forgot.
Customer ManagementImplementedFull CRUD with profile, tags; paginated search by query (?q=) and city filter; duplicate-email guard per tenant.
Equipment / Asset ManagementImplementedAsset type, brand, model, serial, installation & warranty dates; serviceFrequencyMonths drives automatic nextServiceDate feeding the reminder engine; lifecycle status with per-asset notes.
Service ManagementImplementedHuman-readable sequential jobNumber; status flow NEW → SCHEDULED → IN_PROGRESS → COMPLETED | CANCELLED; technician assignment; priority; parts (JSON), labour, total and payment status; on completion sets completedAt and computes the next service date.
Technician ManagementImplementedSkills, service categories, weekly availability (JSON), status; optional TECHNICIAN user account link; filter by service category for smart dispatching.
Automatic Service RemindersImplemented SMS partialPer-tenant reminder_rules with days_before thresholds (30/15/7/1) and channels; idempotent background scheduler (dedupe index on reminder_logs); channels IN_APP, EMAIL, SMS (Twilio, opt-in); audited SENT/FAILED.
Follow-Up ManagementImplementedFollow-ups with assignee, date/time, notes, priority and opt-in reminders; daily scheduler (FOLLOWUP_CRON, default 07:00) raises DUE/OVERDUE once per follow-up.
DashboardImplementedLive summary: open jobs, jobs today / this week, active customers & equipment, due follow-ups, upcoming reminders, revenue this month, unpaid revenue, top technician; MoM revenue comparison.
CalendarImplementedDate-based service-job planning view with day-level scheduling and status colouring.
NotificationsImplementedIn-app inbox delivered asynchronously via RabbitMQ (job completed, follow-up due/overdue, reminders); event types JOB_COMPLETED, FOLLOW_UP_SCHEDULED, FOLLOW_UP_DUE, FOLLOW_UP_OVERDUE, REMINDER; mark one or all read.
Reports & AnalyticsPartialReports page with revenue and service-volume metrics; custom report builders, exports, churn-risk scoring and predictive scheduling are next milestone.
Subscription & SaaS BillingImplemented Live payments optionalServer-enforced limits (FREE 3/100/5, STARTER 5/1000/10, PROFESSIONAL 10/5000/25, BUSINESS 50/10000/100); Razorpay simulated by default (RAZORPAY_ENABLED=false activates plans instantly), live via signature-verified webhooks (subscription.activated / charged / payment.captured); HMAC-SHA256 verification of raw body.
AI FeaturesPlannedPredictive service scheduling, churn-risk scoring and auto-generated service notes; monthly AI credits in Professional / Business, overage billed separately.
API & Integration LayerImplemented Advanced plannedVersioned REST API at /api/v1 with ApiResponse<T> / PageResponse<T> envelopes; OpenAPI + Swagger UI (dev); Bearer-token auth, tenant-aware routing, pagination. Roadmap: API keys, webhooks, WhatsApp automation, ERP/accounting integration, customer portal.

Section 06 · Commercial — India Pricing (V1)

Positioning: "Never Miss a Service. Never Miss a Follow-up." The Professional plan is the featured offer. Before finalising any price, per-tenant infrastructure + WhatsApp/SMS + email + AI + support cost should be calculated to confirm gross margin.

PlanSuitable forSuggested price (monthly)
StarterSmall service business, 1–3 technicians₹999
Professional ★Growing business, 4–10 technicians₹2,499
Business10–25 technicians / multiple teams₹4,999
EnterpriseLarger / multi-branch companiesCustom (from ≈ ₹9,999)

Starter (₹999): 1 workspace, up to 3 users, customer management, equipment/asset management, service jobs, basic technician management, follow-ups, service reminders, dashboard & basic reports. Professional (₹2,499 ★): everything in Starter + up to 10 users, advanced scheduling/calendar, recurring services, automated reminders, WhatsApp/email integrations, technician mobile interface, invoices & payments, advanced reports, more automation. Business (₹4,999): everything in Professional + up to 25 users, multiple branches, advanced roles & permissions, advanced analytics, workflow automation, API access & webhooks, priority support, AI features with usage limits. Enterprise (₹9,999+/month): multi-branch, custom user limits & workflows, dedicated onboarding, custom reports, SLA, optional dedicated infrastructure, custom AI/automation. One-time implementation / onboarding fee always applies. No base subscription includes unlimited usage.

Section 07 · Billing — Annual Plans

Roughly 10–20% below monthly. Early-adopter annual plan rather than permanently discounting the product.

PlanMonthly ₹Yearly at 12 × monthlyAnnual — 10% offAnnual — 20% off
Starter₹999₹11,988≈ ₹10,789≈ ₹9,590
Professional₹2,499₹29,988≈ ₹26,989≈ ₹23,990
Business₹4,999₹59,988≈ ₹53,989≈ ₹47,990
EnterpriseCustom quote (annual pricing negotiated in the contract)

Section 08 · Implementation Fees & Add-ons

Implementation is never free for business customers. Fees cover business configuration, user setup, service categories, reminder configuration, data import, initial training, channel configuration and basic customisation.

PlanOne-time setup estimateNotes
Starter₹2,500 – ₹5,000Standard self-setup + guided onboarding
Professional₹5,000 – ₹15,000Includes data import & channel configuration
Business₹15,000 – ₹30,000Multi-branch setup, automation & API onboarding
Enterprise₹30,000 – ₹1,00,000+Dedicated onboarding, custom workflows & integrations
Add-ons (usage-based — never unlimited in base plans)
Add-onPricing model
Additional users≈ ₹199 – ₹399 / user / month
Additional branches≈ ₹999 – ₹2,499 / branch / month
Extra storageUsage-based (bytes stored per month)
WhatsAppPass-through at actual provider / conversation / template costs + optional MageTech platform fee
SMSPay-as-you-go or prepaid credits (actual provider cost)
AI usageMonthly credits included in Professional / Business; additional usage billed separately

Section 09 · ServiceFlow Custom

A dedicated "Custom Software" line protects SaaS pricing while capturing deals where companies want ServiceFlow personalised for their exact workflow.

OfferingPrice rangeWhat drives the bill
ServiceFlow SaaS₹999 – ₹9,999+ / monthStandard multi-tenant platform, subscription plans
ServiceFlow Custom₹2,00,000 – ₹10,00,000+Custom workflows · custom UI · ERP integration · CRM migration · accounting integration · WhatsApp automation · mobile application · customer portal · advanced AI · third-party integrations · multi-country requirements

Section 10 · International Pricing

Not a currency conversion of ₹2,499 — a separate international price structure adjusted by market and customer size protects margin where willingness-to-pay is higher.

PlanInternational starting price
Starter$19 / month
Professional$49 / month
Business$99 / month
EnterpriseCustom

Why teams choose ServiceFlow

Less admin, more repeat customers

Scheduling, reminders and follow-ups run automatically instead of living in someone's head or notebook.

Grow repeat revenue

Every completed service schedules the next one, so your customers keep coming back.

Keep technicians organised

Assign jobs by skill and availability, and give every technician a clear daily schedule.

Never forget a follow-up

Timely reminders and follow-up lists make sure no lead or customer is left behind.

Know your numbers

A live dashboard shows jobs, revenue, unpaid amounts and your best technician at a glance.

Grow without chaos

Add users, branches and automation as you scale — on plans that grow with your business.

Ready to never miss a service again?

Book a Free Demo · Explore Features · Works on mobile & desktop · Automated reminders · Your data stays yours

Repeat-service flywheel — Customer → Equipment → Service → Reminder → Follow-up → Repeat Service
Customer Management — one profile per customer with tags, search and full service history
Equipment / Asset Management — asset type, brand, model, serial, installation & warranty dates, service frequency, automatic next-service date
Service Jobs — auto job numbers (#1042), status flow New → Scheduled → In Progress → Completed, priority levels, parts used, labour & total amount
Scheduling & Calendar — day-wise visual planning of all services with time slots and status colouring
Technicians & Dispatch — skills, service categories, weekly availability, smart assignment by skill, technician mobile interface (Pro+)
Automatic Service Reminders — custom rules per service type, remind 30/15/7/1 day(s) before, in-app + email + SMS channels, no duplicate reminders
Follow-Up Management — follow-ups with assignee & due date, upcoming/overdue lists, automatic due-day notifications
Dashboard & Reports — jobs today/this week, pending follow-ups & reminders, revenue month-over-month, unpaid amounts, top technician
Notifications — job completed, reminder and follow-up alerts via in-app centre, email and SMS delivery
Invoices, Payments & Plans — invoices & payments (Pro+), payment status per job, online subscriptions (Razorpay), enforced plan limits
Roles & Permissions — Owner (full control & billing), Manager (operations & customers), Technician (their jobs & schedule)
API & Integrations — web APIs & webhooks (Business), WhatsApp & email integrations, paid SMS/WhatsApp at provider cost
AI Features (coming) — predictive service scheduling, churn-risk alerts, auto-generated service notes, AI credits on Pro & Business plans
Hard tenant isolation via PostgreSQL row-level security (FORCE RLS) — a buggy query can never leak cross-tenant data
JWT auth with 15-min access token + 7-day hashed refresh token (rotation & revocation), bcrypt passwords, no user enumeration
Redis-backed rate limiting on login & forgot-password with in-memory fallback
Async notifications & reminders via RabbitMQ 3.13 (JSON via Jackson2JsonMessageConverter)
OpenAPI docs + Swagger UI in dev at /api/swagger-ui.html
Docker Compose local stack and single-EC2 production stack via docker-compose.prod.yml
Platform Type Multi-tenant SaaS — Repeat-Service & Maintenance Management
Version 1.0 (V1)
License Subscription SaaS (+ ServiceFlow Custom software offering)
Backend Runtime Spring Boot 3.4.8 · Java 21
Backend Build Maven (Maven wrapper) · MapStruct 1.6.3 · Lombok
Security Spring Security 6 · jjwt 0.12.6 (HS256) · bcrypt
Database PostgreSQL 16 · Spring Data JPA (Hibernate) · Flyway (V1–V17, dev seeds V901–V907)
Multi-tenancy Shared schema + tenant_id, TenantContext (ThreadLocal), TenantAwareDataSource, FORCE ROW LEVEL SECURITY
Cache & Rate Limit Redis 7 (token denylist, rate limiting, hot-read caching; in-memory fallback)
Messaging RabbitMQ 3.13 (AMQP), direct durable exchange, Jackson2JsonMessageConverter
Email Spring Mail (SMTP) — verification / reset / reminders; MailHog in dev
Payments Razorpay subscriptions API + webhooks (HMAC-SHA256); simulated mode by default
SMS Twilio (opt-in, SMS_PROVIDER=twilio); console fallback in dev
Frontend Next.js 16 · React 19 · TypeScript 5.7 · Tailwind CSS 4 · TanStack Query 5
Authentication JWT access (15 min, HS256) + hashed refresh token (7 days) with rotation & revocation
Password Hashing bcrypt
API Docs springdoc-openapi 2.6 — Swagger UI (dev) at /api/swagger-ui.html
Testing JUnit 5 · Testcontainers PostgreSQL · H2 (PostgreSQL mode) · Vitest · React Testing Library
Delivery Docker Compose · GitHub Actions · GHCR · AWS EC2 (Phase 1: single host)
Scalability Roadmap Service extraction · Kafka eventing · Kubernetes (Helm + HPA) · S3 · read replicas
Roles OWNER · MANAGER · TECHNICIAN (RBAC)
ServiceFlow — Demo Document

View the complete product documentation below.

Loading PDF...
PDF viewing only — downloading is restricted
Related Products

You May Also Like

MTS AI WhatsApp CRM
Free 3 Months
₹4,999.00 /mo after trial
MTS Laravel RBAC Package
₹4,999.00 ₹2,999.00

Need Help Choosing?

Our team is ready to help you find the perfect solution for your business.

Get a Free Quote
Chat with us