Fadhil Official Logo
Fadhil NuruzzamanSoftware Engineer
Fadhil Official Logo
Internal Business ApplicationPT Raja Rak Indonesia2026

RajaRak App: Chat Lead Rotator & Analytics

RajaRak App is an internal admin tool built for Raja Rak Indonesia's marketing team, routing WhatsApp inquiries from across the company's growing network of business websites to available marketing staff on a fair, round-robin basis, backed by a full analytics dashboard to track where every click comes from

Preview

Walk Through the Site

A scrollable look at the finished site, exactly as a visitor would browse it

RajaRak App: Chat Lead Rotator & Analytics desktop preview

Desktop

RajaRak App: Chat Lead Rotator & Analytics mobile preview

Mobile

Tech Stack

Technologies Powering the Build

The tools and technologies that came together to bring this project to life

HTML logo
CSS logo
PHP logo
Laravel logo
Filament logo
MySQL logo
Tailwind CSS logo
VSCode logo
Claude logo
GitHub logo

Roles

A Skill-by-Skill Breakdown

Each project draws on a mix of disciplines, here’s how they came together on this one

Web Development

  • Built the backend with Laravel and PHP, using a service-layer architecture that keeps business logic, like the rotation and click-filtering logic, separate from models and controllers
  • Built the round-robin rotation logic with database-level locking to stay safe under concurrent clicks from multiple websites at once
  • Built a reload-safe redirect flow so a customer refreshing the page always lands on the same marketing contact instead of a new one
  • Implemented bot and crawler detection through user-agent and traffic-pattern analysis, keeping analytics free of automated noise
  • Added rate limiting to guard against automated traffic abuse without blocking real customers
  • Built the admin panel with Filament, including full CRUD management for websites and marketing team members
  • Built the analytics dashboard, click trends, top-performing websites and marketing contacts, and device breakdowns, filterable by time period
  • Built a CSV export feature for click reports
  • Wrote automated tests covering the rotation logic, click filtering, and related edge cases
  • Set up an automated deployment pipeline that pulls the latest code, installs dependencies, runs migrations, and rebuilds cache in one step

Web Design

  • Designed the admin panel's information architecture around many websites and their marketing team, keeping analytics, website management, and team management clearly separated
  • Localized the entire admin interface in Bahasa Indonesia for the team's day-to-day use
  • Designed the analytics views, trend charts, top-5 lists, and device breakdowns, to surface the most useful numbers at a glance without overwhelming the team
  • Designed a clear visual distinction for flagged, suspicious clicks in the click detail view, so the team can spot them for manual review without digging through raw logs
  • Designed the website management flow around each site's redirect link and embed snippet, so setting up a new website follows a consistent, repeatable process

Graphic Design

  • Created the admin panel's image assets and laid out the existing company logo to fit the interface
  • Created the site's favicon
  • Compressed every image to WebP and under 200KB before upload, without a visible drop in quality

Digital Marketing

  • Built the WhatsApp lead-rotation system itself, turning it into an internal marketing operations tool that fairly distributes inbound leads across the team
  • Gave the marketing team visibility into their own performance, response speed, and lead volume through the analytics dashboard, instead of operating blind
  • Made it possible to see which of the company's many websites are actually driving engagement, so marketing effort can be prioritized where it matters most
  • Kept click and lead data clean of bot and fake traffic, so marketing decisions are based on real customer interest, not noise
  • Wrote embeddable WhatsApp CTA snippets for WordPress and Blogger sites, standardizing how fast a lead-capture channel can be rolled out to any new website the company launches
  • Directly solved a lead-distribution problem, making sure no single marketing staff member is overloaded while others sit idle

Highlights

Behind the Scenes

A closer look at what the finished product offers, the obstacles along the way, and what came out of it

Key Features

  • Fully responsive design across desktop and mobile devices
  • Optimized images for fast loading
  • Round-robin WhatsApp link rotator distributing inquiries fairly across the marketing team
  • Reload-safe redirects, a customer who reloads the page keeps reaching the same marketing contact instead of a different one
  • Built-in bot filtering and suspicious click detection to keep analytics data clean
  • Analytics dashboard with click trends, top-performing websites and marketing staff, and device breakdowns
  • Adjustable time-period filters (today, 7 days, 30 days, all time) across analytics views
  • Per-website click detail, including flagged suspicious activity for manual review
  • Rate limiting to guard against automated traffic abuse
  • CSV export for click reports
  • Full admin panel to manage websites and marketing team members
  • Ready-to-embed WhatsApp CTA snippets for WordPress and Blogger sites
  • Fully localized admin interface in Bahasa Indonesia
  • In-app usage guide (Panduan Penggunaan) grouped by feature area

Challenges Faced

Keeping Redirects Fair and Consistent

Rotating WhatsApp leads fairly across the marketing team, while making sure a customer who reloads the page always lands on the same contact, required careful state management with database-level locking to stay safe under concurrent traffic

Keeping Click Analytics Clean

Bot traffic, uptime monitors, and automated crawlers could easily pollute analytics with fake clicks, solved with layered filtering that keeps the dashboard's numbers trustworthy without needing manual cleanup

Serving Many Websites From One System

Each of the company's business websites needed its own redirect link, message template, and rotation pool, all managed from a single admin panel instead of duplicating logic per site

Lessons Learned

  • Building a fair, concurrency-safe rotation system taught real lessons about database locking under simultaneous requests
  • Keeping business logic in a dedicated service layer, not the models or controllers, made the rotation and click-filtering logic much easier to test in isolation
  • Filtering out bot and suspicious traffic turned out to be just as important as tracking real clicks, since bad data can be worse than no data at all

Impacts

Problems Solved After Launch

How this project changed things for the business and its users after launch

Fair lead distribution

Consistent contact per customer

Trustworthy click data

Centralized, scalable management

Images under 200KB

Consistent redirects under load

Built for continuous data growth

Full click analytics

Isolated, testable logic

One-step automated deploys

Self-service usage guide

Critical Fix

Leads Landing on One Overloaded Contact

Before

Without rotation, WhatsApp inquiries across the company's business websites could all funnel to the same marketing contact, leaving others idle and slowing response time

After

Leads now rotate fairly across the whole marketing team, keeping response times balanced and no one overloaded

Critical Fix

Customers Reaching a Different Contact After a Page Reload

Before

Without protection, a customer reloading the page could get redirected to a different marketing contact than before, turning one conversation into a confusing back-and-forth with two different people

After

Reload-safe redirect logic keeps a customer locked to the same contact, keeping every conversation consistent from click to close

Critical Fix

Fake Clicks Skewing Business Decisions

Before

Bot traffic, crawlers, and automated monitors could inflate click numbers, making some websites or marketing contacts look more effective than they really were

After

Layered bot and suspicious-click filtering keeps analytics numbers trustworthy, so decisions based on this data reflect real customer interest

Critical Fix

No Way to Scale Beyond a Handful of Websites

Before

Managing WhatsApp redirects and rotation by hand across a growing number of business websites would not scale as the company kept adding new ones

After

A single admin panel now manages every website, marketing contact, and rotation pool from one place, ready to grow with the business

Performance

Slow-Loading Pages From Unoptimized Images

Before

High-resolution images across the site, not just one section, risked slowing down every page

After

Every image across the site is compressed to WebP and kept under 200KB, keeping pages fast without a visible drop in quality

Performance

Slow or Inconsistent Redirects Under Concurrent Load

Before

Simultaneous clicks arriving from many websites at once risked race conditions when picking the next marketing contact, or a slow redirect under load

After

Database-level locking keeps rotation selection fast and consistent even under concurrent traffic, with redirects staying near-instant

Performance

A Click Log Growing Without a Performance Plan

Before

A click log that grows continuously from real-time traffic across many websites risked slowing down over time without the right query patterns and indexes

After

Query patterns and indexes were planned upfront for a table that keeps growing, keeping analytics queries fast as data accumulates

Improvement

No Visibility Into Where Leads Come From

Before

There was no way to see which website or marketing contact was generating the most engagement

After

A full analytics dashboard now tracks click trends, top-performing websites, and marketing contacts, with CSV export for deeper reporting

Improvement

Business Logic Scattered and Hard to Test

Before

Rotation and click-filtering logic mixed directly into models or controllers would be difficult to test in isolation and reuse elsewhere

After

A dedicated service layer keeps this logic clean, testable, and reusable, verified with automated tests

Improvement

Manual Deployment Steps Prone to Mistakes

Before

Deploying updates by hand across multiple steps, pulling code, installing dependencies, migrating, rebuilding cache, risked mistakes or skipped steps

After

A single deployment script automates the full process consistently every time

Improvement

No Self-Service Way for the Team to Learn the System

Before

Without documentation, the marketing team would need to ask for help every time they needed to use a feature

After

A built-in usage guide, grouped by feature area, lets the team learn the system on their own