Selected work

Case study 04

Sales CRM. From the first contact to close, in one system.

A platform that connects lead sources, assigns them across the team, and follows each lead to close. The team needed a daily operating system, not another spreadsheet.

Sector
Sales operations
Type
CRM for intake, assignment, and follow-up
Role
End-to-end owner: the sales process, the lead path, the product, the sources, and release

The business problem

  • A new lead arrived late, or was assigned by hand, so the first reply was slow.
  • The same phone number was recorded more than once.
  • Follow-up depended on memory: interested in 7, 15, or 30 days, callback, no answer.
  • Management could not see who was late, who was performing, or how leads spread across campaigns.
  • Customer data was fully visible in daily work.

What the system changes

Operating counts and timings are not listed.

Immediate intake

A Meta lead ad enters through a webhook. A general path covers TikTok, Google, LinkedIn, the website, or Zapier / Make.

Fair assignment

Round-robin to the rep with the fewest active leads, with a notification, or pinned to a person or campaign.

Duplicates are stopped

By mobile number or an external id, before the lead is a new opportunity.

Follow-up is a list

Stages: New, Interested 7 / 15 / 30, Callback, Thinking, No Answer, Won, Lost. Late leads appear on the Delay List.

Daily supervision

Volume, the delay list, and a ranking by performance points.

Shared work

Manual entry, Excel import up to 1,000 rows, export, bulk assign, and bulk stage change. Every edit is logged.

Data protection

Numbers are masked in lists. Roles: Sales Rep, Manager, Admin, Super Admin. Integrations are for administration only.

System workflow

No customer names, full phone numbers, tokens, or account ids.

Sources

  1. Meta Lead Ads
  2. Webhook
  3. Website, Google, TikTok, Zapier
  4. Excel
  5. Manual entry

Intake

  1. Create the lead
  2. Normalize and remove duplicates

Assignment

  1. Default owner, or
  2. Round-robin

Pipeline

  1. New
  2. Interested 7 / 15 / 30
  3. Callback, Thinking, No Answer
  4. Won or Lost

A lead is cleaned, assigned, and moved until Won or Lost. Management sees late leads on the dashboard.

Technical architecture

The browser talks to API routes. The server checks the session and the role, then reads and writes in Supabase. Creating a lead is one path. If a source fails, the inbound event is still visible.

InterfaceNext.js 16, React 19, TypeScript, Tailwind CSS 4, Arabic and English with RTL
DataSupabase Postgres, service role on the server
AuthNextAuth
Lead adsMeta Graph API and OAuth
Other sourcesWebhooks with rate limiting
HostingVercel