SPH Media

Confidential Proposal · QUICKSALES.AI

SPH Media WhatsApp
Customer Engagement Platform

Technical & Commercial Proposal

Prepared for
SPH Media Limited
Prepared by
QUICKSALES.AI
Version
1.0
Date
8 July 2026
Validity
90 days
Delivery Options
Option A / B
🔒 Private & Confidential — For authorised recipients only

SPH Media WhatsApp Customer Engagement Platform

Technical Proposal

Prepared by QUICKSALES.AI
Prepared for SPH Media Limited
Document version 1.0
Date 8 July 2026
Classification Private & Confidential
Validity 90 days from submission date

1. Executive Summary

SPH Media is establishing WhatsApp as a formal, AI-assisted customer communication channel across its portfolio of titles — including The Straits Times, Lianhe Zaobao, The Business Times, magazines, and student publications. Phase 1 targets AI-assisted inbound support and outbound transactional notifications. Phase 2 extends into marketing, lifecycle, and retention campaigns via MoEngage.

QUICKSALES.AI presents a purpose-built WhatsApp Orchestration Platform that sits between Meta's WhatsApp Cloud API and SPH Media's existing enterprise systems. ServiceNow CSM remains the agent workspace. The Commerce backend executes transactions. OneTrust governs consent. MoEngage orchestrates Phase 2 marketing.

QUICKSALES.AI proposes two commercial options tailored to SPH Media's pilot ambitions and budget positioning against the Singapore market:

Option Scope Timeline Mandays (est.)
Option A — Essential Phase 1 core capabilities, 8 priority journeys, pilot-ready ~5 months ~128
Option B — Professional Full Phase 1 + Phase 2 foundation, all RFP requirements ~7 months ~304

Both options target measurable pilot outcomes: 50%+ AI resolution, 80%+ CSAT, and 30%+ chat channel share within three months of go-live.

Commercial pricing: Full quotation with implementation fees, milestones, add-ons, and ongoing costs is available in the Pricing section. Scope and delivery options are defined in Section 19.

Next step for SPH: Complete Technical Discovery to unlock real Commerce, ServiceNow, OneTrust, SMS, and MoEngage endpoints. See Section 16.1.1 and Appendix F.

Meta WABA assurance: Phase 1 is user-initiated customer support — the lowest-risk WhatsApp use case. See Section 14 for how we prevent number blocking, policy violations, and quality-rating drops.

What SPH Actually Gets (Plain English)

Question Answer
Does SPH buy servers or hardware? No. There is no rack, no data centre visit, and no IT team needed to install physical machines.
Does SPH install software? No. Your team uses a web browser — the same way you use ServiceNow, MoEngage, or Google Workspace today.
Where does the platform run? On cloud infrastructure in Singapore (AWS or Azure), fully managed by QUICKSALES.AI.
What do customer service agents use? ServiceNow — unchanged. WhatsApp appears as another channel inside the workspace they already know.
What do supervisors and marketing use? A new QUICKSALES.AI Admin Portal — a modern web dashboard to manage journeys, templates, analytics, and consent.
What do subscribers use? WhatsApp on their phone — no app download required.
Will Meta block our WhatsApp number? Phase 1 support is designed to stay within Meta policy. Customers message SPH first (user-initiated). We track the 24-hour window, use approved templates for outbound notifications only, and monitor quality rating daily. See Section 14.

Simple analogy: QUICKSALES.AI delivers a managed cloud service (like Shopify, HubSpot, or MoEngage) — you subscribe, log in, and operate. The technical infrastructure behind the scenes is our responsibility, not SPH's.

QUICKSALES.AI leadership: Pei Han (CEO), Dave (CSO), Eddy (CPO), Andy (CAITO), and Zen (BD Manager) will oversee delivery alongside a dedicated project and engineering team.

What We Will Build (Summary)

This is a component summary only. For the single master diagram showing all actors, systems, flows, and where data lives, see Section 6.0 — Master Solution Diagram.


2. Understanding of SPH Media Requirements

2.1 Strategic Context

SPH Media's initiative is not a simple "add WhatsApp to ServiceNow" project. It is a lifecycle channel strategy spanning support, transactions, consent capture, and (in Phase 2) marketing retention.

Three Non-Negotiable Principles

# Principle Our Interpretation
1 ServiceNow CSM remains system of engagement Live agents work exclusively in ServiceNow Agent Workspace. Our platform hands off; it does not replace SN.
2 Customer data resides exclusively in SPH Media systems Subscriber data and conversation records persist only in SPH systems (ServiceNow, Commerce, OneTrust). Our platform processes messages transiently and does not retain WhatsApp content or subscriber PII in vendor databases. See Section 6.5.
3 WhatsApp coexists with ServiceNow web chat Web chat channel unchanged. WhatsApp is additive. Unified case history in ServiceNow.

What the Requirements Say About Data Storage

SPH does not say "store no WhatsApp data anywhere." The requirements are precise about where data lives:

Source Requirement
Principle 2 Customer data resides exclusively in SPH Media systems
A1 All conversations (including offline) captured to ServiceNow
A3 Sensitive data redacted before syncing with ServiceNow
B3 AI conversations filed into ServiceNow
D2 All inbound/outbound messages in ServiceNow CSM
E1 Consent information kept within OneTrust
RFP (PCI) No raw card number, expiry, or CVV in transcript, agent console, or ServiceNow case
Data System of record Vendor platform
Conversation transcripts ServiceNow Process → redact → forward → do not archive
Subscriber profile / billing Commerce API lookup during session — not stored
Consent OneTrust Write via API — not master copy
Session routing state Ephemeral cache (TTL) Auto-deletes when session ends
Platform settings Vendor config DB Journeys, templates, admin users — no customer content

2.2 Phase Overview

2.3 Complete Requirement Inventory

Phase 1 — Platform (Section A)

ID Requirement Business Driver
A1 24/7 self-service + live agent escalation + offline message capture Reduce call centre load; never lose a customer message
A2 EN, ZH-CN, MS, TA localization for bots and agents Singapore's multilingual subscriber base
A3 Sensitive data redaction before ServiceNow PCI/compliance; protect agents from raw card data
A4 Template lifecycle management Meta approval workflow; quality score monitoring
A5 Analytics & ROI dashboards Prove channel value to leadership
A6 WABA health & warm-up management Prevent number blocking; scale safely

Phase 1 — AI (Section B)

ID Requirement Business Driver
B1 AI resolves common requests end-to-end 50%+ resolution target without agent
B2 Tiered auth: WA possession + OTP Security proportional to action sensitivity
B3 AI conversations filed in ServiceNow Continuity on live agent handoff
B4 Knowledge from SN KB + Google Workspace Answer beyond static FAQ
B5 Understand EN, ZH-CN/ZH-TW, Malay, Tamil inbound; reply EN or ZH-CN Inclusive access, controlled response language

Phase 1 — Notifications (Section C)

ID Requirement Business Driver
C1 Commerce-triggered transactional WA (payment failed, renewal, pending payment, expiry, payment confirmed) + SMS fallback Revenue protection; payment recovery
C2 Contextual reply to notifications No "please repeat your issue" friction

Phase 1 — ServiceNow (Section D)

ID Requirement Business Driver
D1 SN CSM as agent workspace Preserve existing ops workflows
D2 All messages in SN for traceability Single audit trail
ID Requirement Business Driver
E1 OneTrust integration, PDPA + WA policy Legal compliance for marketing
E2 Opt-in capture at conversation close Build Phase 2 audience
E3 Platform toggles for opt-in/opt-out Operational consent control

Phase 2 — Marketing (Section F)

ID Requirement Business Driver
F1 MoEngage-orchestrated WA marketing Lifecycle campaigns at scale
F2 Campaigns to consented base only Compliant marketing
F3 DNC list scrubbing before send Singapore regulatory compliance

2.4 SPH Vendor Ecosystem — What We Know vs What Discovery Must Confirm

The RFP names six integration domains. Below is our current understanding of SPH's vendor landscape, what each system does in this architecture, and what we must validate in the discovery workshop before build starts.

Honest positioning: SPH's Commerce/subscription backend is not named in the RFP — it is treated as an internal system with REST APIs. Public sources confirm ServiceNow (implemented with SGITAL) and AWS cloud usage at SPH Media; OneTrust, MoEngage, and Google Workspace are named in the RFP but instance details are unknown until SPH responds to Business Discovery.

# Vendor / System Role in this programme Public / RFP evidence Integration pattern Must confirm in discovery
1 Meta WhatsApp Cloud API Customer messaging channel; WABA owned by SPH RFP journeys; Requirements A1–A6 Graph API webhooks + REST; SPH WABA in Business Manager WABA ID, phone numbers, verification status, existing templates
2 ServiceNow CSM Agent workspace, case management, conversation system of record Principle 1; D1, D2, B3; A1 offline capture VA Bot-to-Bot API (primary bot) + Table API (cases/interactions/KB) Instance URL, release (Zurich+), CSM + AWA licensed, existing WA adapter?
3 SPH Commerce Backend Subscriber, billing, delivery, payment links, vacation suspend RFP journeys (postal verify, CS-123456, sph.sg links) Commerce → platform webhooks; platform → Commerce REST OpenAPI spec, auth method, sandbox, subscriber ID scheme
4 OneTrust Consent system of record (E1: "kept within OneTrust") Requirements E1–E3 Consent Receipt API + preference lookup API Tenant URL, collection point JWT, purpose GUIDs
5 Google Workspace Knowledge source (B4): Sites, Docs, Sheets, Slides Requirements B4 Drive API + Sites crawl → vector index Site URLs, service account, restricted docs list
6 MoEngage Phase 2 marketing orchestration (F1–F2) Requirements F1–F2 Connected Channel webhook → our platform (we own WABA send) MoEngage tenant, campaign webhook capability
7 SMS Gateway C1 SMS fallback for non-WA subscribers Requirements C1 REST outbound SMS API (provider TBD) Current telco/BSP (Twilio, Vonage, Singtel, etc.)
8 PDPC DNC Registry F3 marketing scrub Requirements F3 Batch/API scrub before MoEngage campaigns SPH's existing DNC integration method
9 AWS Singapore Hosting region alignment SPH public cloud on AWS (iTnews 2024) Platform hosted ap-southeast-1; VPN/private link to SPH Approved sub-processors, network path to Commerce/SN

Why QUICKSALES.AI Sits in the Middle (Not ServiceNow Native WhatsApp)

ServiceNow offers Conversational Integration with WhatsApp (Twilio) and Cloud API store apps that pipe WhatsApp into Virtual Agent directly. SPH's RFP explicitly requires Commerce event notifications, OneTrust consent, MoEngage Phase 2, PCI redaction before SN sync, and Google KB — capabilities that require a primary orchestration layer:

Technical role: QUICKSALES.AI is the primary bot (isBotMessage: true on outbound). ServiceNow is the secondary system for live agent handoff (action: AGENT) and persistent records (Table API). This matches ServiceNow's documented bot-to-bot pattern (Yokohama VA API).


3. Why a Dedicated WhatsApp Platform (Not ServiceNow Alone)

ServiceNow offers a WhatsApp adapter (Twilio-based and Cloud API native) that pipes messages into Virtual Agent and Agent Workspace. This does not satisfy SPH's RFP for the following evidenced reasons:

Concern Native ServiceNow Our Proposed Platform
A3 Redaction before SN ❌ Message enters SN first ✅ Redacted at orchestration layer
C1 Commerce-triggered sends ❌ SN is not billing system ✅ Commerce webhooks → our platform
B4 Google knowledge ❌ Not supported ✅ RAG connector built
B1 Transaction execution ❌ SN VA is FAQ/case focused ✅ Commerce API write operations
F1 MoEngage campaigns ❌ No shared WABA ownership ✅ MoEngage → our send API
E1 OneTrust ❌ No native connector ✅ Consent bridge module

ServiceNow's role in our architecture: agent workspace, case management, interaction records, knowledge source (one of two), and live agent handoff via Virtual Agent Bot-to-Bot API.


4. Proposed Solution Overview — What We Will Build

4.1 Platform Name & Positioning

QUICKSALES.AI WhatsApp Orchestration Platform — purpose-built for SPH Media

A fully managed cloud service (hosted in Singapore) comprising 9 platform components, a web-based Admin Portal for SPH operations teams, and 6 integration connectors to SPH's existing systems. SPH does not purchase or host any hardware.

See Section 4.4–4.7 for plain-English explanation of hosting, the three user interfaces, and screen-by-screen Admin Portal design.

4.2 Components We Will Build

Component 1: WhatsApp Gateway & Session Manager

Purpose: Single owner of the SPH Media WABA. Receives all Meta webhooks. Manages ephemeral conversation sessions (routing state only), message queuing, delivery receipts, and read receipts. All message content is written to ServiceNow and not archived in the vendor platform.

Capabilities:
- Meta Cloud API webhook receiver (messages, statuses, template updates)
- Session state machine (NEW → AUTHENTICATED → IN_FLOW → ESCALATED → CLOSED)
- Real-time ServiceNow sync for every inbound/outbound message (A1, D2)
- Escalation routing to ServiceNow AWA queue (agent queue lives in ServiceNow, not vendor)
- If ServiceNow is temporarily unreachable: in-memory retry only (max 15 minutes) — not written to vendor database; message is never considered "stored" until SN confirms receipt
- Multi-title routing (ST, ZB, BT, magazines) based on subscriber profile
- Rate limiting aligned to Meta tier limits

Component 2: AI Virtual Agent Engine

Purpose: Resolve subscriber requests end-to-end without agent involvement.

Capabilities:
- LLM-powered intent classification and entity extraction
- Journey orchestration for 15+ subscriber flows (see Section 9)
- RAG retrieval from ServiceNow KB + Google Sites/Docs/Sheets/Slides
- Multilingual understanding (EN, ZH-CN, ZH-TW, MS, TA)
- Controlled response language (EN or ZH-CN per B5)
- Proactive follow-up scheduling (e.g., 7:30 AM delivery check)
- Confidence scoring with auto-escalation below threshold

Component 3: PCI Redaction & Security Layer

Purpose: Detect, warn, redact sensitive payment data before any downstream system receives it.

Capabilities:
- Real-time PAN/CVV/expiry pattern detection (Luhn validation for cards)
- Customer warning message with secure redirect
- Redacted transcript generation for ServiceNow
- AI handling notes for agent context
- Audit log of redaction events (metadata only, no raw PAN)

Component 4: Authentication Orchestrator

Purpose: Tiered customer verification proportional to action sensitivity.

Authentication tiers:

Tier Method Use Cases
T0 WhatsApp number possession (implicit) General enquiries, FAQ
T1 Postal code verification Delivery status, address confirmation
T2 Email + 6-digit OTP Payment status, account changes
T3 SMS OTP (alternative second factor) High-sensitivity account modifications

Component 5: Template Lifecycle Manager

Purpose: End-to-end WhatsApp template governance.

Capabilities:
- Template creation wizard (utility, authentication, marketing categories)
- Submission queue to Meta Business Manager
- Approval status tracking with webhook callbacks
- Version management (draft → submitted → approved → active → deprecated)
- Quality score monitoring dashboard
- A/B variant support for approved templates

Component 6: Notification Event Processor

Purpose: Receive Commerce backend events and dispatch transactional WhatsApp messages.

Event types supported:

Event Template Category SMS Fallback
payment_failed Utility
renewal_reminder Utility
pending_payment Utility
subscription_expiry Utility
payment_confirmed Utility
welcome_message Utility

Capabilities:
- Event webhook receiver from Commerce
- Subscriber WhatsApp capability check
- Template variable population from Commerce payload
- SMS fallback via configured SMS gateway
- Reply context token embedded in outbound message metadata
- Delivery/read/failure status as aggregated metrics only (counts) — no message content stored

Purpose: PDPA-compliant consent governance.

Capabilities:
- Opt-in prompt at conversation close (authenticated subscribers only)
- Opt-out keyword handling (STOP, UNSUBSCRIBE)
- Real-time sync to OneTrust Consent Receipt API
- Marketing frequency cap enforcement
- Admin toggles for consent capture on/off per journey
- Consent status lookup via OneTrust API; optional short-TTL cache (≤ 15 min) for pre-send validation — not a consent master record

Component 8: Analytics & WABA Health Dashboard

Purpose: Operational visibility and ROI reporting.

Dashboard modules:
- Conversation volume (inbound/outbound, by title, by language)
- AI resolution rate vs escalation rate
- CSAT scores and trend
- Notification delivery/read/click-through/conversion
- WABA quality rating, messaging tier, limit utilization
- Number warm-up progress tracker
- Agent handoff volume and first response time
- Consent opt-in rate

Component 9: Admin & Operations Portal (Web Application)

Purpose: The primary interface SPH supervisors, marketing, and IT use to manage the WhatsApp channel — accessed via web browser, no software installation.

Full screen-by-screen specification: See Section 4.6 for wireframes and descriptions of all 8 portal screens.

Capabilities:
- Home dashboard — KPIs, alerts, conversation volume at a glance
- Live conversation monitor — real-time read-only view of active chats (PCI-safe)
- Journey flow editor — drag-and-drop, no-code journey configuration
- Template management — create, preview, submit to Meta, track approval
- Analytics & ROI reports — exportable PDF/Excel for leadership
- WABA health centre — quality rating, warm-up playbook, tier monitoring
- Consent controls — OneTrust sync, opt-in/opt-out management
- Settings — user/role management, business hours, integration health panel

4.3 Integration Connectors (Not Built — Configured)

Connector Direction Protocol
Meta WhatsApp Cloud API Bidirectional HTTPS webhooks + REST
ServiceNow CSM Bidirectional VA Bot-to-Bot API + Table API
Commerce Backend Inbound events + API calls REST webhooks + REST
OneTrust Outbound consent writes REST API
Google Workspace Inbound knowledge sync Drive API + scheduled crawl
MoEngage (Phase 2) Inbound campaign triggers REST webhook
SMS Gateway Outbound fallback REST API

4.4 Cloud Hosting — No Special Hardware Required

Some architecture diagrams in this proposal show technical components (load balancers, databases, etc.). These are standard cloud services — not hardware SPH purchases or maintains.

What "Hosting" Means for SPH

Misconception Reality
"We need to buy servers" No. QUICKSALES.AI provisions virtual cloud resources (AWS/Azure Singapore). SPH pays a monthly hosting fee — same model as any SaaS product.
"We need a DMZ and load balancers" Those are cloud-managed services (e.g. AWS ALB, Azure Front Door). SPH IT only needs to allow secure API connections (VPN or private link) to ServiceNow and Commerce — not host the platform.
"Option B means SPH runs its own data centre" No. Option B means a dedicated cloud tenant with stronger isolation and SLA — still fully hosted in Singapore cloud, still browser access only.
"Redis / PostgreSQL means we store customer data" No. Redis holds ephemeral session tokens (auto-expire). PostgreSQL holds platform configuration (journeys, templates, admin settings) — not WhatsApp message content or subscriber records.

Hosting Options (Both Are Cloud — No Hardware)

Option A — Essential Option B — Professional
Hosting model Shared secure cloud tenant Dedicated cloud tenant
Region Singapore (ap-southeast-1) Singapore (ap-southeast-1)
SPH IT effort API credentials + VPN to SN/Commerce Same + optional private link
SPH buys hardware? ❌ Never ❌ Never
SPH accesses via Web browser (Admin Portal + ServiceNow) Web browser (Admin Portal + ServiceNow)

4.5 Three Interfaces — What Each Person Sees

Every stakeholder interacts through a familiar screen. There is no new desktop software to install.

Interactive UI/UX Prototype — High Fidelity

Full production-quality mockups: WhatsApp subscriber journeys (5 flows + CSAT close), ServiceNow Agent Workspace, and Admin Portal (8 screens). SPH Harmony Blue branding. Click to interact.

Open Full Screen →

Interface 1 — Subscriber: WhatsApp (Mobile)

Who: Newspaper subscribers, digital readers, parents (student publications)

Experience: Opens WhatsApp → messages SPH's verified business number → receives instant AI replies or speaks to a live agent → gets payment reminders and delivery updates as normal WhatsApp messages.

Example conversation flow:

Step What subscriber sees on phone
1 Opens WhatsApp, taps SPH verified business chat
2 Types: "My newspaper wasn't delivered today"
3 AI replies within seconds: "I'm sorry to hear that. To check your delivery, please confirm your postal code."
4 Subscriber enters postal code → AI verifies → offers redelivery or credit
5 If unresolved: "Connecting you to an agent. Expected wait: 3 minutes."
6 Live agent continues in WhatsApp — subscriber never leaves the app

No app download. No login portal for subscribers. WhatsApp is the customer interface.

Interface 2 — Agent: ServiceNow (Existing Workspace)

Who: SPH customer service agents (same team as today)

Experience: No new system to learn for core agent work. WhatsApp conversations appear in ServiceNow Agent Workspace as a channel — identical to how email or chat cases appear today.

What agents see in ServiceNow:

Screen element Description
Case queue WhatsApp cases listed with channel icon, priority, and wait time
Conversation panel Full chat transcript (card numbers already redacted)
Customer 360 Linked subscriber profile from Commerce
AI handoff summary "Customer reported missed delivery. Postal code verified. AI offered redelivery — customer declined, wants agent."
Reply box Agent types reply → automatically sent to customer's WhatsApp

Key message for SPH leadership: Agent training focus is "WhatsApp is a new channel in ServiceNow" — not a new platform.

Interface 3 — Operations: QUICKSALES.AI Admin Portal (New — We Build This)

Who: CS supervisors, marketing managers, platform administrators

Experience: Log in via web browser (Chrome/Edge/Safari) → modern dashboard with sidebar navigation → manage everything WhatsApp-related without touching code or servers.

Access URL (example): https://admin.sph-media.quicksales.ai

Roles:

Role What they can do
Viewer Read dashboards and reports only
Supervisor Monitor live chats, adjust business hours, review escalations
Marketing Manage templates, consent campaigns, MoEngage triggers (Option B)
Administrator Full access — user management, journey editor, integration settings

4.6 Admin Portal — Screen-by-Screen Guide

This section describes the concrete screens we will design and build. These are the deliverables SPH supervisors and marketing can demo to leadership — not abstract architecture diagrams.

👉 Open the interactive Admin Portal prototype — click each sidebar item to explore all 8 screens below with live UI.

Screen 1: Home Dashboard (Operations Command Centre)

Purpose: One-page morning briefing for CS leadership.

Layout:

Key widgets:

Widget What it shows Why it matters
Conversations today Inbound + outbound count Channel adoption
AI resolution rate % resolved without agent ROI proof for leadership
CSAT score Post-chat satisfaction Service quality
Escalation queue Active agent handoffs Staffing decisions
WABA health alert Meta quality rating Prevents number suspension
Integration status ServiceNow, Commerce, OneTrust connectivity IT confidence

Screen 2: Live Conversation Monitor

Purpose: Supervisor watches active WhatsApp sessions in real time (read-only, PCI-safe). This is a live stream — not a stored message archive. Closed conversations and full history are viewed in ServiceNow.

Layout:

What supervisor sees:

Column Example
Subscriber +65 **** 7890 (masked)
Title The Straits Times
Status 🟢 AI handling / 🟡 Awaiting agent / 🔴 Escalated
Journey Delivery complaint
Duration 2m 34s
Language English
Action [View transcript] [Force escalate]

Transcript view (redacted):

Customer: My paper didn't arrive today
AI: I'm sorry to hear that. Please confirm your postal code.
Customer: 238801
AI: Thank you. I can see your subscription for The Straits Times. Would you like a redelivery tomorrow or a credit?
Customer: I want to speak to someone
AI: Connecting you to an agent. Expected wait: 3 minutes.
System: Escalated to ServiceNow — Agent: Sarah Tan

Privacy: Supervisors see masked phone numbers. Card details never appear — shown as [REDACTED_CARD_NUMBER].

Screen 3: Journey Builder (No-Code Flow Editor)

Purpose: Business users configure what the AI says and does — without developers.

Layout:

Example: "Delivery Complaint" journey

Step Type Configuration
1 Trigger Intent = "missed delivery" OR "late delivery"
2 Auth Require T1 — postal code verification
3 Action Call Commerce API → get delivery status
4 Branch If delivery confirmed → offer redelivery
5 Branch If delivery failed → offer credit
6 Fallback If confidence < 80% → escalate to agent
7 Close Send CSAT survey + consent prompt

Visual editor: Drag-and-drop flowchart (similar to MoEngage journey builder or ServiceNow Flow Designer). Supervisors can adjust wording, add holiday messages, and enable/disable journeys per title (ST, ZB, BT).

Screen 4: Template Manager

Purpose: Create, submit, and track WhatsApp message templates for Meta approval.

Layout:

Template list view:

Template name Category Status Language Last used
payment_failed_v2 Utility ✅ Approved EN, ZH-CN 2 hours ago
renewal_reminder Utility ✅ Approved EN Today
welcome_new_sub Utility ⏳ Pending Meta review EN
cny_promo_2026 Marketing 📝 Draft ZH-CN

Create template wizard (4 steps):

  1. Choose category — Utility / Authentication / Marketing
  2. Write message — with variable placeholders: {{subscriber_name}}, {{amount_due}}, {{due_date}}
  3. Preview — see exactly how it renders on WhatsApp (EN and ZH-CN side by side)
  4. Submit to Meta — track approval status with email notification when approved/rejected

Screen 5: Analytics & ROI Reports

Purpose: Prove channel value to SPH leadership with exportable reports.

Layout:

Report modules:

Report Metrics Export
Channel performance Volume, resolution rate, CSAT trend PDF, Excel
Journey breakdown Top 10 intents, completion rate per journey PDF, Excel
Notification performance Sent, delivered, read, replied, converted PDF, Excel
Agent impact Handoff volume, avg handle time, agent CSAT PDF, Excel
Cost analysis WhatsApp conversation fees vs call centre savings PDF, Excel
Consent growth Opt-in rate, audience size for Phase 2 marketing PDF, Excel

Date filters: Today / 7 days / 30 days / custom range. Title filters: All / ST / ZB / BT / Magazines.

Screen 6: WABA Health Centre

Purpose: Prevent WhatsApp number suspension by monitoring Meta quality metrics.

Layout:

Key metrics:

Metric Current Threshold Status
Quality rating GREEN Must stay GREEN
Messaging tier Tier 2 (100K/day)
Daily volume 4,200 / 100,000 < 80% capacity
Block rate 0.3% < 2%
Template rejection rate 5% < 10%
Warm-up progress Day 14 of 21 Complete warm-up before marketing

Warm-up playbook (built in): Guided 3-week ramp schedule with daily send limits — supervisor sees checklist and progress bar.

Purpose: PDPA-compliant opt-in/opt-out management synced with OneTrust.

Layout:

Controls:

Control Description
Consent capture toggle Enable/disable opt-in prompt at end of each journey
Consent prompt text Editable message: "Would you like to receive offers from SPH Media on WhatsApp?"
Opt-out keywords STOP, UNSUBSCRIBE — auto-processed
Consent dashboard Total opted-in: 12,450 | Opted-out today: 23 | Synced to OneTrust: ✅
Pre-send validation Marketing messages blocked if subscriber has not consented

Screen 8: Settings & Integration Health

Purpose: IT administrator monitors connections — no server access needed.

Layout:

Integrations:

Integration Status Last sync Action
Meta WhatsApp API 🟢 Connected 2 sec ago [Test webhook]
ServiceNow CSM 🟢 Connected 5 sec ago [Test handoff]
Commerce Backend 🟢 Connected 1 min ago [Test order lookup]
OneTrust 🟢 Connected 3 min ago [Test consent write]
Google KB 🟢 Connected 15 min ago [Force re-index]
MoEngage (Option B) 🟢 Connected 10 min ago [Test campaign trigger]
SMS Gateway 🟢 Connected [Send test SMS]

Also on this screen: User management (invite/remove users, assign roles), business hours calendar, holiday schedule, audit log.

4.7 Day-in-the-Life — How Teams Use the Platform

CS Supervisor — Morning Routine (8:30 AM)

  1. Opens Admin Portal → Home Dashboard → checks overnight conversation volume and AI resolution rate
  2. Reviews WABA Health → confirms quality rating is GREEN
  3. Opens Live Monitor → sees 3 escalated chats → assigns priority in ServiceNow
  4. Checks Analytics → exports weekly PDF for leadership meeting

Marketing Manager — Campaign Setup (Option B)

  1. Opens Template Manager → creates Chinese New Year promo template → submits to Meta
  2. Waits for Meta approval (tracked in portal) → status changes to ✅ Approved
  3. Opens Consent dashboard → confirms 12,450 opted-in subscribers
  4. Triggers campaign via MoEngage → portal shows real-time delivery/read metrics

CS Agent — Handling a WhatsApp Case

  1. Works in ServiceNow (not Admin Portal) → new WhatsApp case appears in queue
  2. Reads AI handoff summary → continues conversation in reply box
  3. Reply automatically delivered to customer's WhatsApp
  4. Closes case in ServiceNow → transcript already filed

IT Administrator — Monthly Check

  1. Opens Settings → all integrations show 🟢 Connected
  2. Reviews audit log for access and configuration changes
  3. No server maintenance, patching, or backup tasks — all managed by QUICKSALES.AI

5. User Personas & Stakeholder Model

5.1 External Users (Customers)

Persona 1: Ah Beng — Print Subscriber (Lianhe Zaobao)

Attribute Detail
Age 58
Language Simplified Chinese (types), understands basic English
Channel preference WhatsApp (daily user)
Tech comfort Low-medium; prefers conversational over web forms
Typical needs Delivery complaints, vacation suspension, payment issues
Auth level Postal code (T1) for delivery; OTP (T2) for payment

Persona 2: Priya — Digital Subscriber (The Straits Times)

Attribute Detail
Age 34
Language English
Channel preference WhatsApp for quick queries; email for formal matters
Tech comfort High
Typical needs Payment update, subscription renewal, digital access issues
Auth level Email OTP (T2) for account/payment actions

Persona 3: Ahmad — Multi-Title Subscriber

Attribute Detail
Age 45
Language Malay (types), English (reads)
Channel preference WhatsApp
Typical needs Cross-title billing, address change, student publication queries
Auth level Varies by action; system detects multi-subscription context

Persona 4: Wei Ming — Payment-At-Risk Subscriber

Attribute Detail
Trigger Receives outbound payment failure notification
Behaviour Replies to WhatsApp message rather than clicking link
Risk May paste card details in chat (redaction required)
Journey Contextual reply → auth → secure payment link → confirmation

5.2 Internal Users (SPH Staff)

Persona 5: Customer Service Agent (ServiceNow)

Attribute Detail
Workspace ServiceNow Agent Workspace (unchanged)
Interaction Receives escalated WhatsApp conversations
Sees Redacted transcript, AI handling notes, case context, customer intent
Does NOT see Raw payment card data, full pre-redaction message
Actions Reply via SN interface; messages routed back through our platform to WhatsApp

Persona 6: CS Supervisor

Attribute Detail
Workspace Admin Portal + ServiceNow reports
Needs Live queue monitoring, escalation alerts, CSAT trends, agent workload
Actions Adjust business hours, review AI confidence failures, approve template submissions

Persona 7: Marketing Operations (Phase 2)

Attribute Detail
Workspace MoEngage + Admin Portal consent reports
Needs Consented subscriber segments, DNC-scrubbed send lists, campaign performance
Actions Launch campaigns via MoEngage; our platform executes WA delivery

Persona 8: Platform Administrator (IT)

Attribute Detail
Workspace Admin Portal
Needs Integration health, WABA status, API logs, user management
Actions Configure connectors, manage templates, monitor system health

6. Solution Architecture

6.0 Master Solution Diagram (One View)

This is the single reference diagram for the entire solution. It shows every actor, every system, the five main flows, and where data lives. All other diagrams in this proposal zoom into a part of this picture.

Legend: light blue = people · green = Meta/WhatsApp · Harmony blue = our platform (build) · navy = SPH systems where data persists · dashed blue = Phase 2. Letters A–E on the arrows are the five flows explained below.

How to Read the Master Diagram

Flow What happens RFP mapping Detail diagram
A — Inbound support Subscriber messages SPH → redaction → AI resolves via Commerce/KB → transcript to ServiceNow Journeys 1, 2, 4 · A1, A3, B1–B4 Section 6.2, Section 10.1
B — Outbound notification Commerce event → approved Utility template → WhatsApp (or SMS fallback) Journey 3 · C1, C2 Section 8.4, Section 10.2
C — Agent handoff AI escalates → ServiceNow agent chats through platform → subscriber's WhatsApp A1, D1, D2 Section 10.3, Section 11.2
D — Consent Opt-in captured at conversation close → written to OneTrust (master record) E1–E3 Section 10.4, Section 11.4
E — Phase 2 marketing MoEngage triggers campaign → consent check + DNC scrub → send F1–F3 Section 10.6, Section 11.6

Data residency at a glance: the QUICKSALES.AI box processes and routes — it stores no conversations, no subscriber records, no consent. Every 📁 icon marks where customer data actually persists: ServiceNow, Commerce, OneTrust — all SPH systems (Principle 2).

Diagram Index (All 31 Diagrams)

# Diagram Section Zooms into
Master Solution DiagramSection 6.0Everything — start here
1What We Will Build (summary)Section 1Platform components
2Phase roadmap timelineSection 2.2Phase 1 vs 2 schedule
3–4Why not ServiceNow-native WhatsAppSection 2.4, Section 3Architecture decision
5What hosting means for SPHSection 4.4Browser-only access
6–7Three interfaces / personasSection 4.5, Section 5Who sees what
8High-level architectureSection 6.1Full component wiring
9Data flow (inbound/outbound)Section 6.2Flow A + B detail
10Cloud infrastructure referenceSection 6.3.3Hosting stack (IT only)
11Security layersSection 6.4Perimeter → compliance
12–13Data architecture + message lifecycleSection 6.5What we store vs don't
14–17Module logic (routing, redaction, auth, notify)Section 8Flows A, B internals
18–23Sequence + state flowsSection 10Flows A–E step-by-step
24Integration topology (endpoints/auth)Section 11.0Engineering view of all legs
25Consent modelSection 13Flow D policy detail
26Gantt timelineSection 16.2Delivery plan
27–28Team structuresSection 17Governance
29Vendor landscapeSection 18.3Competitive context
30Dependency chainSection 22.2What blocks what

6.1 High-Level Architecture

6.2 Data Flow Architecture

6.3 Hosting & Deployment (How the Platform Runs)

For SPH leadership and business stakeholders: You do not buy servers, install software, or manage infrastructure. QUICKSALES.AI hosts the entire platform in Singapore cloud (AWS or Azure). Your team accesses it through a web browser — the Admin Portal for operations, and ServiceNow for agents. The diagram below is included for SPH IT review only.

6.3.1 What SPH Needs to Provide

SPH responsibility Effort Notes
API access to ServiceNow, Commerce, OneTrust One-time setup SPH IT provides credentials and sandbox
Secure network connection (VPN or private link) One-time setup So cloud platform can reach SPH internal APIs
User accounts for Admin Portal Ongoing Invite supervisors, marketing, IT via email
WABA ownership in Meta Business Manager One-time SPH retains ownership of WhatsApp number
Buy or host servers? None Fully managed by QUICKSALES.AI

6.3.2 Hosting Options (Cloud Only)

Option A — Essential Option B — Professional
Model Secure shared cloud tenant Dedicated cloud tenant
Region Singapore Singapore
Uptime SLA 99.5% business hours 99.9% 24/7
SPH hardware required None None
Admin Portal access Web browser Web browser

6.3.3 Technical Reference (For SPH IT — Optional Reading)

The platform runs on standard cloud infrastructure. SPH does not procure or manage any of these components — they are provisioned and operated by QUICKSALES.AI as part of the hosting fee.

Deployment options:
- Option A (Essential): QUICKSALES.AI-managed cloud (Singapore region), VPN to SPH systems
- Option B (Professional): Dedicated cloud tenant with enhanced isolation and SLA — still fully hosted, still browser access only

Optional add-on: "Dedicated Singapore private cloud hosting" (Section 19.6) means an isolated cloud environment for enhanced data residency — not on-premise hardware.

6.4 Security Architecture

6.5 Data Architecture — What We Store vs What We Don't

This section answers: "If customer data must live in SPH systems, why do you have databases?"

Requirement-to-Architecture Mapping

RFP / Req ID SPH requirement Our compliance
Principle 2 Customer data in SPH systems only Transcripts → ServiceNow; profiles → Commerce API; consent → OneTrust
A1 All conversations captured to ServiceNow Every message (incl. offline) written to SN in real time; not kept in vendor DB
A3 Redact sensitive data before ServiceNow sync Redaction at gateway before any downstream write
B3 AI conversations filed in ServiceNow Full redacted AI transcript synced to SN case
D2 All messages in ServiceNow for traceability Bidirectional SN sync; vendor holds no message archive
E1 Consent kept in OneTrust Platform writes to OneTrust API; does not store consent as master record
RFP PCI slide No raw card in transcript, agent console, or SN payload [REDACTED_*] tokens only; raw PAN never written anywhere

What Each Database Is For (Not Customer Data)

Component Stores Does NOT store Max retention
Redis (session cache) Hashed session ID, current journey step, context token for routing Message text, subscriber profile, billing data TTL ≤ 72 hours, then auto-delete
PostgreSQL (config DB) Journey definitions, template metadata, admin users, integration settings, aggregated metrics (counts) Conversation transcripts, subscriber PII, payment data Config: duration of contract; metrics: rolling aggregates only
Vector DB (knowledge) Embeddings of SPH knowledge articles (SN KB, Google Sites/Docs) Customer WhatsApp messages, subscriber data Refreshed from SPH sources on schedule
ServiceNow All conversation transcripts, cases, agent history Per SPH retention policy
Commerce Subscriber accounts, billing, delivery Per SPH retention policy
OneTrust Consent records Per SPH legal policy

Message Lifecycle (End to End)

Live Monitor & Analytics — No Message Archive

The Admin Portal Live Conversation Monitor shows active chats via real-time stream (not a stored archive). Historical transcripts are viewed in ServiceNow — where SPH already manages retention and access control.

Admin Portal view Data source
Live active chats Real-time event stream (ephemeral)
Historical transcripts ServiceNow API (SPH system of record)
Dashboard KPIs Aggregated counters only (no message text)

7. Detailed Requirement Compliance Matrix

ID Requirement Option A Essential Option B Professional How We Comply
A1 24/7 self-service + escalation + offline capture AI + SN handoff; all messages (incl. offline) synced to ServiceNow in real time — vendor does not retain
A2 EN, ZH-CN, MS, TA localization ⚠️ EN + ZH-CN ✅ All 4 Multilingual NLU for bots; agent UI rendering via ServiceNow (RFP: bots and live agent chats)
A3 Redaction before ServiceNow Redaction layer at gateway edge
A4 Template lifecycle management ⚠️ Basic ✅ Full Template manager with Meta sync
A5 Analytics & ROI dashboards ⚠️ Core KPIs ✅ Full Analytics engine + dashboards
A6 WABA health & warm-up ⚠️ Monitoring ✅ Full Health dashboard + warm-up playbook
B1 AI end-to-end resolution ⚠️ 8 journeys ✅ 15+ journeys Journey orchestration engine
B2 Tiered authentication Auth orchestrator (T0–T3)
B3 AI conversations in ServiceNow Redacted transcript sync via Table API
B4 SN KB + Google knowledge ⚠️ SN KB only ✅ Both RAG connectors
B5 Understand 4 langs inbound; reply EN/ZH-CN ⚠️ EN + ZH-CN reply only ✅ All 4 inbound Multilingual NLU pipeline
C1 Transactional notifications + SMS fallback Notification processor
C2 Contextual reply handling ⚠️ UC-03 only Payment-failure contextual reply (UC-03) in Option A; full notification reply (UC-05) in Option B
D1 ServiceNow CSM agent workspace VA Bot-to-Bot API integration
D2 All messages in ServiceNow All messages synced to SN; vendor does not retain message archive
E1 OneTrust + PDPA + WA policy ⚠️ Basic ✅ Full Consent bridge module
E2 Opt-in at conversation close Close-flow consent prompt
E3 Platform consent toggles Admin portal toggles
F1 MoEngage WA marketing ❌ Add-on MoEngage webhook connector
F2 Campaigns to consented base ❌ Add-on Consent validation pre-send
F3 DNC scrubbing ❌ Add-on DNC check service

Legend: ✅ Included | ⚠️ Partial/Basic | ❌ Not included (available as add-on)


8. Functional Design by Module

8.1 Module A1 — Self-Service & Intelligent Routing

Routing Decision Logic

Offline Message Handling

Scenario Behaviour
Message outside business hours AI continues self-service (24/7)
Escalation outside business hours Acknowledgment sent; case and transcript in ServiceNow; agent queue in SN AWA
Agent unavailable during hours Overflow queue in ServiceNow with estimated wait
All messages Redacted transcript written to ServiceNow immediately (SPH system of record). Vendor processes in memory only — not archived in vendor database
ServiceNow temporarily unavailable In-memory retry (≤ 15 min); alert ops; no persistent vendor storage

8.2 Module A3 — PCI Redaction Pipeline

Redaction rules:

Pattern Detection Replacement Token
Credit card PAN (13–19 digits) Luhn algorithm + BIN range [REDACTED_CARD_NUMBER]
CVV (3–4 digits near card context) Positional heuristic [REDACTED_CVV]
Expiry (MM/YY, MM/YYYY) Date pattern near card context [REDACTED_EXPIRY]
NRIC/FIN Singapore ID pattern [REDACTED_NRIC]

8.3 Module B2 — Tiered Authentication

8.4 Module C1/C2 — Notification & Contextual Reply


9. Use Cases & Customer Journeys

This section is cross-checked against Requirements - WhatsApp.pdf (22 requirement IDs A1–F3) and SPH Media WhatsApp Customer Engagement Platform - RFP.pdf (4 reference journeys + PCI control). See Appendix B for full traceability.

9.0 RFP Audit Summary

RFP source What SPH specified Proposal coverage Option A Option B
RFP Journey 1 Newspaper delivery complaint (proactive 7:30 AM follow-up, doorstep fee quote) UC-01
RFP Journey 2 Vacation suspension create + extend (reference CS-123456) UC-02
RFP Journey 3 Payment failure outbound → contextual reply → T2 OTP → secure link UC-03
RFP Journey 4 PCI redaction — no raw PAN/expiry/CVV in SN or agent console UC-04 + Section 8.2
Close pattern CSAT 1–5 → resolution check → marketing opt-in (all 3 conversational journeys) Section 9.1.0 + UC-09
C1 notifications 5 transactional types + SMS fallback Section 9.1.1 + UC-03, UC-11 ✅ all 5 sends
C2 contextual reply Reply to notification routed with context (no repeat issue) UC-03 (payment); UC-05 (renewal/expiry) ⚠️ payment only ✅ all types
A1 escalation Live agent handoff + offline capture UC-07, UC-08
A2 / B5 languages EN, ZH-CN, Malay, Tamil (bots + agents); AI replies EN or ZH-CN UC-06 ⚠️ EN + ZH-CN ✅ All 4
B4 knowledge ServiceNow KB + Google Sites/Docs/Sheets/Slides UC-14 ⚠️ SN KB only ✅ Both
Phase 2 F1–F3 MoEngage marketing, consented base, DNC scrub UC-12 ❌ Add-on

Audit note: UC-05 through UC-14 are derived from requirement IDs (C1, A1, B4, F1, etc.) — they are not separate RFP journey documents but are required for full compliance. All 4 RFP reference journeys are fully covered in both options.

9.1 RFP Reference Journeys (Mandatory)

9.1.0 Mandatory Conversation Close Pattern (All RFP Journeys)

Per RFP, every resolved conversational journey (Journeys 1–3) must end with this sequence before the session closes:

Step Prompt (RFP verbatim intent) System action Req
1 CSAT: rate experience 1–5 (1 = very dissatisfied, 5 = very satisfied) Score stored in analytics; linked to ServiceNow case A5
2 Resolution check: "Did our team manage to resolve your issue or query today?" (Yes/No) Feeds pilot KPI measurement (50%+ AI resolution) A5, B1
3 Marketing opt-in: "Would you like to receive updates, offers, and subscription-related messages from SPH Media via WhatsApp?" (Yes/No; opt out anytime) Yes → OneTrust consent receipt (E2). No → session closes, no marketing. E1, E2, E3

9.1.1 C1 Transactional Notification Catalogue

Requirements PDF Section C1 mandates these Commerce-triggered outbound types. Each uses an approved Utility WhatsApp template; SMS fallback when subscriber has no valid WhatsApp number (UC-11).

C1 notification type Commerce event (illustrative) Use case Option A — send Option A — contextual reply Option B
Payment failure alert payment_failed UC-03 (RFP Journey 3)
Renewal reminder renewal_reminder UC-05 ⚠️ generic intake ✅ full flow
Pending payment reminder payment_pending UC-05 variant ⚠️ generic intake ✅ full flow
Expiry notice subscription_expiring UC-05 variant ⚠️ generic intake ✅ full flow
Payment confirmation payment_confirmed Post-update confirmation
SMS fallback Any above when WA unavailable UC-11

UC-01: Newspaper Delivery Complaint (RFP Journey 1)

Step Actor Action System
1 Customer "I have not received my newspaper today" AI detects delivery complaint intent
2 AI Request postal code (T1 auth) Auth orchestrator
3 Customer Provides postal code Commerce API: verify + fetch subscription
4 AI Confirm subscription title (e.g. Lianhe Zaobao) and delivery address on record Display for customer confirmation (RFP Journey 1)
5 Customer Confirms address Commerce API: check delivery status
6 AI "Delivery expected by 7:30 AM" Schedule proactive follow-up
7 AI 7:30 AM: "Have you received it?" Scheduled worker
8 Customer "No!" AI escalates to delivery partner API
9 AI 7:42 AM: "Delivered to letterbox, please check" Commerce/delivery partner update
10 Customer Requests doorstep delivery AI quotes $10/month fee
11 Customer Declines AI acknowledges
12 AI CSAT + resolution check + opt-in Section 9.1.0 — mandatory close pattern
Auth tier T1 (postal code) Resolution AI-only, no agent
Requirements A1, A2, B1, B2, B3, D1, D2, E2

UC-02: Vacation Suspension (RFP Journey 2)

Step Actor Action System
1 Customer "Pause my newspaper delivery while away" AI detects suspension intent
2 AI T1 auth (postal code) Auth orchestrator
3 AI Request suspension dates
4 Customer "12 to 18 July" AI parses date range
5 AI Confirm: suspend 12–18 Jul, resume 19 Jul Commerce API: validate dates
6 Customer "Yes, proceed" Commerce API: create suspension
7 AI "Done. Reference CS-123456" Log to ServiceNow
7a AI CSAT + resolution check + opt-in Section 9.1.0 — create sub-journey close
Sub-journey: Extension
8 Customer "Extend suspension to 20 July" AI retrieves CS-123456 context
9 AI T1 re-auth + show current suspension Commerce API: get existing request
10 AI Confirm extension to 20 Jul, resume 21 Jul Commerce API: update suspension
11 AI "Reference CS-123456 remains" Update ServiceNow case
12 AI CSAT + resolution check + opt-in Section 9.1.0 — extension sub-journey close
Auth tier T1 Resolution AI-only
Requirements B1, B2, B3, D1, D2, E2

UC-03: Payment Update Support (RFP Journey 3)

Step Actor Action System
0 System Outbound Utility template (9:00 AM): payment failed — update at https://sph.sg/updatecc (official SPH domain) C1: Commerce payment_failed event → WA template + SMS fallback
1 Customer Replies: "not sure how to update my card" C2: contextual reply routing
2 AI T2 auth: request email Auth orchestrator
3 Customer Provides email OTP sent to registered email
4 Customer Enters 6-digit OTP OTP validated
5 AI Shows payment failure status + secure link Commerce API: payment status
6 Customer "Forgot my password" AI offers Option A or B
7 Customer Selects B (secure payment link) Commerce API: generate unique link
8 AI Sends https://sph.sg/xRfU (time-limited)
9 Customer "Is this link safe?" AI cites official domains page; offers live agent escalation (RFP Journey 3)
10 Customer Updates card, replies "I have updated my card" Commerce API: verify payment update
11 AI Confirms success; never asked for card details in chat (RFP security rule) Close flow + CSAT + resolution + opt-in (Section 9.1.0)
Auth tier T2 (email OTP) Resolution AI-only (agent optional if customer accepts escalation)
Requirements A1, B1, B2, B3, C1, C2, D1, D2, E2

UC-04: Sensitive Data Redaction (RFP Journey 4)

Step Actor Action System
1 Customer Pastes card number + expiry + CVV in chat Gateway receives raw message
2 Redaction Detect PAN + expiry + CVV Luhn validation + pattern match
3 AI Warn: "Do not share card details in WhatsApp" Customer-facing warning
4 Redaction Strip raw values from all downstream payloads
5 AI Provide secure payment link Commerce API
6 Platform Sync redacted transcript to ServiceNow SN case: [REDACTED_CARD_NUMBER], [REDACTED_EXPIRY], [REDACTED_CVV] — intent retained
7 Agent (if escalated) Sees intent + redacted message + AI notes + controls applied No raw PAN, expiry, or CVV in agent console (RFP mandatory)
Requirements A3, B3, D2

9.2 Extended Use Cases (Derived from Requirements)

These use cases are not illustrated as separate journeys in the RFP PDF but are required by requirement IDs A1, C1, B4, E1, F1–F3, etc. They complete full compliance beyond the 4 RFP reference flows.

UC-05: Subscription Renewal Reminder Reply

Trigger Commerce event: renewal_reminder
Outbound WA template: "Your ST subscription renews on 15 Aug"
Customer reply "Can I change to digital only?"
AI action Context-aware: knows renewal + current plan → offers digital plan options
Commerce action Quote digital plan pricing
Option A Outbound send ✅; reply routes to generic support intake (not full contextual plan-change flow)
Option B Full contextual reply with Commerce plan lookup (as described above)
Requirements C1, C2, B1, B4

UC-06: Multi-Language Enquiry (Tamil)

Trigger Customer sends message in Tamil: "என் சந்தா விவரங்களைப் பார்க்க வேண்டும்"
AI action Understand Tamil intent → "view subscription details"
AI reply English or ZH-CN (per B5): "I can help you view your subscription. Please confirm your postal code."
Requirements B5, A2, B2

UC-07: Live Agent Escalation (Complex Dispute)

Trigger Customer disputes billing after 3 AI attempts
AI action Confidence below threshold OR customer requests agent
Platform Create SN interaction via VA API → route to AWA queue
Agent Sees full redacted transcript + AI summary in ServiceNow
Agent reply Typed in SN → routed through platform → delivered on WhatsApp
Requirements A1, D1, D2, B3

UC-08: Offline Message Capture

Trigger Customer messages at 11 PM: "I need to cancel my subscription"
AI action Attempts self-service cancellation flow
If policy requires agent Acknowledgment sent; case queued in ServiceNow AWA for next business day
ServiceNow Full conversation transcript stored in ServiceNow overnight (SPH system of record)
Vendor platform Message processed transiently; transcript synced to SN — not retained on vendor
Next morning Agent picks up case from ServiceNow with full context
Requirements A1, D2

UC-09: Marketing Opt-In at Close

Trigger Any resolved conversation with authenticated subscriber
AI action CSAT → resolution check → "Receive updates via WhatsApp?"
Customer Replies "Yes"
Platform Write consent receipt to OneTrust
Phase 2 Subscriber available for MoEngage campaigns
Requirements E1, E2, E3

UC-10: Opt-Out Handling

Trigger Customer sends "STOP" or "unsubscribe"
Platform Process opt-out immediately
OneTrust Update consent record
Effect No marketing messages; transactional/utility still allowed per WA policy
Requirements E1, E3

UC-11: SMS Fallback for Non-WhatsApp Subscriber

Trigger Commerce event: payment_failed for subscriber without WA
Platform WA capability check fails
Fallback Send SMS with payment update link
Analytics Log channel used (WA vs SMS)
Requirements C1, A5

UC-12: Phase 2 — Winback Campaign (Professional Only)

Trigger MoEngage: subscriber lapsed 30 days
Pre-send Check OneTrust consent ✅ → DNC scrub ✅
Send WA marketing template with renewal offer
Reply Customer replies → contextual AI support flow
Requirements F1, F2, F3

UC-13: Address Change Request

Trigger "I moved to a new address"
Auth T2 (email OTP) — address is sensitive
AI Collect new address → confirm → Commerce API update
ServiceNow Case logged with change details
Requirements B1, B2, B3

UC-14: Digital Access Issue

Trigger "I can't access my digital subscription"
Auth T1 (postal code) or T2 depending on action
AI Check subscription status → KB article for troubleshooting
Knowledge SN KB (Option A); SN KB + Google Workspace (Option B)
Requirements B1, B4

UC-15: Student Publication Parent Query

Trigger "When does my child's Young Generation magazine arrive?"
AI Identify student publication context → delivery schedule from KB
Multi-title Route to correct publication metadata
Requirements B1, B4, A2

9.3 Option A vs Option B — Journey Coverage

# Journey / use case RFP source Option A (8 core) Option B (15+)
1 Delivery complaint RFP Journey 1 ✅ UC-01
2 Vacation suspend + extend RFP Journey 2 ✅ UC-02
3 Payment failure reply + secure link RFP Journey 3 ✅ UC-03
4 PCI redaction (all journeys) RFP Journey 4 ✅ UC-04
5 Live agent escalation A1, D1 ✅ UC-07
6 Offline message capture A1 ✅ UC-08
7 Subscription status / general FAQ B1, B4
8 Opt-in / opt-out at close E1–E3 ✅ UC-09/10
9 Renewal / expiry notification reply C1, C2 ⚠️ send + generic intake ✅ UC-05
10 Multi-language (Malay, Tamil) A2, B5 ✅ UC-06
11 Address change B1, B2 ✅ UC-13
12 Digital access / KB lookup B4 ⚠️ SN KB only ✅ UC-14
13 SMS fallback C1 ✅ UC-11
14 Student publication query SPH portfolio ✅ UC-15
15 Phase 2 winback campaign F1–F3 ✅ UC-12

Option A delivers all 4 RFP reference journeys + A1 escalation/offline + E consent + C1 sends. Option B adds full C2 contextual flows, Malay/Tamil, Google KB, extended journeys, and Phase 2 marketing.

9.4 Requirement Compliance Scorecard (22 IDs)

Phase IDs Option A Option B
Phase 1 Platform A1–A6 ✅✅⚠️⚠️⚠️⚠️ (4 partial) ✅ all full
Phase 1 AI B1–B5 ⚠️✅✅⚠️⚠️ ✅ all full
Phase 1 Notifications C1–C2 ✅ ⚠️ ✅ ✅
Phase 1 ServiceNow D1–D2 ✅ ✅ ✅ ✅
Phase 1 Consent E1–E3 ⚠️✅✅ ✅✅✅
Phase 2 Marketing F1–F3 ❌❌❌ ✅✅✅

RFP journeys: 4/4 covered in both options. Full 22/22 compliance: Option B only. Option A: 16 full + 6 partial = pilot-ready per SPH scope.


10. Process Flows & Sequence Diagrams

10.1 End-to-End Inbound Support Flow

10.2 Outbound Notification Flow

10.3 Live Agent Handoff Flow

10.5 Template Lifecycle Flow

10.6 Phase 2 Marketing Campaign Flow


11. Integration Design — Technical Specification

This section is the integration engineering specification — protocols, endpoints, payloads, ServiceNow table mappings, and discovery dependencies. Generic descriptions are replaced with implementable detail.

11.0 End-to-End Integration Topology

Leg Protocol Auth Direction Data persisted
Meta ↔ Platform HTTPS webhooks + Graph API X-Hub-Signature-256 HMAC Bidirectional None on platform (messages → SN)
Platform ↔ ServiceNow REST (VA API async + Table API) OAuth 2.0 client credentials or Message Auth token Bidirectional ServiceNow (cases, interactions)
Commerce ↔ Platform REST + HTTPS webhooks OAuth 2.0 / mTLS (TBD) Bidirectional Commerce (subscriber); platform transient
Platform ↔ OneTrust REST Collection point JWT + API key Outbound + lookup OneTrust (consent)
MoEngage → Platform HTTPS webhook HMAC shared secret Inbound trigger None (consent check via OT)
Platform → SMS BSP REST Provider API key Outbound only Delivery status aggregate only

11.1 Meta WhatsApp Cloud API

SPH owns the WABA. QUICKSALES.AI registers as Meta Tech Provider / solution partner and configures webhooks on SPH's WABA.

Webhook Subscription (Platform Receives)

Field Value
Callback URL https://api.sph-media.quicksales.ai/v1/webhooks/meta
Verify token SPH-approved static token (Meta challenge handshake)
Subscribed fields messages, message_template_status_update, phone_number_quality_update

Inbound Webhook Payload (Simplified — Meta Cloud API)

{
  "object": "whatsapp_business_account",
  "entry": [{
    "id": "WABA_ID",
    "changes": [{
      "field": "messages",
      "value": {
        "messaging_product": "whatsapp",
        "metadata": { "phone_number_id": "PHONE_NUMBER_ID", "display_phone_number": "65XXXXXXXX" },
        "contacts": [{ "wa_id": "6591234567", "profile": { "name": "Customer" } }],
        "messages": [{
          "from": "6591234567",
          "id": "wamid.HBgLN...",
          "timestamp": "1720412345",
          "type": "text",
          "text": { "body": "I have not received my newspaper today" },
          "context": { "id": "wamid.OUTBOUND_REF", "from": "6598765432" }
        }]
      }
    }]
  }]
}

Processing steps: (1) Verify HMAC signature → (2) PCI redaction on text.body → (3) Resolve context.id for C2 notification reply → (4) Lookup subscriber via Commerce API using from (MSISDN) → (5) Sync redacted message to ServiceNow interaction → (6) AI process → (7) POST /{PHONE_NUMBER_ID}/messages reply.

Outbound Send (Utility Template — Payment Failed, RFP Journey 3)

POST https://graph.facebook.com/v21.0/{PHONE_NUMBER_ID}/messages
{
  "messaging_product": "whatsapp",
  "to": "6591234567",
  "type": "template",
  "template": {
    "name": "payment_failed_v1",
    "language": { "code": "en" },
    "components": [{
      "type": "body",
      "parameters": [
        { "type": "text", "text": "07/07/26" }
      ]
    }]
  }
}

Context token for C2: Platform stores wamid of outbound message as context_token in ephemeral session (Redis TTL) — when customer replies, messages[].context.id links to payment_failed event payload from Commerce.


11.2 ServiceNow CSM — Primary Integration (D1, D2, B3, A1)

Architecture Decision: Primary Bot = QUICKSALES.AI

Per ServiceNow Virtual Agent Bot Integration API (Yokohama+), QUICKSALES.AI is the primary bot. ServiceNow CSM is the secondary system for live agents and persistent records.

SN component Table / record Purpose
Provider Application sys_cs_provider_application Channel identity; Inbound ID = our appInboundId
Message Auth message_auth Static or hash token for inbound API verification
Outbound config sn_va_as_service_outbound_configuration SN async callbacks to our webhook URL
Customer case sn_customerservice_case Case per subscriber issue (e.g. INC-2026-0712 in RFP)
Interaction interaction Messaging session; transcript fields
Knowledge kb_knowledge B4 SN KB articles for RAG
AWA queue awa_queue / work item D1 agent routing for escalations

SPH IT Configuration Checklist (Week 1–2)

Step ServiceNow artifact Action
1 Plugin com.glide.cs.chatbot Verify installed (Virtual Agent API)
2 sys_cs_provider_application Create "QUICKSALES.AI WhatsApp" provider; note Inbound ID
3 message_auth Configure static token; link to provider
4 sn_va_as_service_outbound_configuration Set outbound REST to https://api.sph-media.quicksales.ai/v1/webhooks/servicenow
5 OAuth entity Create client credentials for Table API access
6 AWA Map WhatsApp escalation to existing CS queue
7 CSM workspace Enable async messaging channel for Agent Workspace

VA Bot-to-Bot — Escalate to Live Agent (RFP Journey 1, UC-07)

POST https://{sph-instance}.service-now.com/api/sn_va_as_service/bot/integration
Authorization: Bearer {oauth_token}
Content-Type: application/json

{
  "requestId": "qs-uuid-001",
  "clientSessionId": "wa-6591234567-20260708",
  "appInboundId": "{SPH_PROVIDER_INBOUND_ID}",
  "emailId": "tan.wei.ming@email.com",
  "action": "AGENT",
  "isBotMessage": false,
  "message": {
    "type": "text",
    "text": "Customer disputes delivery after 3 AI attempts. Needs agent.",
    "displayName": "Customer"
  },
  "history": [
    { "isBotMessage": false, "type": "text", "value": "My paper wasn't delivered", "displayName": "Customer" },
    { "isBotMessage": true, "type": "text", "value": "I can help check delivery...", "displayName": "Bot" }
  ],
  "contextVariables": {
    "requester_session_language": "en",
    "live_agent_only": "true",
    "topic": "{AWA_QUEUE_TOPIC_SYS_ID}"
  },
  "customPayload": {
    "sph_subscriber_id": "SUB-123456",
    "sph_title": "Lianhe Zaobao",
    "sph_intent": "delivery_complaint",
    "pci_redacted": "true"
  }
}

Note: history[] contains redacted messages only (A3). Raw card data never included.

ServiceNow Async Callback (Agent Reply → Platform → WhatsApp)

When agent types in Agent Workspace, SN POSTs to our outbound webhook:

{
  "requestId": "sn-response-uuid",
  "clientSessionId": "wa-6591234567-20260708",
  "message": {
    "type": "text",
    "text": "I've contacted our delivery partner to expedite.",
    "displayName": "Sarah Tan"
  },
  "isBotMessage": true,
  "agent": true
}

Platform maps clientSessionId → WhatsApp to number → sends via Meta Graph API.

Table API — Persist Transcript (D2, B3)

PATCH https://{sph-instance}.service-now.com/api/now/table/interaction/{sys_id}
{
  "work_notes": "[REDACTED] Customer: missed delivery\nAI: verified postal code 238801\nAI: offered redelivery\nCustomer: requests agent",
  "channel": "whatsapp",
  "u_pci_controls_applied": true
}

All messages (inbound, outbound, offline) written to interaction / linked sn_customerservice_casenot to vendor database.


11.3 SPH Commerce Backend — API Contract (Discovery-Dependent)

Critical dependency: Commerce is SPH's proprietary subscription system. Endpoints below are the contract we will finalize in Week 1 discovery against SPH's OpenAPI documentation. Journey mapping is from RFP verbatim.

RFP Journey → Commerce API Mapping

RFP journey Commerce capability required RFP evidence
Delivery complaint GET /delivery/{sub_id}/status, POST /delivery/{sub_id}/redelivery Journey 1: verify postal code, check delivery by 7:30 AM
Vacation suspend/extend POST /subscriptions/{id}/suspension, PATCH .../suspension/{ref} Journey 2: CS-123456 reference number
Payment failure reply GET /billing/{id}/status, POST /billing/payment-link Journey 3: sph.sg/updatecc, sph.sg/xRfU
Password reset option POST /accounts/password-reset Journey 3: Option A
Payment update verify GET /billing/{id}/payment-method/status Journey 3: "I have updated my card"
Doorstep delivery offer GET /delivery/options, fee $10/month Journey 1: doorstep upsell

Inbound Webhook — Commerce → Platform (C1)

POST https://api.sph-media.quicksales.ai/v1/webhooks/commerce
X-SPH-Signature: sha256={hmac_of_body}

{
  "event_id": "evt_uuid",
  "event_type": "payment_failed",
  "timestamp": "2026-07-08T09:00:00+08:00",
  "subscriber": {
    "subscriber_id": "SUB-123456",
    "msisdn": "6591234567",
    "email": "tan.wei.ming@email.com",
    "title": "Lianhe Zaobao Digital"
  },
  "payload": {
    "amount": 28.90,
    "currency": "SGD",
    "due_date": "2026-07-07",
    "payment_update_url": "https://sph.sg/updatecc"
  }
}

Platform actions: (1) Idempotency check on event_id → (2) WA capability check on msisdn → (3) Send Meta utility template → (4) Store context_token in ephemeral session → (5) Log outbound record to ServiceNow via Table API → (6) If no WA, SMS fallback (C1).

Outbound Lookup — Platform → Commerce (B2 Auth)

GET /api/v1/subscribers/lookup?msisdn=6591234567
→ { subscriber_id, titles[], delivery_address_masked, auth_tier_required }

POST /api/v1/subscribers/verify
{ "subscriber_id": "SUB-123456", "postal_code": "238801" }
→ { "verified": true, "auth_tier": "T1" }

Data handling: Response used in-memory during session. Not persisted in vendor PostgreSQL (Principle 2).


E1 requirement: "These information would be kept within OneTrust" — platform writes consent; does not store master record.

POST https://privacyportal.onetrust.com/request/v1/consentreceipts
Content-Type: application/json

{
  "identifier": "6591234567",
  "identifierType": "Phone",
  "requestInformation": "{JWT_FROM_SPH_COLLECTION_POINT}",
  "purposes": [{
    "Id": "{SPH_WHATSAPP_MARKETING_PURPOSE_GUID}",
    "TransactionType": "CONFIRMED"
  }],
  "interactionDate": "2026-07-08T07:52:00+08:00",
  "dsDataElements": {
    "sph_subscriber_id": "SUB-123456",
    "sph_title": "Lianhe Zaobao",
    "channel": "whatsapp"
  }
}
GET https://app.onetrust.com/api/consent/v2/datasubjects/6591234567/purposes
→ Check {SPH_WHATSAPP_MARKETING_PURPOSE_GUID} status == OPT_IN

Optional short-TTL cache (≤ 15 min) for batch campaign sends — not consent master record.

Opt-Out (E3) — STOP Keyword

{
  "purposes": [{
    "Id": "{SPH_WHATSAPP_MARKETING_PURPOSE_GUID}",
    "TransactionType": "OPT_OUT"
  }],
  "withdrawnDate": "2026-07-08T10:00:00+08:00"
}

Discovery required: SPH OneTrust tenant hostname (prod/UAT), collection point JWT, purpose GUIDs for marketing vs utility.


11.5 Knowledge Integration — ServiceNow KB + Google Workspace (B4)

ServiceNow Knowledge Base

GET /api/now/table/kb_knowledge?sysparm_query=active=true^workflow_state=published^language=en
&sysparm_fields=sys_id,short_description,text,kb_category,meta

Indexed into vector DB (embeddings of article text only). Sync schedule: daily + on-demand re-index from Admin Portal.

Google Workspace (Option B)

Source API Scope
Google Sites Drive API files.export + Sites sitemap crawl Read-only service account
Google Docs GET /drive/v3/files/{id}/export?mimeType=text/plain Shared drive IDs from SPH
Google Sheets (FAQ) Export as CSV → chunk FAQ rows Sheet IDs from SPH
Google Slides Export as PDF → text extract Product guides

Exclusion list: SPH provides internal-only doc IDs to exclude from index (Discovery Q6.5).


11.6 MoEngage — Phase 2 Connected Channel (F1, F2)

Why not MoEngage native WhatsApp BSP connector? MoEngage's native connectors (Exotel, MSG91, etc.) send WhatsApp directly from MoEngage, bypassing our PCI redaction, OneTrust pre-check, and DNC scrub layer. SPH's RFP requires our platform to own WABA orchestration; MoEngage triggers campaigns into our platform.

Integration Pattern: MoEngage Connected App → QUICKSALES.AI

Step Component Detail
1 MoEngage Connected App SPH registers QUICKSALES.AI as custom Connected Channel
2 Channel Connector JSON Defines our webhook URL + auth headers
3 Campaign action MoEngage sends segment + template name on campaign fire
4 Platform pre-send OneTrust consent ✅ → DNC scrub ✅ → Meta template send
5 Delivery callback Platform POSTs delivery/read status to MoEngage tracking URL

MoEngage Campaign Webhook (Inbound to Platform)

POST https://api.sph-media.quicksales.ai/v1/webhooks/moengage
X-MoEngage-Signature: {hmac}

{
  "campaign_id": "winback_lapsed_30d",
  "template_name": "cny_promo_2026",
  "segment_id": "seg_uuid",
  "recipients": [
    { "subscriber_id": "SUB-123456", "msisdn": "6591234567", "attributes": { "title": "ST", "lapse_days": 30 } }
  ]
}

Platform processing: For each recipient → OneTrust marketing consent check → PDPC DNC scrub → Meta marketing template send → aggregate delivery metrics back to MoEngage.


11.7 SMS Fallback + DNC (C1, F3)

SMS Fallback Interface (Provider TBD — Discovery Section 8)

POST {SMS_PROVIDER_URL}/messages
{
  "to": "+6591234567",
  "from": "SPHMedia",
  "body": "[Action required] Your subscription payment failed. Update at https://sph.sg/updatecc by 07/07/26"
}

Triggered when: Commerce event fires AND Meta GET /{phone_number_id}/contacts returns no WhatsApp capability OR delivery fails after retry.

DNC Registry Scrub (F3)

Before Phase 2 marketing batch:
1. Extract MSISDN list from MoEngage payload
2. Submit to SPH's DNC check service (PDPC registry API or SPH internal scrub — TBD in discovery)
3. Exclude DNC-flagged numbers; audit log scrub result count (metadata only)


11.8 Integration Readiness Matrix

Integration Discovery doc needed SPH owner Sandbox required Week target Blocker if missing
Meta WABA Business Manager access Marketing/IT Meta test number W1 Cannot send/receive WA
ServiceNow CSM Instance URL, OAuth, provider setup SN admin UAT instance W1 Cannot file conversations (D2)
Commerce OpenAPI spec Commerce team UAT API W1 Cannot build any RFP journey
OneTrust Collection point JWT, purpose IDs Legal/IT UAT tenant W3 Cannot capture opt-in (E2)
Google KB Drive service account, doc IDs IT N/A W4 Option B B4 gap
MoEngage Connected App approval Marketing UAT workspace W20 Phase 2 blocked
SMS Provider API credentials IT/Telco Test sender W2 C1 SMS fallback blocked
DNC Scrub API or batch process Legal N/A W20 F3 blocked

12. Security, PCI & Sensitive Data Controls

12.1 PCI DSS Alignment

While WhatsApp chat is not a card processing channel, SPH's requirement (A3) mandates PCI-aligned handling:

Control Implementation
No PAN storage Platform never persists raw card numbers — anywhere
Detection at edge Redaction before ServiceNow write; no raw payload in vendor DB
Agent protection ServiceNow receives only redacted tokens ([REDACTED_CARD_NUMBER])
RFP alignment No raw card, expiry, or CVV in transcript, agent console, or SN case payload
Audit trail Redaction events logged (timestamp, pattern type — not value)
Secure alternatives Payment links generated by Commerce (PCI-compliant hosted page)

12.2 Data Classification

Classification Examples Handling
Restricted PAN, CVV, NRIC Detect → redact → never store (vendor or ServiceNow raw)
Confidential Subscriber profile, billing Fetched from Commerce API during session — not persisted in vendor DB
Internal Session tokens, journey step, aggregated counts Ephemeral cache (TTL) or config DB — no message text
Public KB articles, template content Vector index of SPH knowledge sources only

12.3 Encryption

Layer Standard
In transit TLS 1.3 for all API communications
At rest AES-256 for platform configuration databases only (no customer transcripts)
Secrets Vault-managed API keys and tokens
Webhook verification Meta HMAC signature validation

13. PDPA & Regulatory Compliance

13.1 Personal Data Protection Act (Singapore) Compliance

PDPA Obligation Mapping

PDPA Obligation Section Our Compliance Measure
Consent Obligation Sections 13–17 OneTrust consent capture; explicit opt-in for marketing; utility messages under legitimate business purpose
Purpose Limitation Section 18 Data collected only for stated purpose (support, notifications, marketing with consent)
Notification Obligation Section 20 Privacy notice link in first interaction; opt-in prompt explains data use
Access & Correction Sections 21–22 Subscriber can request data access via agent; Commerce is source of truth
Accuracy Obligation Section 23 Commerce backend provides authoritative subscriber data
Protection Obligation Section 24 Encryption, access controls, redaction, no unnecessary retention
Retention Limitation Section 25 Conversation retention managed by ServiceNow (SPH policy). Vendor retains only ephemeral session cache (TTL ≤ 72 hrs) and aggregated analytics — no message archive.
Transfer Limitation Section 26 All data processing in Singapore region; no cross-border transfer without SPH approval
Data Breach Notification Section 26D Incident response plan with 72-hour notification to SPH PDPO

Data Processing Agreement (DPA)

We will execute a DPA with SPH Media covering:
- Data processor obligations under PDPA
- Sub-processor disclosure (cloud hosting, SMS gateway)
- Data residency in Singapore
- Right to audit
- Data return/deletion on contract termination
- Breach notification procedures

Do Not Call (DNC) Registry — Phase 2

Step Action
1 MoEngage triggers campaign with phone list
2 Platform submits numbers to DNC registry check
3 Numbers on DNC list excluded from send
4 Audit log of scrub results retained
5 Only consented + DNC-clear numbers receive marketing messages

Requirement F3 compliance.

13.2 Data Residency & Storage Locations

Data Type System of record Vendor platform handling
WhatsApp conversation transcripts ServiceNow (SPH) Real-time redact → sync to SN → discard from vendor
Subscriber PII (name, address, billing) Commerce (SPH) Transient API lookup during active session — not written to vendor DB
Consent records OneTrust (SPH) Write via API; OneTrust is master — optional pre-send cache (TTL ≤ 15 min) only
Active session state (routing step, context token) Redis with TTL 24–72 hours — no message body
Platform configuration (journeys, templates, admin) Vendor config DB Operational settings only — no customer data
Knowledge embeddings Vendor vector DB SPH KB article content only — not customer chats
Analytics Vendor aggregates Counts and rates only — e.g. resolution %, volume — no message text

Principle 2 compliance: Customer data resides exclusively in SPH Media systems. The vendor platform is a transient processing layer — it routes, redacts, and orchestrates, then persists conversation records to ServiceNow and discards message content from its own systems.


14. WhatsApp Business Policy Compliance

SPH and QUICKSALES.AI share a common concern: will Meta restrict or block the SPH WhatsApp Business Account (WABA)? This section explains the risk honestly, why Phase 1 support is a policy-safe use case, and the controls we build to protect the number.

14.1 Plain English — Will Meta Block SPH?

Concern Answer
"We don't know if Meta will approve this" SPH already operates a verified business. Customer-initiated support on WhatsApp is an explicitly permitted use case under Meta's Business Messaging Policy. SPH owns the WABA; we implement within Meta's rules — we do not bypass them.
"What if subscribers report us as spam?" Support conversations start because the customer messaged SPH first or replied to a transactional notification they requested (delivery, payment, renewal). We do not cold-message subscribers in Phase 1. Reports and blocks are monitored; spike alerts trigger volume reduction.
"What about outbound notifications?" Only Utility or Authentication templates (payment failed, delivery update, OTP) — never Marketing in Phase 1 without consent. Every outbound send is tied to a Commerce event. Marketing campaigns are Phase 2 with OneTrust opt-in only.
"Can we lose the number mid-pilot?" Meta restricts numbers when quality rating drops (too many blocks/reports) or policy violations occur (unsolicited marketing, wrong template category, sending outside 24-hour window without template). Our platform enforces these rules before messages leave the gateway — violations are blocked in software, not discovered by Meta after the fact.

14.2 Why Phase 1 Support Is Low Risk

Meta treats messaging differently depending on who started the conversation and what category the message falls under:

Scenario Who initiates Meta policy treatment SPH Phase 1?
Inbound support — subscriber asks about delivery, billing, account Customer ✅ Permitted. Free-form replies allowed for 24 hours after customer's last message. Primary use case
Transactional notification — payment failed, paper not delivered SPH (template) ✅ Permitted with Utility template approved by Meta. Customer can reply; 24-hour window opens on reply. ✅ Included (C1/C2)
OTP / authentication SPH (template) ✅ Permitted with Authentication template. ✅ Tiered auth (B2)
Marketing / promotions — offers, winback, upsell SPH (template) ⚠️ Requires Marketing template + explicit opt-in. Higher block risk if sent without consent. ❌ Phase 2 only (F1/F2)
Unsolicited bulk messaging — cold outreach to subscriber list SPH Prohibited. Primary cause of number restriction. Never. Platform blocks at send time.

Key point for SPH stakeholders: When a subscriber messages SPH for support, Meta expects SPH to reply. That is not spam — it is the intended use of WhatsApp Business API for customer service. Risk increases only when SPH (or a vendor) sends messages the customer did not ask for, uses the wrong template category, or ignores opt-out requests.

14.3 What Meta Can Restrict — and Why

Meta action Typical trigger Our prevention
Quality rating → Yellow Elevated user blocks or "Report spam" on outbound messages WABA Health dashboard (A6); pause outbound volume; review template content; no marketing in Phase 1
Quality rating → Red Sustained high block rate; policy complaints Automatic outbound throttle; escalate to SPH + QUICKSALES.AI war room; SMS fallback for critical Utility only
Messaging limit reduction New number; sudden volume spike; poor quality history 21-day warm-up playbook (Screen 6); tier-aware rate limiting at gateway
Template rejection Promotional language in Utility template; missing opt-out; wrong category Template pre-review against Meta guidelines before submission; category enforcement in template manager
24-hour window violation Free-form agent reply sent >24 hrs after customer's last message Session clock on every conversation; UI blocks free-form send; prompts agent to use approved template or wait for customer reply
Number flag / restriction Repeated policy violations; unverified business; prohibited content PCI redaction; no prohibited content categories; SPH Business Verification support; audit trail

14.4 Platform Enforcement (Before Meta Sees a Message)

QUICKSALES.AI acts as a policy gate between SPH operations and Meta's API. Messages that would violate policy are blocked in software with a clear error to the agent or admin — not sent and then penalised by Meta.

Control What it does
24-hour session tracker Every conversation stores last customer message timestamp. Free-form replies disabled when window expired.
Template category lock Phase 1 outbound queue accepts only Utility + Authentication templates. Marketing templates disabled until Phase 2 flag + OneTrust consent check.
Consent pre-send gate Phase 2 marketing: API call to OneTrust before every campaign send. No consent = message blocked.
Opt-out processor STOP / UNSUBSCRIBE keywords → immediate opt-out in OneTrust + block list. No further outbound to that number.
Rate limiter Aligned to Meta messaging tier + warm-up daily caps. Prevents accidental volume spikes.
Quality monitor Polls Meta phone_number_quality_update webhook. Dashboard shows GREEN/YELLOW/RED with recommended actions.
Agent guardrails ServiceNow agents reply through platform rules — cannot bypass template requirement outside 24-hour window.

14.5 WABA Warm-Up and Pilot Ramp

New or reactivated numbers must not jump to full volume on day one. Our built-in 21-day warm-up playbook (Admin Portal → WABA Health Centre) guides SPH through a safe ramp:

Week Focus Volume guidance
Week 1 Inbound support only; test Utility templates with internal team Low outbound; monitor quality daily
Week 2 Enable transactional notifications to small subscriber cohort Gradual increase per Meta tier; watch block rate
Week 3 Expand notification coverage; full inbound AI journeys live Approach tier capacity only if quality stays GREEN
Post warm-up Steady-state operations; Phase 2 marketing only after opt-in base established Marketing volume capped by consent audience size

14.6 If Quality Rating Drops — Escalation Playbook

Rating Immediate action SPH owner
GREEN Normal operations. Weekly quality review in governance meeting. Operations lead
YELLOW Pause all non-essential outbound for 48 hrs. Review last 7 days templates and block reasons. Reduce notification batch size 50%. Operations + QUICKSALES.AI
RED Stop outbound marketing immediately. Utility-only for critical Commerce events. War room within 4 hours. Meta Business Support ticket if needed. SMS fallback for payment/delivery alerts. SPH sponsor + QUICKSALES.AI + Legal

14.7 Policy Requirement Matrix

Policy Requirement Our Implementation
24-hour messaging window Session tracking; template messages for out-of-window; agent UI blocks violations
Template categories Utility for transactional; marketing for campaigns (Phase 2 + consent); authentication for OTP
Opt-in for marketing E2: explicit opt-in at conversation close; OneTrust master record
Opt-out handling STOP keyword + OneTrust revocation within 24 hours; platform block list
Quality rating maintenance A6: health dashboard, proactive monitoring, warm-up, Yellow/Red playbook
Message frequency caps E1: marketing frequency controls via OneTrust; gateway rate limiter
Business verification SPH-owned WABA in SPH Meta Business Manager; verification support included
User-initiated support Phase 1 primary channel; AI + agent replies only within active sessions

Honest caveat: Meta retains final authority over any WABA. No vendor can guarantee zero restrictions. What we guarantee is policy-by-design architecture, pre-send enforcement, continuous quality monitoring, and a documented escalation playbook — so SPH is never surprised and never dependent on hope alone.


15. Analytics, KPIs & Pilot Success Metrics

15.1 Dashboard Modules

Executive Dashboard

  • Total conversations (daily/weekly/monthly)
  • AI resolution rate trend
  • CSAT score trend
  • Channel shift (% of digital support on WhatsApp)
  • Cost per resolution (AI vs agent)

Operations Dashboard

  • Live queue depth and wait times
  • Escalation rate by journey type
  • Agent handoff volume
  • Offline message backlog (from ServiceNow queue metrics)
  • First response time (AI and agent)

Notification Dashboard

  • Delivery rate (WA and SMS)
  • Read rate
  • Click-through rate (link clicks)
  • Conversion rate (payment updated after notification)
  • SMS fallback rate

Compliance Dashboard

  • Consent opt-in rate
  • Opt-out volume
  • Redaction events
  • DNC scrub results (Phase 2)
  • Template quality scores

WABA Health Dashboard

  • Quality rating (Green/Yellow/Red)
  • Messaging tier and limit utilization
  • Phone number status
  • Warm-up progress
  • Blocked/flagged alerts

15.2 Pilot Targets (3 Months)

KPI Baseline Target Measurement
AI resolution rate 0% ≥ 50% Conversations closed without agent escalation
WhatsApp CSAT 50–60% (web chat) ≥ 80% Post-conversation 1–5 rating
Chat channel share 15% ≥ 30% WA conversations / total digital support
Notification delivery ≥ 95% Delivered / sent
Consent opt-in rate 0% Track & optimize Opt-ins / eligible conversations
Escalation rate ≤ 50% Monitor and tune AI

16. Implementation Methodology & Project Plan

16.1 Methodology

We follow an Agile delivery model with 2-week sprints, fortnightly demos to SPH stakeholders, and a 3-month pilot measurement window.

16.1.1 Week 1 — Technical Discovery Workshop (Removes All TBDs)

Before development starts, SPH completes Technical Discovery (included in this package). QUICKSALES.AI runs a structured workshop to convert SPH inputs into signed integration contracts.

Day Activity SPH attendees Output
D1 Kickoff + pack review Sponsor, PM, all tech leads RACI, access request list
D2 Commerce API contract workshop Commerce team, integration dev Signed endpoint mapping; OpenAPI imported
D3 ServiceNow CSM setup SN admin, AWA lead UAT provider app; OAuth credentials; VA API smoke test
D4 OneTrust + SMS + network Legal, IT, telco Purpose GUIDs; SMS adapter spec; VPN/firewall rules
D5 Contract sign-off + updated spec PM, tech leads Proposal Section 11 updated with real URLs; sprint 1 backlog

Critical inputs SPH must provide (Integration Pack sections)

# Input Pack section Replaces in proposal
1 Commerce OpenAPI / Swagger + sandbox URL A Section 11.3 illustrative endpoints
2 ServiceNow instance URL + version + UAT OAuth B Section 11.2 {sph-instance} placeholders
3 OneTrust tenant + purpose GUIDs + collection point JWT C Section 11.4 purpose {GUID} placeholders
4 SMS provider name + API credentials D Section 11.7 provider TBD
5 MoEngage workspace + Connected App approval E Section 11.6 Phase 2 trigger

Until SPH returns the Integration Pack, Section 11 endpoints marked TBD or illustrative remain contract proposals — not production URLs. This is intentional and technically honest.

Post-discovery deliverables (QUICKSALES.AI → SPH)

Deliverable Format
Commerce API Integration Specification v1.0 PDF + OpenAPI merge request
ServiceNow Integration Runbook Provider app config steps + test scripts
OneTrust Consent Flow Diagram With SPH purpose IDs
Updated Technical Proposal Section 11 Updated HTML proposal — no TBD on confirmed items
Integration test checklist Per-system pass/fail for UAT

16.2 Project Timeline — Option B (Professional)

Total duration: ~7 months to pilot go-live (Option B); ~5 months (Option A)

16.3 Sprint Plan Summary — Option A (Essential)

Sprint Weeks Deliverables
S1 1–2 Discovery, architecture sign-off, environment setup
S2 3–4 WABA setup, gateway, webhook, basic SN integration
S3 5–6 AI engine, 4 core journeys, postal code auth
S4 7–8 4 more journeys, redaction layer, OTP auth
S5 9–10 Notification processor, 3 transactional templates, SMS fallback
S6 11–12 OneTrust basic consent, CSAT close flow
S7 13–14 Analytics core dashboard, SIT
S8 15–16 UAT, pilot go-live, hypercare begins

16.4 Sprint Plan Summary — Option B (Professional)

Sprint Weeks Deliverables
S1–S2 1–4 Discovery, full architecture, all integration discovery
S3–S4 5–8 Platform foundation, SN full integration, Commerce full API
S5–S7 9–14 AI engine, 15+ journeys, multilingual, Google KB
S8–S9 15–18 Redaction, full auth tiers, template lifecycle
S10–S11 19–22 Notifications (all events), contextual reply, OneTrust full
S12–S13 23–26 Analytics full suite, WABA health, admin portal
S14–S15 27–30 MoEngage integration, DNC scrubbing, Phase 2 templates
S16–S17 31–34 SIT, UAT, training, pilot go-live
S18–S29 35–46 3-month hypercare and KPI optimization

17. Project Team & Governance

17.1 QUICKSALES.AI Leadership Team

QUICKSALES.AI brings a dedicated executive and delivery team with deep expertise in WhatsApp automation, AI-powered customer engagement, and enterprise system integration.

Name Role Title Engagement Responsibility
Pei Han CEO Chief Executive Officer Executive sponsorship, strategic direction, and senior client relationship management
Dave CSO Chief Solution Officer End-to-end solution architecture, integration design, and alignment with SPH enterprise systems
Eddy CPO Chief Product Officer Product vision, customer journey design, and WhatsApp experience quality
Andy CAITO Chief AI Technology Officer AI virtual agent, multilingual NLU, knowledge retrieval, and model strategy
Zen BD Manager Business Development Manager Account management, proposal delivery, and day-to-day stakeholder coordination

17.2 Proposed Delivery Team Structure

17.3 Governance Model

Meeting Frequency Participants Purpose
Steering Committee Monthly Sponsors, PM Strategic decisions, budget, scope
Project Status Weekly PM, leads, SPH IT Progress, risks, blockers
Sprint Demo Fortnightly All + SPH CS Show working software
Technical Design Review Per milestone Tech leads, SPH IT Architecture decisions
UAT Review End of UAT SPH CS, QA Acceptance sign-off

17.4 SPH Media Responsibilities

Item Owner Timeline
ServiceNow API access + plugin install SPH IT Week 1–2
Commerce API documentation + sandbox SPH Commerce Week 1–2
OneTrust API access SPH Legal/IT Week 3–4
WABA ownership + Meta Business verification SPH Marketing/IT Week 1–3
Google Workspace API access SPH IT Week 4–6
Test subscriber accounts SPH CS Week 5
UAT testers (5–8 agents) SPH CS Week 13+
PDPA/DPA sign-off SPH Legal Week 2
MoEngage access (Option B) SPH Marketing Week 20+

18. Competitive Landscape & Vendor Background

This section provides a concise overview of the competing solution vendors who submitted proposals to SPH Media for this engagement, as well as the technology ecosystem partners that form part of SPH's existing or planned stack. Understanding both dimensions helps SPH evaluate total cost of ownership, integration fit, and delivery risk.

18.1 Competing Solution Vendors (RFP Quotes)

The following vendors have submitted commercial proposals for the WhatsApp Customer Engagement Platform. Profiles below are based on publicly available positioning and typical delivery models.

Vendor X — Enterprise Full Suite

Attribute Background
Vendor profile Large enterprise customer engagement / CPaaS provider with global footprint and established WhatsApp Business Solution Provider (BSP) partnerships
Typical strengths Broad omnichannel suite (WhatsApp, SMS, email, voice); mature agent desktop; enterprise SLAs; pre-built connectors to major CRMs; strong brand recognition in telco and banking sectors
Typical delivery model Licensed platform + professional services; often 12–18 month enterprise rollout with dedicated account team
Relevance to SPH Capable of handling high-volume messaging and multi-brand routing; may offer packaged "digital engagement" modules beyond WhatsApp
Considerations for SPH Premium pricing tier; risk of over-licensing features SPH does not need; may require SPH to adapt workflows to vendor's product rather than a bespoke ServiceNow + Commerce + OneTrust architecture; longer time-to-value for a focused pilot

Vendor Y — Mid-Range Platform

Attribute Background
Vendor profile Regional conversational messaging or WhatsApp-first platform vendor, often headquartered in APAC with Singapore presence
Typical strengths WhatsApp-native chatbot builder; faster initial deployment; competitive mid-market pricing; template management and basic analytics out of the box
Typical delivery model SaaS subscription + implementation package; 3–6 month delivery for standard use cases
Relevance to SPH Suitable for marketing-led or support-lite WhatsApp programmes; good for broadcast and simple FAQ deflection
Considerations for SPH May not fully cover RFP items such as ServiceNow CSM agent handoff (VA Bot-to-Bot), PCI redaction, OneTrust consent sync, Commerce order journeys, Google KB integration, or Phase 2 MoEngage orchestration without significant custom work or scope exclusions

QUICKSALES.AI — Positioning vs. Competitors

Dimension Vendor X Vendor Y QUICKSALES.AI Option A QUICKSALES.AI Option B
Pricing tier Premium enterprise Mid-market Competitive pilot entry Full-scope mid-market
Architecture fit Generic enterprise suite WhatsApp-centric SaaS Purpose-built middleware for SPH stack Full RFP + Phase 2 foundation
ServiceNow CSM integration Via standard connector (may need customisation) Limited / add-on Native VA Bot-to-Bot design Native + full agent workspace
Commerce / OneTrust / Google KB Custom PS scope Often out of scope Core Phase 1 Full coverage
AI orchestration & PCI Varies by module Basic chatbot Dedicated AI agent + redaction layer Same + advanced analytics
Time to pilot Longer (enterprise rollout) Moderate ~16 weeks ~24 weeks
Best for SPH if… SPH wants a global omnichannel suite and budget is not constrained SPH needs a quick, WhatsApp-only pilot with limited backend integration SPH wants validated Phase 1 pilot at focused scope SPH wants full RFP compliance with SPH-tailored architecture

Note: Vendor X and Vendor Y are labelled as submitted in SPH's commercial evaluation. QUICKSALES.AI recommends SPH's procurement team map these labels to named vendors in the internal scorecard. This proposal focuses on capability and value alignment rather than disparagement of any competitor.

18.2 SPH Technology Ecosystem — Integration Summary

Full technical specification: Section 11 (API endpoints, JSON payloads, ServiceNow table mappings, discovery checklist).

Vendor SPH system of record for… Integration API (specific) QUICKSALES.AI integration role
Meta WhatsApp channel delivery Graph API v21+ /messages, webhooks messages + message_template_status_update WABA webhook owner; template submit; quality monitoring
ServiceNow CSM Cases, agent workspace, conversations (D2), SN KB (B4) POST /api/sn_va_as_service/bot/integration (AGENT action); Table API sn_customerservice_case, interaction, kb_knowledge Primary bot; SN = secondary for agents + persistent transcript
Commerce Subscriber, billing, delivery, payment links REST + HMAC webhooks — confirm in Integration Pack A. Journey execution; C1 notifications; B2 auth
OneTrust Consent (E1: "kept within OneTrust") POST /request/v1/consentreceipts; GET /api/consent/v2/datasubjects/{id}/purposes E2 opt-in write; E3 opt-out; F2 pre-send marketing check
Google Workspace Knowledge content (B4) Drive API v3 export; Sites crawl RAG index — article embeddings only
MoEngage Campaign orchestration (F1) Connected Channel webhook → our API Phase 2 trigger; we own WABA send (not MoEngage native BSP)
SMS BSP SMS delivery (C1 fallback) Provider REST — TBD (Discovery Section 8) Fallback when WA unavailable
PDPC DNC Do-not-call compliance (F3) Registry scrub API/batch — TBD Pre-marketing number scrub

Public context: SPH Media uses ServiceNow (with SGITAL) for ITSM and contact centre operations, and AWS for cloud workloads (iTnews, 2024). CSM module usage for customer support is per RFP; instance details confirmed in discovery.

18.3 Vendor Landscape Summary

Key takeaway for SPH: Vendor X optimises for enterprise breadth; Vendor Y optimises for speed and simplicity with integration gaps; QUICKSALES.AI optimises for SPH's specific architecture — ServiceNow-centric agents, Commerce-backed journeys, OneTrust compliance, and AI orchestration.


19. Commercial Proposal — Scope & Delivery Options

Note: This section defines scope and delivery structure. Full commercial pricing is in the Pricing quotation (SGD, exclusive of GST). Final contract value may be adjusted after discovery workshop if scope changes.

19.1 Delivery Options Overview

Option Scope summary Timeline Estimated effort
Option A — Essential Phase 1 pilot — 8 journeys, core integrations ~5 months ~128 mandays
Option B — Professional Full Phase 1 + Phase 2 foundation — all RFP items ~7 months ~304 mandays

19.2 Option A — Essential

Scope Summary

Phase 1 pilot-ready platform with 8 priority AI journeys, core integrations, and 3-month hypercare.

Included

Category Deliverables
Platform Gateway, session manager, AI engine, redaction layer, auth (T0–T2)
Journeys 8 core: delivery complaint, vacation suspend/extend, payment failure reply, payment link, subscription status, general FAQ, live agent escalation, opt-in/opt-out
Integrations ServiceNow (VA API + case sync), Commerce (core APIs), OneTrust (basic consent)
Notifications All 5 C1 transactional types (Section 9.1.1) + SMS fallback
Analytics Core KPI dashboard (resolution rate, CSAT, volume, notification delivery)
WABA Setup support, basic health monitoring
Languages English + Simplified Chinese
Knowledge ServiceNow KB only
Hypercare 3 months post go-live
Training 1 admin session + 1 agent briefing document

Excluded (Available as Add-On)

  • Google Workspace knowledge connector
  • Malay + Tamil language support
  • MoEngage / Phase 2 marketing
  • DNC scrubbing
  • Full template lifecycle manager
  • Full WABA warm-up automation
  • Extended journeys beyond 8

Effort Breakdown — Option A

Role Mandays
Project Manager 16
Business Analyst 12
Technical Lead / Architect 14
Backend Developer 32
AI/ML Engineer 20
Integration Specialist 16
Frontend Developer 8
QA Engineer 12
DevOps Engineer 8
Total 128 mandays

19.3 Option B — Professional

Scope Summary

Full RFP compliance for Phase 1 and Phase 2 foundation. All 15+ journeys, all integrations, all languages, MoEngage marketing, DNC scrubbing.

Included

Category Deliverables
Platform All 9 components (full build)
Journeys 15+ AI journeys covering all RFP scenarios + extended use cases
Integrations ServiceNow (full), Commerce (full), OneTrust (full), Google Workspace, MoEngage, SMS, DNC
Notifications All 6 transactional event types + contextual reply
Templates Full lifecycle manager with Meta sync
Analytics Full dashboard suite (executive, ops, notification, compliance, WABA health)
WABA Full health monitoring + warm-up strategy tooling
Languages EN, ZH-CN, ZH-TW, MS, TA (understand all; reply EN/ZH-CN)
Knowledge ServiceNow KB + Google Sites/Docs/Sheets/Slides
Phase 2 MoEngage connector, DNC scrubbing, marketing template support
Hypercare 3 months post go-live with KPI optimization
Training 2 admin sessions + 2 agent workshops + documentation

Effort Breakdown — Option B

Role Mandays
Project Manager 32
Business Analyst 24
Technical Lead / Architect 28
Backend Developer 64
AI/ML Engineer 40
Integration Specialist 36
Frontend Developer 24
QA Engineer 28
DevOps Engineer 16
Security/Compliance Consultant 12
Total 304 mandays

19.4 Side-by-Side Comparison

Capability Option A Option B
AI Journeys 8 15+
Languages (understand) EN, ZH-CN EN, ZH-CN, ZH-TW, MS, TA
Knowledge sources SN KB SN KB + Google Workspace
Transactional notifications 3 templates 6 event types
Template lifecycle manager Basic Full
WABA health & warm-up Basic monitoring Full dashboard + warm-up
OneTrust integration Basic opt-in/out Full governance + frequency caps
MoEngage / Phase 2
DNC scrubbing
Analytics dashboards Core KPIs Full suite (5 modules)
Admin portal Basic Full
PCI redaction
ServiceNow integration ✅ Core ✅ Full
SMS fallback
Mandays 128 304
Timeline to go-live ~5 months ~7 months
Hypercare 3 months 3 months

19.5 Payment Milestones (Structure)

Payment amounts will be confirmed in the separate quotation. Milestone structure:

Option A

Milestone % Trigger
Contract signing 30% Signed agreement
Platform foundation complete 25% Gateway + SN integration demo
UAT sign-off 25% SPH UAT acceptance
Pilot go-live 20% Production launch
Total 100%

Option B

Milestone % Trigger
Contract signing 25% Signed agreement
Phase 1 foundation complete 20% Core platform + integrations demo
Phase 1 feature complete 20% All journeys + notifications demo
UAT sign-off 20% SPH UAT acceptance
Pilot go-live + Phase 2 ready 15% Production launch with MoEngage
Total 100%

19.6 Optional Add-Ons (Scope)

Add-On Estimated effort Available for
Google KB connector ~24 mandays Option A
Malay + Tamil language pack ~20 mandays Option A
MoEngage + Phase 2 marketing ~60 mandays Option A
DNC scrubbing service ~10 mandays Option A
Additional AI journey (per journey) ~6–8 mandays Both
Extended hypercare (per month) ~8 mandays Both
Dedicated Singapore private cloud tenant (annual) Both

Clarification: Dedicated cloud tenant means an isolated cloud environment for enhanced data residency — not on-premise hardware. Access remains via web browser.

19.7 Ongoing Costs (Post-Implementation — Categories)

Category Billing model Notes
Platform hosting & maintenance Monthly subscription Cloud hosting in Singapore — Admin Portal, platform services, backups, patches
Meta WhatsApp conversation fees Pass-through Per Meta's published rates
SMS gateway Pass-through Per message, via SPH's telco/CPaaS contract
LLM API usage Pass-through or bundled tier Volume-dependent
Support SLA (post-hypercare) Monthly (optional) Business hours or extended coverage tiers

Specific monthly figures will be provided in the commercial quotation.


20. Service Level Agreement & Support

20.1 SLA — Pilot Period (Included in Both Options)

Metric Target
Platform availability 99.5% (business hours)
Webhook processing latency < 2 seconds (p95)
AI first response < 3 seconds
Agent handoff initiation < 5 seconds
Notification dispatch (event to send) < 30 seconds
Critical bug fix 4 business hours
High bug fix 1 business day
Medium bug fix 3 business days

20.2 Hypercare (3 Months Post Go-Live)

Activity Detail
Dedicated support channel Slack/Teams + email
Weekly KPI review AI resolution, CSAT, escalation analysis
AI tuning Intent model refinement based on live data
Journey optimization Flow adjustments based on drop-off analysis
Template optimization A/B testing of notification templates
On-call support Business hours (9 AM – 6 PM SGT)

20.3 Post-Hypercare Support (Optional)

Tier Coverage
Standard Business hours support, 99.5% uptime target
Premium Extended hours (8 AM – 10 PM SGT), 99.9% uptime target, dedicated customer success contact

Monthly fees to be quoted separately.


21. Risk Management

# Risk Likelihood Impact Mitigation
R1 Commerce API not ready / undocumented Medium High Early discovery sprint; API contract workshop Week 1
R2 ServiceNow plugin/version incompatibility Low High Version check in discovery; VA API compatibility test Week 2
R3 WABA quality rating drops or Meta restricts number Medium High Phase 1 = user-initiated support only; 21-day warm-up; pre-send policy gate; Yellow/Red playbook (Section 14.6); no Phase 1 marketing
R4 AI resolution rate below 50% target Medium Medium Iterative tuning during hypercare; fallback to agent
R5 Meta template rejection Medium Low Pre-review against Meta guidelines; backup templates
R6 PDPA consent flow rejection by Legal Low Medium Early Legal review of consent UX; OneTrust alignment
R7 Google Workspace access restrictions Medium Medium Option A excludes; Option B requires IT access Week 4
R8 Low subscriber WhatsApp adoption Medium Medium SMS fallback; SPH marketing to promote channel
R9 OneTrust integration complexity Low Medium Use standard Consent Receipt API; early POC
R10 MoEngage API changes (Phase 2) Low Low Abstract campaign trigger interface

22. Assumptions & Dependencies

22.1 Assumptions

  1. SPH Media owns the WhatsApp Business Account and Meta Business Manager
  2. ServiceNow instance is Zurich release or later with CSM and Agent Workspace licensed
  3. Commerce backend exposes REST APIs for subscriber, billing, and delivery operations
  4. OneTrust is SPH's system of record for consent; API access will be provisioned
  5. SPH provides test environments for ServiceNow, Commerce, and OneTrust within 2 weeks of kickoff
  6. SPH CS team provides journey content (prompts, business rules) within sprint timelines
  7. Meta template approval timelines (24–72 hours) are outside our control
  8. SMS gateway account is provisioned by SPH or jointly
  9. All persistent customer data (conversations, subscriber records, consent) remains in SPH systems (ServiceNow, Commerce, OneTrust); vendor platform stores only ephemeral session cache and operational configuration
  10. SPH web chat channel remains unchanged

22.2 Dependencies


23. Appendices

Appendix A: Glossary

Term Definition
WABA WhatsApp Business Account
CSM Customer Service Management (ServiceNow)
AWA Advanced Work Assignment (ServiceNow)
VA Virtual Agent (ServiceNow)
CCIF Conversational Custom Chat Integration Framework
RAG Retrieval-Augmented Generation
PAN Primary Account Number (credit card)
PDPA Personal Data Protection Act (Singapore)
DNC Do Not Call Registry (Singapore)
OTP One-Time Password
CSAT Customer Satisfaction Score

Appendix B: RFP Requirement Traceability Index

RFP Ref Section Use Case Option A Option B
A1 Self-service & routing UC-01, UC-07, UC-08
A2 Localization UC-01, UC-06 ⚠️
A3 Redaction UC-04
A4 Template lifecycle Section 10.5 ⚠️
A5 Analytics Section 15 ⚠️
A6 WABA health Section 15.1 ⚠️
B1 AI resolution UC-01–04, UC-07–08 (Option A); +UC-05–15 (Option B) ⚠️
B2 Tiered auth Section 8.3
B3 SN filing All UCs
B4 Knowledge UC-14 ⚠️
B5 Multilingual UC-06 ⚠️
C1 Notifications UC-03, UC-05, UC-11; Section 9.1.1 (all 5 types)
C2 Contextual reply UC-03 (Option A); +UC-05 (Option B) ⚠️
D1 SN agent workspace UC-01, UC-03, UC-07
D2 SN message traceability All UCs
E1 OneTrust PDPA Section 13 ⚠️
E2 Opt-in capture UC-09
E3 Consent toggles UC-10
F1 MoEngage UC-12
F2 Consented campaigns UC-12
F3 DNC scrub Section 13.1

Appendix C: Technology Stack

Note for business readers: The table below is a technical reference for SPH IT. SPH operations teams interact only with the Admin Portal (web browser) and ServiceNow — not these underlying technologies.

Layer Technology Who manages it
Admin Portal (what SPH sees) React web application QUICKSALES.AI — SPH uses via browser
API Gateway Node.js / Python FastAPI QUICKSALES.AI
AI Engine LLM (GPT-4o / Claude) + custom NLU QUICKSALES.AI
Knowledge RAG Vector DB (Pinecone / pgvector) QUICKSALES.AI — SPH KB embeddings only, not customer chats
Session cache Redis (managed cloud, TTL 24–72 hrs) QUICKSALES.AI — routing tokens only, no message bodies
Configuration DB PostgreSQL (managed cloud) QUICKSALES.AI — journeys, templates, admin settings — no PII
Analytics Built into Admin Portal + export QUICKSALES.AI
Hosting AWS Singapore or Azure Southeast Asia QUICKSALES.AI — no SPH hardware
CI/CD GitHub Actions QUICKSALES.AI
Monitoring Datadog / Grafana QUICKSALES.AI

Appendix D: Commercial Quotation

Full commercial pricing is provided in the dedicated Pricing quotation document, aligned to the scope below.

Option Scope Timeline Effort
Option A — Essential Phase 1 pilot ~5 months ~128 mandays
Option B — Professional Full RFP + Phase 2 ~7 months ~304 mandays

Currency: Singapore Dollars (SGD), exclusive of GST. Valid for 90 days from quotation date.

Appendix E: Data Storage & Residency — Requirement Audit

This appendix maps every data-related requirement from Requirements - WhatsApp.pdf and the RFP against our proposed architecture. Use this for SPH Legal, IT, and procurement review.

Three Non-Negotiable Principles

# SPH requirement (verbatim) Compliant? How we comply
1 ServiceNow (CSM) remains system of engagement for customer support operations Agents work only in ServiceNow Agent Workspace; platform hands off via VA Bot-to-Bot API
2 Customer data resides exclusively in SPH Media systems Conversations → ServiceNow; subscriber records → Commerce; consent → OneTrust. Vendor is transient processor only (Section 6.5)
3 WhatsApp coexists with the existing ServiceNow web chat, not replaces it Web chat unchanged; WhatsApp is additive channel with unified case history in SN

Phase 1 — Data & Storage Requirements (A–F)

ID SPH requirement (verbatim) Compliant? Storage / system of record Vendor platform role
A1 All conversations (including offline messages) should be captured to ServiceNow for reference and follow up ServiceNow Real-time redact → sync to SN; vendor does not archive
A3 Sensitive content completely redacted/stripped prior to interfacing or syncing logs with ServiceNow Redacted tokens in ServiceNow only Redaction at gateway before any SN write
B3 Conversation with the AI-assisted agent needs to be filed into ServiceNow for records, review and continuity ServiceNow interaction/case tables Full redacted AI transcript synced via Table API
D2 All inbound and outbound messages to be integrated into ServiceNow CSM for traceability and followup ServiceNow Bidirectional sync; vendor holds no message archive
E1 Consent information would be kept within OneTrust OneTrust Platform writes consent receipts via API; not master record
E2 Writing consent records to OneTrust at conversation close OneTrust Opt-in flow writes Consent Receipt API
RFP PCI No raw card number, expiry date, or CVV in conversation transcript, agent console, or ServiceNow case payload Redacted placeholders in ServiceNow Raw PAN never stored anywhere; [REDACTED_*] tokens only

What the Vendor Platform May Hold (Non-Customer Data)

Data Allowed? Rationale per Principle 2
WhatsApp message transcripts Customer data → ServiceNow
Subscriber name, address, billing Customer data → Commerce (API lookup only)
Consent master records Customer data → OneTrust
Raw card numbers / NRIC A3 / RFP PCI — never stored
Active session routing token (hashed) Operational — not customer record; TTL ≤ 72 hrs
Journey rules, template metadata Platform configuration — no customer content
KB article embeddings Copy of SPH knowledge content for AI search — not customer chats
Aggregated metrics (counts, %) Analytics — no message text or PII

Common Misreadings — Clarified

Misreading Actual requirement Our approach
"Cannot store any WhatsApp data" Customer data must live in SPH systems Conversations stored in ServiceNow — as required
"Vendor cannot touch messages" Vendor must not persist customer data Vendor processes transiently and writes to SN
"No databases on vendor side" No customer data in vendor DB Config DB + ephemeral cache only (Section 6.5)
"Offline messages stay on vendor queue" Offline messages captured to ServiceNow (A1) Agent queue in SN AWA; vendor syncs immediately

Appendix F: Technical Discovery (SPH Action Required)

To replace all TBD integration placeholders with production endpoints, SPH must complete:

Technical Discovery — included in this package

Section What SPH provides
A. Commerce OpenAPI/Swagger, sandbox URL, auth, endpoint confirmation table
B. ServiceNow Instance URL, version, OAuth, provider app Inbound ID, AWA queue
C. OneTrust Tenant hostname, marketing purpose GUID, collection point JWT
D. SMS Provider name, API URL, sender ID, test credentials
E. MoEngage Workspace ID, Connected App approval, campaign webhook agreement
F. DNC Scrub process / API for Phase 2
G. Meta WABA WABA ID, verification status, quality rating, existing templates, admin contact

Return to: proposals@quicksales.ai within 10 business days of contract signing.

QUICKSALES.AI will publish Integration Specification v1.0 and an updated Section 11 within 7 days of receiving completed Sections A + B.


End of Proposal

Document prepared by QUICKSALES.AI for SPH Media Limited. Private & Confidential.
For questions regarding this proposal, please contact: proposals@quicksales.ai