Skip to main content

Qontak | CRM | Workspace Homepage — Phase 1: SDR Workspace

Template: PHASE PRD v1.4 · Companion to PRD Section Reference v1.5 + Hierarchy v1.0 PRD Type: PHASE — Phase 1 of the Reimagine CRM Workspace initiative


HEADER BLOCK

FieldValue
PMPM Qontak Group
PRD Version1.2
StatusDRAFT
PRD TypePHASE
EpicQON-16894
SquadQontak CRM Squad
RFC LinkN/A — no RFC required
Figma MasterWorkspace Prototype
Anchor[TBD — Workspace Homepage ANCHOR PRD to be published in Confluence]
Labelsepic:[Reimagine CRM Workspace 1st delivery] | module:[workspace] | feature:[qontak]
Last Updated2026-07-21

Table of Contents


CONDITIONAL BLOCK: PHASE CONTEXT

FieldDetail
Anchor PRD[TBD — Workspace Homepage ANCHOR PRD (Confluence link TBD)]
Phase NumberPhase 1 of 3
Phase GoalDeliver the SDR Workspace as the default post-login landing page — comprising Today's Priorities (3-card daily checklist), Quick Actions (navigation shortcuts), This Month's Progress (monthly KPI summary), and Daily Progress (operational activity recording page) — enabling SDR users to manage daily priorities and track monthly performance from a single surface.
Prior phasesN/A — this is Phase 1, no prior phases.
This phaseToday's Priorities (3 fixed priority cards with dynamic states), Quick Actions (5 navigation shortcuts), This Month's Progress (6 monthly KPI metrics driven by Daily Progress), and Daily Progress (operational page for daily activity recording).
Deferred to nextPhase 2 (August): BD Workspace. Phase 3 (September): AM Workspace. Leader Workspace (monthly target configuration and management): timeline TBD. Knowledge Base widgets: outside Q3 scope.
Cross-phase depsWorkspace page routing, Daily Progress data model, and Monthly KPI aggregation logic established in Phase 1 MUST remain stable for Phase 2/3 BD and AM onboarding — no breaking changes to platform contracts.

1. One-liner + Problem

One-liner: Enable SDR users to manage daily priorities, record activities, and track monthly KPI progress from a single, role-personalized Workspace homepage within Qontak, without switching between modules.

Problem: SDR users currently spend 10–15 minutes each morning manually navigating 4–5 separate modules (Inbox, Deals, Activities, Tasks, Contacts) to understand what requires attention — with no built-in prioritization signal, no aggregated cross-module view, and no proactive alert for time-sensitive items. High-priority leads sit uncontacted for hours; daily activity recording is disconnected from performance tracking; product adoption remains shallow because users never develop a "home" habit inside Qontak.

For full initiative context, see the Workspace Homepage ANCHOR PRD (link TBD).


2. What Happens If We Don't Ship This Phase

  • SDR users continue the 10–15 min daily context-switching routine across modules with no improvement through Q3 — compounding user frustration and slowing CRM habit formation during the critical post-onboarding window.
  • High-priority leads remain uncontacted for hours due to the absence of any aggregated priority signal, directly reducing pipeline velocity.
  • BD Workspace (Phase 2, August) and AM Workspace (Phase 3, September) cannot be onboarded without the platform foundation this phase delivers — a slip on Phase 1 delays the entire Q3 roadmap.
  • The "Make the Intelligence Promise Real" OKR (Theme 1) loses its primary Q3 vehicle.

3. Target Users + Persona Context

PersonaRoleGoalPainWorkaround
Primary — SDR StaffSales Development Representative (Individual Contributor) responsible for daily pipeline execution: responding to unanswered customer conversations, recording daily activities, and tracking monthly KPI progress.Start the workday knowing exactly what requires attention, process priority actions consecutively, and record daily activities without navigating across modules.Opens Inbox, Daily Progress, and reporting tools separately each morning — 10–15 min of navigation with no built-in prioritization. Unanswered conversations sit unattended; daily activity recording is disconnected from monthly performance tracking.Manually reviews each module; builds personal mental model of today's priorities. No system support.
Primary — SDR LeadSales Development Representative (Team Lead) responsible for personal execution and monitoring team health.Execute daily tasks while maintaining visibility into team performance without switching to separate reporting tools.No unified view combining personal execution priorities and team-level health signals — must switch between modules and pull reports manually.Same module-switching as SDR Staff, plus manual report pulls for team status. Reactive rather than proactive.
Out of scope (Phase 1)BD (Phase 2, August). AM (Phase 3, September).

Full persona background: see Workspace Homepage ANCHOR PRD (link TBD). See Constraints section for feature flag scope and plan availability.


4. Non-Goals

Scoped to Phase 1 only. Items marked "Phase N" are deferred to the specified phase, not ruled out.

  1. Mobile / native app Workspace — Phase 1 is web only. Mobile support deferred.
  2. BD persona widget set — Deferred to Phase 2 (August).
  3. AM persona widget set — Deferred to Phase 3 (September).
  4. Knowledge Base widgets — Timeline TBD; outside Q3 scope.
  5. Leader Workspace — Monthly target configuration, team management, and team-level reporting are out of scope for Phase 1. The Leader Workspace will be developed separately and its monthly target data will be consumed read-only by the SDR Workspace.
  6. Monthly target configuration UI — SDR Workspace displays targets read-only. Creating, editing, deleting, or assigning monthly targets is not in scope. This includes: per-user target assignment, team target configuration, historical target management, and "Best This Month" calculation logic configuration.
  7. Zoho pipeline idle detection — Priority 1 (Zoho Pipeline Reminder) acts as a static shortcut in Phase 1. Automated detection of pipelines idle beyond configurable thresholds is a future enhancement.
  8. Configurable 30-second reply threshold — The 30-second authentic reply threshold for Priority 2 (Customers Waiting) is a fixed heuristic in Phase 1. Making it configurable is a future enhancement.
  9. Inline / modal Quick Actions — Quick Actions are navigation shortcuts only; no inline form or modal within the Workspace frame.

5. Constraints

FieldValue
PlatformWeb only. No mobile or native app support in Phase 1.
PerformanceWorkspace fully interactive within p95 ≤ 3s from page load.
Today's PrioritiesAlways displays exactly 3 priority cards. Cards never disappear — they transition between states.
Daily Record creationToday's Daily Record is NOT automatically created. Creation occurs only when the user explicitly clicks Start Progress inside the Daily Progress page. Behind the scenes, clicking Start Progress creates a CRM Task (Task Type: Daily Progress) in the Qontak Task module — the Workspace manages this automatically; users never create or manage Task records manually.
One Daily Progress Task per dateOnly one Daily Progress Task may exist per user per date. The system must prevent duplicate Tasks for the same user and date under all conditions.
Monthly targetsRead-only within SDR Workspace. Monthly targets are managed in the Leader Workspace and consumed as read-only data.
Real-time syncThis Month's Progress and Today's Priorities must reflect updates to Daily Progress without requiring a manual page refresh. If real-time sync is unavailable, a manual Refresh button is the accepted fallback.
Authentic reply thresholdPriority 2 (Customers Waiting) applies a 30-second threshold: a reply sent within 30 seconds of an Email or WhatsApp Broadcast delivery is treated as automated and does not count as an authentic human reply.
Priority 2 scopeCustomers Waiting for Your Reply only surfaces conversations assigned to the logged-in user.
Priority 3 required fields9 fields constitute a complete Daily Record: Email Blast, WABA Blast, Call Attempted, Feedback Email, Feedback WhatsApp, SQL, Success Meeting, Won, New MRR.
Quick ActionsNavigation shortcuts only — no inline operation within Workspace frame.
Feature flagworkspace_homepage_enabled — per CID, default OFF.
ExtensibilityWorkspace page architecture must support Phase 2/3 persona onboarding without re-engineering the platform core.

6. New Features

6.1 Workspace Homepage

FieldDetail
URL/workspace (final path TBD with Engineering)
AccessCRM users whose CID has workspace_homepage_enabled = ON. Default post-login landing page when flag is ON.
Default stateRenders Today's Priorities (3 cards), Quick Actions, and This Month's Progress sections on load. Daily Progress is a separate page accessible via CTAs.

Component Tree:

ComponentParentPurpose
WorkspacePageTop-level container; handles feature flag check, role resolution, section orchestration
WorkspaceHeaderWorkspacePagePage header: user greeting, date
TodaysPrioritiesSectionWorkspacePageRenders 3 fixed priority cards with dynamic states
ZohoPipelineReminderCardTodaysPrioritiesSectionPriority 1 — static shortcut to Zoho; Coming Soon badge
CustomersWaitingCardTodaysPrioritiesSectionPriority 2 — unanswered conversation count and expandable list
WorkProgressReminderCardTodaysPrioritiesSectionPriority 3 — daily record state (Not Started / In Progress / Completed)
QuickActionsSectionWorkspacePage5 static navigation shortcuts
ThisMonthsProgressSectionWorkspacePage6 monthly KPI metrics with progress bars; real-time sync + Refresh fallback

UI States (Workspace Page Level):

StateDescription
LoadingWorkspace sections render skeleton loaders on page load.
Empty (No Team)No sections rendered. Message: "Your Workspace hasn't been configured yet. Please contact your administrator to assign your Team and Staff Level."
ErrorPer-section error handling; no page-level error state.
SuccessAll sections rendered and interactive.

Prototype: Workspace Homepage


6.2 Today's Priorities

Purpose: Surface the three most important actions for the SDR's workday as a daily checklist. All three cards are always displayed; they never disappear — they transition between states based on real-time data from Daily Progress and Qontak Inbox.


Priority 1 — Zoho Pipeline Reminder

FieldDetail
Always displayedYes — static card, no conditional rendering.
BadgeComing Soon
Description"Soon you'll be able to monitor pipelines that haven't been updated in Zoho directly from Workspace. For now, continue managing your pipeline in Zoho."
CTAOpen Zoho
BehaviorNavigates user to Zoho in a new tab. No pipeline idle validation in Phase 1.
Future enhancementDetect pipelines not updated within configurable thresholds (e.g., 24h, 3 days, 5 days).

Priority 2 — Customers Waiting for Your Reply

FieldDetail
Data sourceQontak Inbox
ScopeConversations assigned to the logged-in user only.
Authentic reply definitionA reply is authentic only if it is sent more than 30 seconds after an Email Broadcast or WhatsApp Broadcast message is delivered. Replies within 30 seconds are treated as automated (chatbot, welcome messages, workflow triggers) and do not count.

States:

StateConditionBadgeDescriptionCTA
Pending≥ 1 unanswered conversation assigned to userX UnansweredExpandable list of latest 3 conversations (customer name, waiting duration, latest customer message).View My Inbox — opens Inbox filtered by Assignee = logged-in user, Status = Unanswered.
Completed0 unanswered conversationsCompleted (green check icon)"You've replied to all assigned customer conversations." Card remains visible.

Priority 3 — Complete Today's Work Progress

FieldDetail
Data sourceDaily Progress — today's Daily Record only.
Required activitiesEmail Blast, WABA Blast, Call Attempted, Feedback Email, Feedback WhatsApp, SQL, Success Meeting, Won, New MRR (9 total).
Card visibilityAlways displayed — never disappears.

States:

StateConditionBadgeDescriptionCTACTA Behavior
Not StartedToday's Daily Record does not exist.Not Started"You haven't started recording today's work yet."Start ProgressOpens Daily Progress page; scrolls to today's record; highlights the Start Progress button. Does NOT create today's record.
In ProgressDaily Record exists; ≥ 1 required field is empty.X Fields Remaining (e.g., "7 Fields Remaining")"You've started recording today's activities. Complete the remaining fields before ending your workday."Continue ProgressOpens Daily Progress page; scrolls to today's record. Remaining field count updates automatically as fields are filled.
CompletedAll 9 required fields contain values.Completed (green check icon)"Great work! All required activities have been recorded today."Review ProgressOpens Daily Progress page. Card remains visible.

6.3 Quick Actions

Purpose: Provide SDR with navigation shortcuts to commonly used tools. Static section — no data fetch, no auto-refresh.

OrderActionDestinationURLNotes
1Data ValidationData Validation pageTBCFull navigation — new tab where applicable.
2Email BroadcastYAMM or MoengageYAMM: https://mail.google.com/mail/u/0/#drafts / Moengage: https://dashboard-04.moengage.com/v4/campaigns/allFull navigation.
3WhatsApp BroadcastWhatsApp Broadcasthttps://chat.qontak.com/campaign/whatsapp/one-timeFull navigation.
4Create Zoho Pre-leadZoho Outbound Pre-leadTBCFull navigation.
5Data EnrichmentComing Soon — disabled; no navigation in Phase 1.

6.4 This Month's Progress

Purpose: Provide a month-to-date summary of the SDR's performance against monthly KPIs. Represents accumulated performance rather than today's activities. Enables SDRs to monitor progress toward monthly goals.

Metrics displayed:

KPIPer-metric display
Feedback EmailProgress bar · Current achievement · Monthly target · Completion % · Remaining target · Best This Month
Feedback WhatsAppSame as above
SQLSame as above
Success MeetingSame as above
WonSame as above
New MRRSame as above

Data sources:

DataSource
Current achievementAggregated from Daily Progress records within the current calendar month
Monthly targetMonthly Target Configuration — managed by Leader Workspace (read-only in SDR Workspace)
Best This MonthTop performer for each metric (data source and ranking logic TBD — see Open Questions)

Behavior:

  • Achievement values update automatically when Daily Progress is saved — no manual page refresh required under normal conditions.
  • If real-time synchronization is unavailable or delayed, a Refresh button is displayed. Clicking Refresh reloads: monthly KPI achievements, targets, progress percentages, remaining targets, and Best This Month values.
  • Monthly targets are read-only. SDRs cannot create, edit, or delete targets from the Workspace.
  • If no monthly target has been configured for the current month, display an empty state: "No monthly target has been configured for this month." Progress percentage and remaining target are not calculated until a target is available.

Component UI States:

StateDescription
LoadingSkeleton loader for each KPI metric row.
Empty (no target)"No monthly target has been configured for this month." No progress bar rendered.
ErrorSection-level error with Refresh CTA.
SuccessAll 6 KPI metrics displayed with current achievement, target, progress bar, and Best This Month.

6.5 Daily Progress Page

Purpose: Operational page for recording daily SDR activities in a spreadsheet-like table. Although users interact with this page as a table, each Daily Progress record is persisted as a CRM Task in the existing Qontak Task module — the table is a simplified UI layer on top of Task records. Users never create or manage Task records manually; the Workspace abstracts Task management into a simple daily tracking experience. Daily Progress is the source of truth for both Today's Priorities (Priority 3) and This Month's Progress. Accessed via CTAs from the Workspace homepage — not a section on the Workspace itself.

FieldDetail
URL/daily-progress (final path TBD with Engineering)
AccessAny SDR user with Workspace enabled.

Table Structure:

DimensionDescription
ColumnsEach column represents one calendar date.
RowsEach row represents one activity metric: Email Blast, WABA Blast, Call Attempted, Feedback Email, Feedback WhatsApp, SQL, Success Meeting, Won, New MRR.

Time View:

ViewDescription
WeekShows current week. Navigation: Previous Week, Next Week, Today. Download option available.
MonthShows current calendar month.

Task Creation Logic (Start Progress):

When today's Daily Progress has not yet been started:

  • Activity cells for today are disabled.
  • The Daily Record row displays a Start Progress button.

When the user clicks Start Progress inside the Daily Progress page:

  • The system automatically creates a CRM Task with the fields in the mapping table below.
  • The button changes to Started.
  • All activity cells for today become editable.
  • Users never create this Task manually. The Workspace Priority 3 "Start Progress" CTA navigates to this page and highlights the button — it does NOT create the Task.

CRM Task Field Mapping (auto-populated on creation):

CRM Task FieldValue
Task Name[SDR First Name] - [Date] Progress
OwnerCurrent logged-in user
Task TypeFixed value: Daily Progress
Progress DateSelected column date (if dedicated field exists)

Editing Behavior:

After the CRM Task is created:

  • Each activity row maps to a predefined field within the CRM Task.
  • Editing a table cell updates the corresponding Task field.
  • The system must update the existing Task — a new Task must never be created for a date that already has a record.
  • Duplicate Daily Progress Tasks for the same user and date must be prevented.

Cell States:

StateDescription
Disabled / BlankNo Daily Progress Task exists yet for this date.
Empty (−)Task exists, but the field has not been filled.
0User explicitly recorded zero activity.
ValueUser has recorded a value.

Daily Record States (column-level):

StateCondition
Not StartedNo Daily Progress Task exists for today. Start Progress button visible.
StartedTask exists; ≥ 1 required field is empty. Continue editing in place.
CompletedAll 9 required fields contain values.

Data flow from Daily Progress (CRM Task) to Workspace:

User clicks Start Progress


System creates CRM Task (Task Type: Daily Progress)


User updates activity fields


CRM Task fields are updated

├──► Today's Priorities — Priority 3 updates (Not Started → In Progress → Completed)

└──► Monthly KPI recalculated → This Month's Progress updates in real time

Daily Progress (CRM Task) is the single source of truth. Today's Priorities and This Month's Progress are derived views that read from the underlying Task data.


7. API & Webhook Behavior

Engineering to confirm: HTTP methods, paths, request/response schemas, error codes, caching strategy, and real-time sync mechanism (WebSocket, SSE, optimistic update, or polling after save) during technical design.

#BehaviorEntity AffectedTriggered ByExpected BehaviorFailure Behavior
1Workspace page loadUser profile + feature flagUser login with workspace_homepage_enabled = ONSystem reads Team × Staff Level from user profile; validates flag; renders Today's Priorities (3 cards), Quick Actions, and This Month's Progress sections.If flag = OFF → redirect to legacy default page. If no Team → empty state with config message.
2Today's Priorities — Priority 2 data fetchQontak Inbox conversationsWorkspace page load; section refreshQueries Inbox for conversations assigned to logged-in user where latest customer message has no authentic human reply (authentic = reply > 30s after Email or WhatsApp Broadcast delivery). Returns count and latest 3 conversations.Priority 2 card shows error state with Retry. Other cards unaffected.
3Today's Priorities — Priority 3 data fetchDaily Progress — today's recordWorkspace page load; real-time sync triggerQueries Daily Progress for today's record. Returns: record exists (true/false), count of empty required fields. Drives Priority 3 state (Not Started / In Progress / Completed).Priority 3 card shows error state. Other cards unaffected.
4Daily Record creation (CRM Task)CRM Task (Task Type: Daily Progress)User clicks Start Progress inside Daily Progress pageCreates a CRM Task for the logged-in user with auto-populated fields: Task Name = [SDR First Name] - [Date] Progress, Owner = current user, Task Type = Daily Progress, Progress Date = today's date (if field exists). Record state moves from Not Started → Started. All activity cells become editable. System must prevent duplicate Tasks for the same user and date. Priority 3 on Workspace updates in real time (or on next sync).Creation failure → inline error on Daily Progress page; no Task created; activity cells remain disabled; Priority 3 state unchanged.
5Daily Record field update (CRM Task)CRM Task — activity fieldsUser enters or edits a value in an activity cellUpdates the corresponding field in the existing CRM Task for the logged-in user and today's date. A new Task must never be created by a field update. After save: (a) Priority 3 remaining field count recalculates; (b) corresponding monthly KPI in This Month's Progress recalculates and updates in real time.Field save failure → inline error; cell reverts to previous value; no downstream sync triggered.
6This Month's Progress — achievement fetchDaily Progress aggregate for current monthWorkspace page load; real-time sync trigger; manual RefreshAggregates all Daily Progress records for the logged-in user within the current calendar month per KPI.Section shows error state with Refresh CTA.
7This Month's Progress — target fetchMonthly Target Configuration (Leader Workspace API)Workspace page load; manual RefreshReads monthly KPI targets for the logged-in user's team for the current month (read-only).If no target configured → empty state: "No monthly target has been configured for this month." If API unavailable → targets shown as "—"; Refresh CTA displayed.
8Real-time sync: Daily Progress → WorkspaceToday's Priorities Priority 3 + This Month's ProgressDaily Record field savedImmediately propagates updated Priority 3 state and recalculated monthly KPI values to the Workspace homepage without requiring a manual page refresh. If real-time mechanism is unavailable, the Refresh button on This Month's Progress allows manual re-fetch.Sync failure → previous values remain visible; Refresh button shown on This Month's Progress.

8. System Flow + User Stories + ACs

8.1 System Flow

Flow: SDR Daily Workspace Session · Type: User Journey

sequenceDiagram
participant SDR as SDR User
participant WS as Workspace Frontend
participant Auth as Auth Service
participant Inbox as Qontak Inbox API
participant DP as Daily Progress API
participant KPI as Monthly KPI Aggregator
participant LW as Leader Workspace (Target API)

SDR->>Auth: Login
Auth->>WS: Login success — check workspace_homepage_enabled (per CID)

alt Flag = ON
WS->>WS: Resolve Team = SDR, Staff Level = Staff|Lead
par Load Workspace sections
WS->>Inbox: Fetch unanswered conversations (assigned to user, authentic reply check)
Inbox-->>WS: Count + latest 3 conversations → render Priority 2 card
and
WS->>DP: Fetch today's Daily Record status
DP-->>WS: Not Started / In Progress (N fields) / Completed → render Priority 3 card
and
WS->>KPI: Fetch monthly KPI achievements (sum of Daily Progress this month)
KPI-->>WS: Achievement values
WS->>LW: Fetch monthly targets for current month (read-only)
LW-->>WS: Target values → render This Month's Progress
end
WS-->>SDR: Workspace rendered: Today's Priorities (3 cards), Quick Actions, This Month's Progress

SDR->>WS: Clicks Priority 3 CTA "Start Progress" (Not Started state)
WS-->>SDR: Navigate to Daily Progress page; scroll to today's record; highlight Start Progress button

SDR->>DP: Clicks Start Progress (inside Daily Progress page)
DP-->>DP: Creates CRM Task (Type: Daily Progress); state Not Started → Started
DP-->>WS: Real-time sync: Priority 3 updates to "In Progress"

SDR->>DP: Fills activity fields (e.g., Feedback Email = 5)
DP-->>DP: Saves field; recalculates monthly KPI aggregate
DP-->>WS: Real-time sync: Priority 3 remaining count decreases; This Month's Progress KPI updates

SDR->>WS: Returns to Workspace homepage
WS-->>SDR: Restored state — Priority 3 shows "In Progress: N Fields Remaining"

else Flag = OFF
Auth-->>SDR: Redirect to existing default CRM landing page
end

alt Unanswered conversations exist (Priority 2)
SDR->>WS: Clicks "View My Inbox" CTA
WS-->>SDR: Opens Inbox filtered by Assignee = logged-in user, Status = Unanswered
end

alt Real-time sync unavailable
WS-->>SDR: Refresh button visible on This Month's Progress
SDR->>WS: Clicks Refresh
WS->>KPI: Re-fetch monthly achievements
WS->>LW: Re-fetch targets
KPI-->>WS: Updated aggregates → This Month's Progress refreshed
end

8.2 User Stories

User StoryImportanceMockup / Technical NotesAcceptance Criteria
WS-S01 — Workspace as Default Post-Login Landing

As an SDR with Workspace enabled for my org, I want to land on the Workspace homepage after login, so that I can immediately see my daily priorities and performance without navigating separate modules.
Must HavePrototype: Workspace Prototype

Data Fields:
workspace_homepage_enabled (boolean) — CID-level feature flag
team (enum: SDR/BD/AM) — from user profile
staff_level (enum: Staff/Lead) — from user profile

Before-After Behavior: Before: login → redirected to existing CRM default page. After: login with flag ON → redirected to Workspace showing Today's Priorities (3 cards), Quick Actions, and This Month's Progress.
— Happy Path —
• AC-1: Given a user whose CID has workspace_homepage_enabled = ON and Team = SDR, when the user completes login, then the system redirects to the Workspace homepage and renders: Today's Priorities section (3 priority cards), Quick Actions section (5 shortcuts), and This Month's Progress section.
• AC-2: Given the Workspace loads, when all section data is fetched, then the page is fully interactive within p95 ≤ 3s.

— Error —
• ERR-1: Given workspace_homepage_enabled = OFF for the user's CID, when the user logs in, then the system redirects to the existing default CRM landing page.
• ERR-2: Given the user's CID has the flag = ON but the user has no assigned Team, when the Workspace loads, then an empty state is shown: "Your Workspace hasn't been configured yet. Please contact your administrator." No sections are rendered.

— Permission Model —
• CAN: Users with flag = ON and a valid Team assignment can access the Workspace.
• CANNOT: Users with flag = OFF or no Team assignment see the Workspace.

— UI States —
• Loading: Sections render skeleton loaders on page load.
• Empty: No Team assigned → config message; no sections rendered.
• Error: No page-level error state — per-section error handling applies.
• Success: All three sections rendered and interactive within p95 ≤ 3s.
WS-S02 — Today's Priorities: Priority 1 — Zoho Pipeline Reminder

As an SDR, I want to see a Zoho Pipeline shortcut in my Workspace, so that I can quickly navigate to Zoho to manage my pipeline while native pipeline monitoring is under development.
Must HaveBefore-After Behavior: Before: no pipeline-related shortcut on the Workspace. After: Priority 1 card always visible with "Coming Soon" badge and a direct link to Zoho.

Phase 1 scope: Static card only — no idle pipeline detection or validation. Automated pipeline monitoring is a future enhancement.
— Happy Path —
• AC-1: Given an SDR loads the Workspace, when Today's Priorities section renders, then the Zoho Pipeline Reminder card is always displayed as the first priority card with badge "Coming Soon" and CTA "Open Zoho."
• AC-2: Given the SDR clicks "Open Zoho," when the CTA is triggered, then Zoho opens in a new tab. The Workspace remains open.

— Error —
• ERR-1: Given the SDR clicks "Open Zoho" and the browser blocks the new tab (popup blocker), when the click is triggered, then the system falls back to opening Zoho in the same tab or displays a prompt to allow the popup.

— Permission Model —
• CAN: All SDR users with Workspace enabled see Priority 1 — it is always displayed regardless of pipeline state.
• CANNOT: The card cannot be hidden, dismissed, or marked complete in Phase 1.

— UI States —
• Loading: Card renders skeleton on Workspace load.
• Empty: N/A — card is always displayed.
• Error: N/A — static card with no data dependency.
• Success: Card displays with "Coming Soon" badge and "Open Zoho" CTA.
WS-S03 — Today's Priorities: Priority 2 — Customers Waiting for Your Reply

As an SDR, I want to see which assigned customer conversations are waiting for my reply, so that I can respond to unanswered conversations promptly without opening Inbox manually.
Must HavePrototype: Workspace Prototype

Data Fields:
assigned_to (user_id) — conversation must be assigned to logged-in user
authentic_reply (boolean) — reply sent > 30s after Email/WA Broadcast delivery
waiting_duration (string) — time since last customer message
latest_customer_message (string) — last message preview

Authentic reply rule: A reply is authentic only if sent > 30 seconds after an Email Broadcast or WhatsApp Broadcast message is delivered. Replies ≤ 30s are treated as automated (chatbot, workflow trigger, welcome message) and do not satisfy the "replied" condition.

Before-After Behavior: Before: SDR had to open Inbox manually to find unanswered assigned conversations. No priority signal, no aggregated count. After: Workspace surfaces unanswered count and the latest 3 conversations inline; SDR can navigate to Inbox with one click.
— Happy Path —
• AC-1: Given an SDR loads the Workspace and ≥ 1 conversation assigned to them has an unanswered customer message (no authentic reply sent), when Today's Priorities renders, then Priority 2 shows badge "X Unanswered" and an expandable list of the latest 3 such conversations, each displaying: customer name, waiting duration, and latest customer message.
• AC-2: Given Priority 2 is in the Pending state, when the SDR clicks "View My Inbox," then Inbox opens filtered by Assignee = logged-in user, Status = Unanswered.
• AC-3: Given a customer replies within 30 seconds of an Email or WhatsApp Broadcast delivery, when Priority 2 evaluates authentic replies, then that reply is treated as automated and the conversation remains counted as unanswered.
• AC-4: Given all conversations assigned to the SDR have received an authentic human reply (> 30s after broadcast), when Priority 2 evaluates the data, then the card transitions to the Completed state: badge "Completed" (green check icon), description "You've replied to all assigned customer conversations." Card remains visible.

— Error —
• ERR-1: Given the Inbox API is unavailable, when Priority 2 loads, then the card shows an individual error state with a Retry CTA. Priority 1 and Priority 3 cards are unaffected.

— Permission Model —
• CAN: Priority 2 only surfaces conversations assigned to the logged-in user — no visibility into other agents' conversations.
• CANNOT: The card cannot be dismissed; it remains visible in either Pending or Completed state at all times.

— UI States —
• Loading: Card renders skeleton while Inbox API responds.
• Empty (Completed): 0 unanswered conversations → Completed state with green check.
• Error: Inbox API failure → error state with Retry CTA; sibling cards unaffected.
• Success (Pending): Count badge and expandable conversation list rendered.
WS-S04 — Today's Priorities: Priority 3 — Complete Today's Work Progress

As an SDR, I want to see a prompt showing whether I've recorded today's activities, so that I know whether to start, continue, or review my daily progress without navigating to the Daily Progress page manually.
Must HavePrototype: Workspace Prototype

Data Fields:
daily_record_exists (boolean) — whether today's Daily Record has been created
empty_field_count (int) — number of the 9 required fields still empty
• Required fields (9): Email Blast, WABA Blast, Call Attempted, Feedback Email, Feedback WhatsApp, SQL, Success Meeting, Won, New MRR

Before-After Behavior: Before: SDRs had to manually navigate to the Daily Progress page to check recording status; no summary signal on the Workspace. After: Priority 3 card reflects the exact state of today's Daily Record and guides the SDR with a contextual CTA.

Critical behavior: The "Start Progress" CTA on this card does NOT create today's Daily Record. It opens the Daily Progress page, scrolls to today's record, and highlights the Start Progress button there. The record is created only when the SDR explicitly clicks Start Progress within the Daily Progress page.
— Happy Path —
• AC-1 (Not Started): Given today's Daily Record does not exist, when Priority 3 renders, then the card shows badge "Not Started," description "You haven't started recording today's work yet," and CTA "Start Progress."
• AC-2 (Not Started → Navigate): Given Priority 3 is in Not Started state, when the SDR clicks "Start Progress," then the system navigates to the Daily Progress page, scrolls to today's record, and highlights the Start Progress button. Today's record is NOT created by this action.
• AC-3 (In Progress): Given today's Daily Record exists and ≥ 1 of the 9 required fields is empty, when Priority 3 renders, then the card shows badge "X Fields Remaining" (e.g., "7 Fields Remaining"), description "You've started recording today's activities. Complete the remaining fields before ending your workday," and CTA "Continue Progress." The remaining field count updates automatically whenever fields are filled in Daily Progress (no page refresh required).
• AC-4 (Completed): Given today's Daily Record exists and all 9 required fields contain values, when Priority 3 renders, then the card shows badge "Completed" (green check icon), description "Great work! All required activities have been recorded today," and CTA "Review Progress." Card remains visible and never disappears.

— Error —
• ERR-1: Given the Daily Progress API is unavailable, when Priority 3 loads, then the card shows an individual error state with a Retry CTA. Priority 1 and Priority 2 cards are unaffected.

— Permission Model —
• CAN: Priority 3 reflects the Daily Progress state for the logged-in user only.
• CANNOT: The card cannot be dismissed or manually marked complete — its state is derived exclusively from Daily Progress data.

— UI States —
• Loading: Card renders skeleton while Daily Progress API responds.
• Empty: N/A — card is always displayed in one of the three states (Not Started / In Progress / Completed).
• Error: Daily Progress API failure → error state with Retry CTA.
• Success: Card shows the correct state (Not Started / In Progress / Completed) based on today's Daily Record.
WS-S05 — This Month's Progress: Monthly KPI Display and Real-Time Sync

As an SDR, I want to see my monthly KPI progress updated in real time after recording daily activities, so that I can track performance against targets without navigating away or manually refreshing.
Must HaveBefore-After Behavior: Before: SDRs had to navigate to separate reporting tools to check monthly performance. No real-time connection between daily recording and monthly targets. After: This Month's Progress section on the Workspace shows 6 KPI metrics with progress bars, and values update automatically when Daily Progress is saved.

Data Fields (per metric):
achievement (number) — sum of Daily Progress records in current calendar month
target (number) — read-only, from Leader Workspace Monthly Target API
completion_pct (number) — achievement / target × 100
remaining (number) — target − achievement
best_this_month (string) — top performer name and value (source TBD — see Open Questions)

Metrics: Feedback Email, Feedback WhatsApp, SQL, Success Meeting, Won, New MRR.

Technical Note: Real-time sync mechanism (WebSocket, SSE, optimistic update, or post-save re-fetch) open for Engineering to propose.
— Happy Path —
• AC-1: Given the SDR loads the Workspace and monthly targets have been configured, when This Month's Progress renders, then all 6 KPI metrics display: current achievement, monthly target, progress bar, completion %, remaining target, and Best This Month.
• AC-2: Given the SDR records or updates a Daily Progress field (e.g., Feedback Email), when the field is saved, then the corresponding KPI in This Month's Progress updates automatically (e.g., Feedback Email achievement increments) without requiring a manual page refresh.
• AC-3: Given real-time synchronization is unavailable or delayed, when the SDR is on the Workspace, then a Refresh button is visible on This Month's Progress. Clicking Refresh re-fetches: monthly achievements, targets, progress percentages, remaining targets, and Best This Month values.
• AC-4: Given no monthly target has been configured for the current month, when This Month's Progress renders, then an empty state is shown: "No monthly target has been configured for this month." Progress bars, completion %, and remaining targets are not rendered until a target is available.

— Error —
• ERR-1: Given the Monthly KPI aggregation API is unavailable, when This Month's Progress loads, then the section shows an error state with a Refresh CTA. Today's Priorities cards are unaffected.
• ERR-2: Given the Leader Workspace Target API is unavailable, when This Month's Progress loads, then achievement values are displayed with targets shown as "—" and a Refresh CTA is visible. Progress bars and completion % are not rendered without a target value.

— Permission Model —
• CAN: SDR sees their own KPI achievements for the current month.
• CANNOT: Monthly targets are read-only — SDR cannot create, edit, or delete targets from the Workspace.
• CANNOT: SDR cannot configure the "Best This Month" calculation logic.

— UI States —
• Loading: Skeleton loader per KPI metric row.
• Empty: No target configured → empty state message; no progress bars.
• Error: API unavailable → error state with Refresh CTA per section.
• Success: All 6 metrics rendered with progress bars and Best This Month.
WS-S06 — Daily Progress Page: Activity Recording and Record Creation

As an SDR, I want to record daily activities in the Daily Progress page and have my Workspace automatically reflect my progress, so that I don't need to manually update multiple surfaces.
Must HaveBefore-After Behavior: Before: daily activity recording was disconnected from any aggregated view — no real-time signal to Today's Priorities or monthly KPI tracking. After: every save in Daily Progress immediately propagates to Priority 3 (field count update) and This Month's Progress (KPI recalculation) without a page refresh.

Data Model: Daily Progress records are persisted as CRM Tasks (Task Type: Daily Progress) in the Qontak Task module. The table is a UI layer over Task records — users never interact with Tasks directly.

Data Flow:
User clicks Start Progress → System creates CRM Task (Type: Daily Progress)
→ User updates activity fields → CRM Task fields are updated
→ Today's Priorities Priority 3 updates
→ Monthly KPI recalculates → This Month's Progress updates

Technical Note: Today's record is created only on explicit "Start Progress" click inside Daily Progress. The Workspace Priority 3 "Start Progress" CTA navigates to the page and highlights the button — it does not create the Task. Subsequent edits update the existing Task; a new Task is never created for the same user and date.
— Happy Path —
• AC-1: Given an SDR navigates to Daily Progress and today's record does not exist, when the SDR clicks Start Progress inside Daily Progress, then the system creates a CRM Task (Task Name: [SDR First Name] - [Date] Progress, Owner: current user, Task Type: Daily Progress) and all activity cells for today become editable (state: Not Started → Started). Priority 3 on the Workspace transitions from "Not Started" to "In Progress: 9 Fields Remaining." A duplicate Task must not be created if one already exists for this user and date.
• AC-2: Given today's Daily Record exists and the SDR enters a value in a required field (e.g., Feedback Email = 5), when the field is saved, then: (a) Priority 3 "Fields Remaining" count decreases by 1; (b) Feedback Email achievement in This Month's Progress increases by 5 — both without requiring a page reload.
• AC-3: Given the SDR has filled all 9 required fields, when the last field is saved, then Priority 3 transitions to the "Completed" state and This Month's Progress reflects the final daily values.
• AC-4: Given the SDR is on Daily Progress in Week View, when the SDR clicks Previous Week or Next Week, then the view navigates to the respective week. Clicking Today returns to the current week.

— Error —
• ERR-1: Given the SDR clicks Start Progress and the record creation request fails, when the error is returned, then an inline error message is shown on the Daily Progress page: "Unable to create today's record. Please try again." Priority 3 on the Workspace remains in the Not Started state.
• ERR-2: Given the SDR saves a field value and the update fails, when the error is returned, then the field reverts to its previous value and an inline error is shown. No downstream sync to Priority 3 or This Month's Progress is triggered.

— Permission Model —
• CAN: Each SDR can only view and edit their own Daily Progress records.
• CANNOT: An SDR cannot create or edit another SDR's Daily Record.
• Reversibility: Daily Record fields can be updated as long as the record exists. There is no permanent lock on field values in Phase 1.

— UI States —
• Loading: Skeleton while Daily Records for the current week/month are fetched.
• Empty (new week/day): Today's record shows "Not Started" with Start Progress button.
• Error: Record fetch failure → inline error with Retry. Field save failure → field-level inline error.
• Success: Records rendered with current field values; editing inline.
WS-S07 — Quick Actions: Navigation Shortcuts

As an SDR, I want Quick Actions on my Workspace to navigate me directly to the relevant tool, so that I can start common tasks without going through the main navigation.
Should HaveBefore-After Behavior: Before: SDR navigated to tools via main CRM navigation. After: 5 Quick Actions shortcuts (with Data Enrichment disabled) accessible from Workspace with one click.

Scope: Navigation only. No inline form, no modal, no operation within the Workspace frame.

Section type: Static — no data fetch, no auto-refresh.
— Happy Path —
• AC-1: Given an SDR is on the Workspace, when the SDR clicks "Data Validation," then the Data Validation page opens (URL: TBC). New tab where applicable.
• AC-2: Given an SDR clicks "Email Broadcast," then the Email Broadcast destination opens (YAMM or Moengage).
• AC-3: Given an SDR clicks "WhatsApp Broadcast," then https://chat.qontak.com/campaign/whatsapp/one-time opens.
• AC-4: Given an SDR clicks "Create Zoho Pre-lead," then the Zoho Outbound Pre-lead page opens (URL: TBC).
• AC-5: Given "Data Enrichment" is displayed with a "Coming Soon" label, when the SDR clicks on it, then no navigation occurs — the action is disabled with no error shown.

— Error —
• ERR-1: Given a Quick Action URL is unreachable (e.g., external service down), when the SDR clicks the action, then the browser's default error behavior applies (external URL navigation). No Workspace-level error handling required.

— Permission Model —
• CAN: All SDR users with Workspace enabled can see and use all active Quick Actions.
• CANNOT: Data Enrichment cannot be activated in Phase 1 — it is disabled with "Coming Soon" label.

— UI States —
• Loading: N/A — static section, shortcuts render immediately.
• Empty: N/A — always 5 defined shortcuts (4 active, 1 disabled).
• Error: N/A — external navigation; no Workspace-level error state.
• Success: All 5 shortcuts rendered; Data Enrichment visually disabled.
WS-NEG-01 — No Workspace on Mobile / Native App
(Guard Rail — from Non-Goal #1: web only)
Guard Rail• NEG-1: Given any CRM user accessing Qontak via a mobile or native app, when workspace_homepage_enabled is ON for their CID, then the Workspace is not surfaced — the user sees the existing default mobile experience unchanged.
WS-NEG-02 — No Leader Workspace in Phase 1
(Guard Rail — from Non-Goal #5: Leader Workspace out of scope)
Guard Rail• NEG-2: Given an SDR Lead accesses the Workspace, when the Workspace renders, then no Leader Workspace features (team target configuration, team target assignment, team management) are available. Monthly targets are displayed as read-only values only.
WS-NEG-03 — Monthly Targets are Read-Only for SDRs
(Guard Rail — from Non-Goal #6: target configuration out of scope)
Guard Rail• NEG-3: Given an SDR views This Month's Progress, when the SDR attempts to create, edit, or delete a monthly target, then no such action is possible from the Workspace — target values are displayed as read-only.

9. Rollout

FieldDetail
Feature flagworkspace_homepage_enabled (per CID, default OFF — see Section 5)
RolloutStage 1 → Internal Alpha: internal SDR users only (Qontak internal CIDs, flag enabled manually per CID). Stage 2 → Closed Beta: select external SDR pilot CIDs (scope TBD — PM + CSM). Stage 3 → Open Beta: broader SDR-enabled CIDs. GA → all eligible CIDs with SDR Team assignments.
Backward compatYes — existing CRM routing and default landing page unchanged for all CIDs with flag = OFF.
MigrationNone required. Workspace is a new surface. Daily Progress records start empty per user. Monthly targets must be configured in the Leader Workspace (future dependency) before This Month's Progress shows data.

10. Observability

Key Events:

Event NameTriggerProperties
workspace_loadedWorkspace page fully interactiveuser_id, cid, team, staff_level, load_time_ms, sections_rendered[]
priority_card_renderedEach priority card renders with its statecard_id (1/2/3), state (pending/completed/not_started/in_progress/coming_soon), render_time_ms
priority_cta_clickedSDR clicks any priority card CTAcard_id, state, cta_label (start_progress/continue_progress/review_progress/view_inbox/open_zoho)
daily_progress_record_createdToday's Daily Record created via Start Progressuser_id, date
daily_progress_field_savedSDR saves a field in Daily Progressuser_id, date, field_name, value
monthly_kpi_refreshedSDR clicks Refresh on This Month's Progressuser_id, trigger (manual/auto), month
quick_action_clickedSDR clicks a Quick Actionaction_id (data_validation/email_broadcast/whatsapp_broadcast/create_zoho_prelead/data_enrichment), user_id
workspace_section_errorA section fails to loadsection_id, error_type, retry_count

Dashboard owner: Mixpanel — Product team (PM Qontak Group / Qontak CRM Squad)

Alerts:

  • workspace_section_error rate > 2% of workspace_loaded events in any 15-min window → PagerDuty: Qontak CRM Squad on-call
  • Workspace p95 load time > 3s for > 5% of workspace_loaded events in any 30-min window → Engineering Lead

10.1 Post-Launch Monitoring Cadence

FieldDetail
Review cadenceWeekly for the first 4 weeks post-Internal Alpha launch, then bi-weekly through GA.
OwnerPM Qontak Group (Qontak CRM Squad)
Review scopeDAR (Workspace Daily Active Ratio), Priority CTA click rate, Daily Progress record creation rate, daily_progress_field_saved per user per day, section error rate.
Trigger thresholds• DAR drops below 40% for 2 consecutive weeks → PM review within 48 hours.
workspace_section_error rate > 2% sustained for > 24 hours → Engineering escalation.
• Priority 3 CTA click rate < 20% after 2 weeks of Internal Alpha → PM review; assess UX of the state machine.
Rollback considerationIf section error rate exceeds 5% and is unresolved within 24 hours, PM and Engineering Lead to assess partial rollback per CID via flag. Full Workspace rollback via workspace_homepage_enabled = OFF per CID.

11. Success Metrics

Adoption & Engagement:

MetricDefinitionBaselineTarget
⭐ Workspace Daily Active Ratio (DAR)% of enabled SDR users who load the Workspace at least once per dayN/A — new feature≥ 60% within 30 days of Internal Alpha launch
Priority CTA click rate% of workspace_loaded sessions with at least one priority_cta_clicked eventN/A — new feature≥ 40% within 30 days of Internal Alpha
Daily Progress record creation rate% of SDR Workspace users who create a Daily Record on a given day (via daily_progress_record_created)N/A — new feature≥ 50% of DAU within 30 days of Internal Alpha

Operational Impact:

MetricDefinitionBaselineTarget
Module-switch reductionAverage daily module-switch navigation actions per SDR vs. pre-Workspace baselinePre-Workspace baseline TBD (measure during Internal Alpha prep)≥ 20% reduction vs. baseline within 30 days of GA
Daily Progress fields filled per user per dayAverage number of daily_progress_field_saved events per active SDR per dayN/A — new feature≥ 5 fields per active user per day within 30 days of Internal Alpha

Quality & Reliability:

MetricDefinitionBaselineTarget
Section error rate% of workspace_section_error events per workspace_loaded eventsN/A — new feature≤ 2% sustained throughout Internal Alpha and beyond
Workspace p95 load time95th percentile load-to-interactive timeN/A — new feature≤ 3s throughout Internal Alpha

All metrics tracked via Mixpanel. Dashboard owner: Product team.


12. Launch Plan & Stage Gates

StageAudienceDurationSuccess Gate to AdvanceOwner
Internal AlphaQontak internal SDR users (flag ON per internal CID)2 weeksDAR ≥ 60% sustained; section error rate ≤ 2%; no critical production issues; positive pilot feedbackPM + QA
Closed BetaSelect external SDR pilot CIDs (3–5 CIDs; PM + CSM to identify)2–3 weeksDAR ≥ 60% in pilot cohort; Daily Progress record creation rate ≥ 50% of DAU; section error rate ≤ 2%; no P1 production issuesPM + CSM
Open BetaBroader SDR-enabled CIDs (Engineering + PM to scope)2–3 weeksAll Closed Beta gates sustained; Priority CTA click rate ≥ 40%; PMM sign-offEng Lead + PM
GAAll eligible CIDs with SDR Team assignmentsOngoingAll Open Beta gates sustained for 2 additional weeks; workspace_homepage_enabled default flag strategy confirmedPM + PMM

13. Dependencies

DependencyOwning TeamDeliverable NeededBlocking?
Qontak Inbox API — unanswered conversation queryQontak Inbox SquadRead API: conversations filtered by Assignee = logged-in user, Status = Unanswered, with authentic reply check (30-second broadcast threshold logic). Must confirm API supports this filter combination and the 30s threshold is implementable at query layer or requires FE filtering.YES
Daily Progress API — record creation + field updatesQontak CRM EngineeringDaily Progress records are persisted as CRM Tasks (Task Type: Daily Progress) in the existing Qontak Task module. Required endpoints: (1) POST to create a Task on Start Progress with auto-populated fields (Task Name, Owner, Task Type, Progress Date); (2) PUT to update existing Task fields on cell edit — must update the existing Task, never create a duplicate; (3) GET for record status (Task exists, empty field count). System must enforce uniqueness: one Task per user per date. Real-time sync mechanism to be confirmed.YES — Blocking for Phase 1 delivery
Monthly KPI Aggregation APIQontak CRM Engineering / DataEndpoint to aggregate Daily Progress records per user per calendar month by KPI field. Must be confirmed before This Month's Progress widget is developed.YES
Leader Workspace — Monthly Target Configuration APILeader Workspace Squad (timeline TBD)Read-only API for monthly KPI targets per user/team for a given month. SDR Workspace consumes this read-only. If Leader Workspace is not available by Phase 1 launch, This Month's Progress renders with empty target state until configured.NO — Phase 1 can launch with empty target state as fallback
Corporate Strategy Team — KPI metric boundary definitionsCross-team (Data / Analytics)Exact definitions for each of the 9 Daily Progress fields (e.g., what constitutes a "Feedback Email," "SQL," "Won"). Must be finalized before Daily Progress API schema is locked.YES — Blocking for July milestone
"Best This Month" data sourceTBD (Data / Analytics)Source and ranking logic for the top performer per KPI metric in This Month's Progress. Requires cross-user data access; data ownership and privacy implications to be confirmed.NO — Can launch with "Best This Month" as placeholder if not available

14. Key Decisions + Alternatives Rejected

8a — Decisions Made

DateDecisionRationale
2026-07-01ANCHOR + Phase PRD structure (Phase 1: SDR, Phase 2: BD, Phase 3: AM)Multi-phase initiative with distinct persona rollouts — Phase structure isolates scope and simplifies per-Epic Jira tracking.
2026-07-01Today's Priorities: fixed 3-card daily checklist (not configurable, not disappearing)Establishes a consistent daily operational rhythm. Cards transitioning between states (vs. appearing/disappearing) reduces cognitive load and avoids the empty-state problem where SDRs see a blank section.
2026-07-01Daily Progress as operational source of truth driving both Today's Priorities and This Month's ProgressSingle source of truth simplifies the data model and ensures consistency between daily recording and monthly performance tracking. Avoids duplicated data entry.
2026-07-01Real-time sync (preferred) + manual Refresh fallbackSDRs should see the impact of their daily recording immediately. Manual Refresh is the engineering fallback if real-time push is unavailable — not the primary design.
2026-07-01Daily Record creation requires explicit "Start Progress" click inside Daily Progress — not triggered by Priority 3 CTAEnsures deliberate record creation; prevents accidental records being created by Workspace navigation clicks. Clear intent boundary between "navigate to Daily Progress" and "create today's record."
2026-07-0130-second threshold for authentic human reply (Priority 2)Distinguishes automated responses (chatbot, workflow triggers, broadcast auto-replies) from genuine SDR replies. Threshold is a heuristic — configurable in the future if needed.
2026-07-21Monthly targets read-only in SDR Workspace; managed by Leader WorkspaceSeparates concerns: SDR Workspace is for execution tracking, Leader Workspace is for target management. Prevents scope creep and allows independent delivery timelines.
2026-07-21Daily Progress records are persisted as CRM Tasks in the existing Qontak Task moduleAvoids introducing a new data entity; leverages existing Task infrastructure. The Workspace presents a simplified spreadsheet-like table as the UI layer — users never interact with Tasks directly. Start Progress creates the Task; subsequent cell edits update its fields. Enforcing one Task per user per date prevents duplicates and keeps the data model clean.

8b — Alternatives Rejected

AlternativeWhy RejectedDate
Widget-based configurable Workspace (dynamic widget set per role)Adds significant Engineering complexity; delays Phase 1 delivery; not validated by user research. Fixed 3-card checklist validates core value before introducing configurability.2026-07-21
Disappearing priority cards (cards removed when completed)Breaks the daily checklist model; creates an empty-state problem where the Workspace looks "done" and SDRs disengage. Persistent cards with state transitions maintain daily operational awareness.2026-07-21
Manual page refresh as primary sync mechanismRequires SDRs to actively refresh to see the impact of their recording — disconnects the feedback loop between recording and tracking. Real-time sync is preferred; manual Refresh is a fallback only.2026-07-21
Including monthly target configuration in Phase 1Adds scope risk; requires Leader Workspace to be completed first. SDR Workspace can launch with empty target state — targets become available once Leader Workspace is shipped.2026-07-21

15. Open Questions

#TypeQuestionOwnerDeadline
1Open QuestionReal-time sync mechanism: Engineering to propose approach — WebSocket, SSE, post-save optimistic update, or polling. Decision needed before Daily Progress and This Month's Progress development begins.Engineering LeadBefore development kickoff
2Open QuestionAuthentic reply threshold (30 seconds) implementation: is the 30-second filter applied at the Inbox API query layer, or does the Workspace FE receive raw reply timestamps and filter client-side? Impacts API contract for Priority 2.Engineering LeadBefore Priority 2 (WS-S03) development
3Open QuestionQuick Actions URLs: Data Validation (TBC) and Create Zoho Pre-lead (TBC) — final URLs needed before WS-S07 can be tested.PM Qontak GroupBefore Quick Actions development
4Open QuestionWorkspace and Daily Progress page URLs: final URL paths for /workspace and /daily-progress (or iframe equivalent).Engineering LeadBefore Phase 1 development kickoff
5Open Question"Best This Month" data source: which system provides cross-user KPI rankings? Does this require a new aggregation service or existing analytics infrastructure? Privacy and data ownership implications to be confirmed. Phase 1 can launch with "Best This Month" as a placeholder if not available.Data / AnalyticsBefore This Month's Progress development
6Open QuestionLeader Workspace API timeline: when will the Monthly Target Configuration API be available for SDR Workspace to consume? Phase 1 can launch with empty target state as fallback, but this needs a confirmed delivery date to set external Alpha user expectations.Leader Workspace SquadBefore Phase 1 Closed Beta
7Open QuestionSDR Lead Insight Widgets (Team Pipeline, Team Activities, Team Performance — previously planned in v1.0): not included in the Functional Requirements document. Confirm whether these are deferred to a future phase or removed from Phase 1 scope entirely.PM Qontak GroupBefore Phase 1 development kickoff
8AssumptionThe 9 required Daily Progress fields (Email Blast, WABA Blast, Call Attempted, Feedback Email, Feedback WhatsApp, SQL, Success Meeting, Won, New MRR) are the complete set for Phase 1 and will not change during implementation. Corporate Strategy / Data team to confirm exact field definitions.Corporate Strategy / Data AnalyticsBlocking for July milestone
9RiskLeader Workspace delivery timeline is unknown. If monthly targets are unavailable at Phase 1 GA, This Month's Progress will always show an empty state — potentially reducing the section's perceived value during pilot. Mitigation: launch with a clear empty state message and communicate the dependency to pilot users via CSM.PM + CSMBefore Closed Beta
10RiskDaily Progress real-time sync failure (fallback to manual Refresh): if the Refresh button is the primary mechanism used in practice, SDRs may not see the feedback loop benefit of recording activities. Mitigation: monitor monthly_kpi_refreshed with trigger = manual — if > 50% of syncs are manual, escalate real-time sync as P0 engineering fix.Engineering LeadPost-Internal Alpha review

PRD CHANGELOG

VersionDateBySectionTypeSummary
1.02026-07-01Claude (groom-prd skill)AllCREATEDPhase 1 PRD created from pre-grooming form + grooming session. Includes 7 user stories, 2 guard rails, full system flow, API behavior table, and test coverage matrices.
1.12026-07-21Claude (groom-prd skill)AllMODIFIEDMajor update aligned to Functional Requirements document (2026-07-21). Architectural changes: (1) Today's Priorities redesigned from configurable widget set to fixed 3-card daily checklist (Zoho Pipeline Reminder, Customers Waiting for Your Reply, Complete Today's Work Progress) with state machine per card; (2) Today's Progress replaced by This Month's Progress (6 monthly KPI metrics aggregated from Daily Progress); (3) Daily Progress added as new core feature page (operational source of truth); (4) Quick Actions updated to new list (Data Validation, Email Broadcast, WhatsApp Broadcast, Create Zoho Pre-lead, Data Enrichment [Coming Soon]); (5) Real-time sync + manual Refresh fallback replaces auto-polling model; (6) Monthly targets introduced as read-only dependency from future Leader Workspace. User stories rewritten (WS-S01–S07 + 3 guard rails). Dependencies, Open Questions, and Key Decisions updated accordingly. SDR Lead Insight Widgets (previously WS-S06) deferred pending PM confirmation (Open Question #7).
1.22026-07-21Claude (groom-prd skill)S5, S6.5, S7, S8.1, S8.2, S13, S14MODIFIEDDaily Progress implementation update: documented that Daily Progress records are persisted as CRM Tasks (Task Type: Daily Progress) in the existing Qontak Task module — the table is a UI layer over Task records. Added: table structure (columns = dates, rows = activity metrics), Task creation logic (Start Progress → auto-creates CRM Task with mapped fields), CRM Task field mapping table, editing behavior (updates existing Task — no duplicates), cell states (Disabled/Blank / Empty (−) / 0 / Value), one-Task-per-user-per-date constraint, and updated data flow diagram showing CRM Task as source of truth. S7 API rows 4–5, S8.1 Mermaid, WS-S06 story, S13 Dependencies, and S14 Key Decisions updated accordingly.