Dashboard
Welcome Back, Badar Tanveer
Here's what's happening with your pipeline today.
Broadcast Review
Parked · sending disabled
Open Inbox
View all conversations
Bot Manager
Manage automation and AI
Meta Integration
Review WhatsApp and Meta setup
🗺️ How We Got Here
✅ Recently Completed
🔄 In Progress
📋 Upcoming / Awaiting Decision
Add an Action Item
To-Dos for Tomorrow
All Open Items
Performance - Last 14 Days
All Leads
| Name | Phone | Source / Campaign | Status | Assigned To | Added | |
|---|---|---|---|---|---|---|
| Loading… | ||||||
Import Leads
Upload a CSV with columns: name, phone, email, source, instrument (headers in row 1). A platform export (WhatChimp, etc.) usually has no Source column of its own - pick what these rows should be labelled below.
Team / Agents
Enter the agent's email + a temporary password. Leave User Metadata as
{}
(defaults to Agent role).Share the CRM URL + credentials with them. They appear here once they sign in.
| Name | Role | Joined | Status | Actions | ||
|---|---|---|---|---|---|---|
| Loading… | ||||||
Round-Robin Assignment
User Manager
| Name | Role | Joined | Status | Actions | ||
|---|---|---|---|---|---|---|
| Loading... | ||||||
User Permission
Admin
Full access: every lead and conversation regardless of assigned agent, KYC approval, transactions/payroll, Meta and WhatsApp integration settings, automation rules, and the ability to promote or suspend other users.
Agent
Sees only leads assigned to their own account and the related conversations, activity, KYC records, transactions, and communication logs. Can update and reply only within those assigned leads. Cannot approve KYC, change integration settings, promote or suspend users, or access another agent's leads.
Bot Manager
Bots / Accounts
KEYWORD_REPLIES_ENABLED is currently false, so testing or saving a rule here cannot message a customer. Changing that gate requires a reviewed function edit and redeploy, and every active rule would become eligible together. Review the complete list before requesting that change. This is the simplest real version on purpose; a visual drag-and-drop flow builder is a much larger, later phase.
Test a message
Type what a customer might send and see which rule matches. This only checks your rules, it does not message anyone.
| Keyword | Match | Reply | Active | |
|---|---|---|---|---|
| Loading… | ||||
Create Keyword Reply
| Name | Category | Lang | Status | Body | |
|---|---|---|---|---|---|
| Loading… | |||||
Create Template
FOLLOW_UPS_ENABLED is also false. Real sending therefore requires two separately reviewed changes: install and activate the intended schedule, then change and redeploy the function gate. Review every active sequence and its audience before requesting either change.
Test a lead
Pick a status and how long a lead has been sitting in it, to see which follow-ups would fire. This only checks your rules, it does not message anyone.
| Name | When | Message | Active | |
|---|---|---|---|---|
| Loading… | ||||
Create Follow-up
AI Configuration
Enable agents and set the provider for the selected bot.
AI_REPLIES_ENABLED, read live from the settings table by the deployed whatsapp-webhook function on every message - a genuine toggle, not a hardcoded constant, since 2026-08-23. Flipping a gate off from the table below takes effect on the very next inbound message, no redeploy needed; flipping one on asks for confirmation first. The live status below is read from what this CRM knows, not guessed.
| Gate | What it controls | State |
|---|
AI Provider
The key the webhook will use for tryAIReply() once AI_REPLIES_ENABLED is flipped on. Saved to this CRM's own settings table only - never sent anywhere else from this screen.
AI Agents
Create agents with their own system prompt and knowledge. Enable and route them from AI Configuration.
| Agent | Knowledge | Status | |
|---|---|---|---|
| Loading… | |||
Create Agent
AI_REPLIES_ENABLED is a live toggle read from settings on every message (not a hardcoded constant), currently on - the deployed webhook genuinely answers real customers with it, confirmed live since 2026-08-19. Turn it off from the "Live reply gates" table in AI Configuration if it ever needs to stop fast; that takes effect on the next inbound message, no redeploy needed. Preview below shows exactly what the AI is being told right now.
Preview what the bot would be told
Assembles a campaign into the exact instructions an AI would receive. This builds the text only, it makes no AI call and sends nothing.
| Campaign | Bot Number | Prompt | Active | |
|---|---|---|---|---|
| Loading… | ||||
Create Training Campaign
Appointments
| When | Title | Contact | Owner | Status | |
|---|---|---|---|---|---|
| Loading… | |||||
Book Appointment
Settings
Business defaults are managed here. Sensitive Meta and WhatsApp credentials remain in Meta Integration, and access changes remain in User Manager.
Workspace
Applied when an Admin records a new deposit or withdrawal. Existing records keep their original currency.
Lead operations and security
Connected administration
Webhook, phone-number ID and WhatsApp API configuration.
Choose operational alerts and review notification status.
Manage salary setup, commission rules and payroll runs.
Connect WhatsApp
Manage numbers, sync info, and connection health - real data, checked live against Meta.
Saves a new number for reference. Making it actually send or receive real messages is a separate step (real Meta credentials + a code change) that still needs Muhammad's own laptop, the same way 6541 and 3903 were each really connected.
Business Accounts
Meta Integration
Meta Lead Ads and WhatsApp webhook processing run via a Supabase Edge Function.
Settings are saved to the
settings table for reference.
WhatsApp Connection Health
Moved to its own Connect WhatsApp section in the sidebar - it now shows both real numbers (6541 and 3903), not just one.
Meta Lead Ads
WhatsApp Webhook
1. Copy the Webhook URL below and paste it into
Meta Developer App → WhatsApp → Configuration → Webhook URL
2. Set a Verify Token (any secret string), save it here, then paste the same value into Meta.
3. After saving, deploy the Edge Function:
supabase functions deploy whatsapp-webhook --no-verify-jwt4. Set
WHATSAPP_VERIFY_TOKEN + SUPABASE_SERVICE_ROLE_KEY as secrets inSupabase Dashboard → Settings → Edge Functions → Manage secrets
Automation
Sending via WhatsApp, Twilio (SMS) or SendGrid (email) requires API credentials - rules are stored and fired to console until those are configured. Use {{name}}, {{phone}}, {{status}} as template variables.
| Rule Name | Trigger | Action | Active | |
|---|---|---|---|---|
| No rules yet. Create one below. | ||||
Create Rule
Reports
Agent Performance
| Agent | Leads Assigned | Converted | Conversion % | Recorded Deposits |
|---|---|---|---|---|
| Loading… | ||||
Live Campaign Funnel
Only the live click-to-WhatsApp campaign - excludes the WhatChimp historical import, which hasn't been contacted yet and would otherwise drown out real activity.
Lead Source Breakdown
Monthly Trend - New Leads (Last 6 Months)
Financial Summary
Landing Pages
Badar Trader Hub
https://preview--profit-path-crm.lovable.app/
💡 This is your lead capture landing page. Share this link in your Meta ads.
Add New Landing Page
Connect additional landing pages or funnels here.
Guide
What each section of this dashboard is for, and why it matters from where you sit as the owner/admin - running the whole business, not one desk of it. Agents get their own version of this Guide, written for their own day-to-day, not this one copied over.
Dashboard
The whole business at a glance: total/new/converted leads, active agents, recorded client account balances, and pipeline-stage gauges (Conversion Rate, New Lead Share, Qualified Rate, Needs Human Rate) you can slice by time frame (Today / 7 / 30 / 90 days / All Time) to spot trends, not just today's snapshot.
CRM Development Progress
A running build log of the CRM itself - what's shipped, what's underway, what's still open - and the real project history as a set of phases from day one. This exists so you can see what's actually been built without asking; the "Send Update to Badar" button pushes the same content to your WhatsApp on demand.
Action Items With Badar
A shared daily to-do list between you and Muhammad, with a "To-Dos for Tomorrow" view and a performance chart tracking both of you - a missed item only counts against you if it's past due AND has no reason on file, so a genuine explanation is never scored as a failure.
All Leads
Every lead in the system, across every agent - filter by status, agent, or source to check coverage and follow-up discipline across your whole team, not just one desk.
My Team
Every agent, their role, and account status - promote, suspend, or set who's actually in the new-lead rotation. This is a staffing/access control, not a to-do list.
Meta Ads
Live campaign metrics from Meta Ads Manager: impressions, clicks, cost per lead, spend - the marketing spend that's producing every lead everyone else in this CRM is working.
Import Leads
Manually create a single lead, or bulk-import many at once via CSV - the entry point for leads that didn't come in through the connected channels below.
Omnichannel Inbox
Every real WhatsApp, Facebook and Instagram conversation across every agent, ordered by real urgency (a deposit screenshot outranks a "thanks"). As admin this is your oversight view of what's actually happening customer-side right now, not just your own queue.
Bot Manager
Where the bot's system prompt and knowledge notes are managed, and where the live reply gates (AI/Bot/Keyword replies) can be turned on or off for real, immediately, without a redeploy. This is the actual stop button if the bot needs to go quiet fast.
An agent's own number never gets a bot reply
If an agent texts the business number from their own phone (the same one saved as their contact in My Team), the webhook recognizes it as an agent, not a customer, and routes it to a separate path meant only for acknowledging lead-assignment notifications - a plain message like "Hi" is silently ignored there: no lead, no reply, no communications row. If an agent reports "the bot didn't reply to my test," check whether they used their own registered contact number first - it's by design, not a fault.
Manage Subscribers
The list of people who receive trading signals - a real table now, separate from your lead pipeline, since a subscriber isn't necessarily a lead being worked.
Meta Integration
WhatsApp Business API credentials, access tokens, and webhook settings, plus the live connection-health check. This is the backend wiring that everything customer-facing depends on - admin only for exactly that reason.
Socials (Facebook / Instagram / TikTok)
Each connected channel's own real status. Facebook and Instagram are staged the same way as the second WhatsApp number - real messages become real leads, no automated reply goes out yet. TikTok is marked honestly as not built, not hidden or hinted at as ready.
Comm Log
A running log of every communication - WhatsApp, call, email, note - across every lead and every agent. Where Omnichannel Inbox is a live conversation view, this is the audit trail: "did anyone follow up with this person," across the whole team, without opening each lead one by one.
Reports
Aggregated numbers: conversion rate, agent performance, lead source performance, financial summary - the business-level view, not any one lead's story.
Automation
Where automated rule triggers live. Currently a stub, no real sending wired up yet.
Payroll
Agent payroll and commission tracking tied to converted leads - a financial function, admin only by nature.
Broadcast Signal
Where a trading signal gets composed and sent out to subscribers - parked, sending disabled, until a real delivery mechanism is decided.
AI Signals
Automated signal generation. Currently a placeholder, pending a decision on whether to use real technical indicators or human-picked signals.
Notifications
Settings for what alerts fire and to whom - who actually gets pinged when a lead needs attention, across your whole team.
Sites
Public-facing landing pages and domains connected to this CRM.
User Manager
Every admin and agent with access to this CRM - promote, suspend, or check when someone joined. Who can get in at all, not what any one person is doing.
User Permission
A reference for what Admin vs Agent can currently do. Roles themselves are changed from User Manager, not here - there is no separate per-feature toggle yet.
A note on agent access
Agents see only leads assigned to them and the records attached to those leads. CRM Development Progress, Action Items With Badar, Reports, Automation, Payroll, and Settings stay admin-only - the sections that describe running the business, not working an individual lead.
Payroll Calculator
Salary Setup
| Agent Name | Base Salary ($/month) | Commission % |
|---|---|---|
| Loading agents… | ||
Saved Payroll Runs
| Created | Period | Agents | Eligible Deposits (USD) | Total Pay | |
|---|---|---|---|---|---|
| No saved payroll runs yet. | |||||
Meta Analytics
Campaign Performance
| Campaign | Impressions | Reach | Clicks | CTR | Spend | Leads | CPL |
|---|---|---|---|---|---|---|---|
| Click "Fetch Data" to load your campaign metrics. | |||||||
Pixel Events
| Event | Total Fires | Unique Users |
|---|---|---|
| Add your Pixel ID in Meta Integration settings to see pixel event data. | ||
Notifications
Choose how your team members are notified when a new lead is assigned to them.
Broadcast Signal
| Time | Signal | Instrument | Entry | TP | SL | Recipients | Outcome |
|---|---|---|---|---|---|---|---|
| No signals sent yet | |||||||
Manage Subscribers
| # | Name | Phone | Community | Source | Added | Status | |
|---|---|---|---|---|---|---|---|
| Loading subscribers… | |||||||
Select a subscriber
Click a row to view and edit their details
AI Signal Generator
| Date | Instrument | Type | Entry | TP | SL | R:R | Outcome | Pips |
|---|---|---|---|---|---|---|---|---|
| No signal history yet. Start broadcasting to track accuracy. | ||||||||