← Back to app

SE Singha Paathai · Freshworks Solution Engineering

About this project

A coaching portal that turns recorded customer demos into summaries, next steps, and quality feedback — in under a minute.

What is it?

SE Singha Paathai helps Solution Engineers debrief after customer calls without the manual write-up. Paste a Zoom recording link and the system reads what was actually said on the call, then returns three things:

It is designed to support every SE with a consistent debrief — not to replace the SE or manager judgment.

How post-call analysis works

No file uploads in the default flow — just paste your Zoom cloud recording link.

  1. 1
    Sign in to the SE portal.
  2. 2
    Open “New analysis” and paste the Zoom recording URL from your “recording is ready” email. Add the passcode if it is not in the link — or paste both in one line.
  3. 3
    Click “Analyze call.” The system fetches the audio transcript from Zoom’s share link.
  4. 4
    Wait ~10–25 seconds. The UI shows progress and prevents double-submit.
  5. 5
    Review results — summary, next steps, and Quality Coach. Copy the follow-up email or print the page.
  6. 6
    History and dashboard update — the analysis is saved under your account and feeds your quality metrics.
What you get from each analysis

Call summary

Headline, customer context, attendees, key topics, pain points, objections, competitive mentions, decisions, and open questions.

Next steps

SE and AE action items, customer commitments, a suggested follow-up email, and paste-ready CRM notes.

Quality Coach

Coaching feedback modeled on how an SE manager would QA a recorded demo — honest and evidence-based, not flattering.

Six coaching dimensions

Each dimension is scored 1–5. The AI cites transcript evidence — it does not invent moments that did not happen.

Dimension What it measures
Discovery Did you uncover real pain before jumping into the demo?
Demo alignment Did you show capabilities tied to what the customer said they need?
Objections When concerns came up, did you acknowledge and respond with specifics?
Value articulation Did you connect Freshworks to business outcomes — not just list features?
Next-step clarity Did the call end with clear owners, dates, and commitments?
Talk balance Was speaking time reasonably balanced between SE and customer?

Scoring explained

Per dimension (1–5)

Score Label Meaning
5 Exceptional Best-in-class execution with clear transcript proof
4 Solid Meets SE expectations; only minor gaps
3 Acceptable Basic execution with noticeable weaknesses — typical for an average call
2 Needs improvement Significant misses or weak handling
1 Missed Dimension largely absent or handled poorly

Overall score (out of 10)

Computed automatically from the six dimension scores. The AI does not assign the overall number directly — this keeps scoring consistent.

Overall Label
9.0+Excellent
7.0 – 8.9Strong
5.5 – 6.9Good
4.0 – 5.4Developing
Below 4.0Needs focus

Scoring is intentionally strict for the MVP. A typical average call should land around 3–3.5 per dimension (~6–7 overall). A score of 5 on any dimension requires specific transcript evidence of excellence.

How the code works

Print / Save as PDF

Paste docs/CODE_LOGIC.md to your AI coding assistant before starting a task on this repo.

What Lionpath is

FlowWhenOutput
Pre-call prepBefore discovery — company + emailResearch brief one-pager
Post-call analysisAfter Zoom recordingSummary, next steps, Quality Coach

The pieces, in plain English

Plain nameFileWhat it does
The page shellweb/index.htmlHTML layout: login, sidebar, forms, results
The page logicweb/app.jsLogin gate, navigation, prep form + render
The post-call UIweb/postcall.jsPost-call form, result display, copy/print
The dashboardsweb/dashboard.jsSE stats and manager team rollup
The doormanweb/auth.jsDemo login or Firebase SSO
The memory (browser)web/history.jsBrowser cache + server sync on login
The messengerworker/src/index.tsAPI routes, CORS, auth, history endpoints
The researcherworker/src/prep.tsPrep prompt + Gemini → research JSON
The debrieferworker/src/postcall.tsTranscript → Gemini → analysis JSON
The rulebookschema.ts / postcall-schema.tsDefines every JSON field the AI must return
The trimmerworker/src/word-limits.tsWord caps + shape normalization
The scorerworker/src/quality-score.tsOverall Quality Coach score from six dimensions

How it works, start to finish

Browser (web/)  →  Worker API (worker/)  →  Gemini (structured JSON)
                      ↓
              History storage (KV or file)

Server setup: docs/VPS_DEPLOY.md

1. Discovery prep

The page logic (app.js) → POST /api/generate-prep → the researcher (prep.ts) → the trimmer (word-limits.ts) → renderPrep. ~15–45s.

2. Post-call analysis

The post-call UI (postcall.js) → POST /api/analyze-call → the debriefer (postcall.ts) → the scorer (quality-score.ts) → renderPostCall. ~10–25s.

3. History

The memory (history.js) saves to localStorage, syncs via /api/history on login. Dashboards read entries.

Form → POST /api/... → Gemini JSON → validate + trim → render one-pager HTML

Tables and bullets only. Prompts set word caps; UI truncates if needed.

The one rule that matters

Schema ↔ render contract. The rulebook (schema.ts / postcall-schema.ts) defines the JSON shape. The trimmer (word-limits.ts) normalizes it. The page logic (app.js / postcall.js) renders it. Change a field in all four places together.

What breaks when you change something

Plain nameYou change…Also update…Safety
The rulebook (prep)schema.tsprep.ts, word-limits.ts, app.jsCHANGE TOGETHER
The rulebook (post-call)postcall-schema.tspostcall.ts, word-limits.ts, quality-score.ts, postcall.jsCHANGE TOGETHER
The trimmerword-limits.tsNothingSAFE alone
The lookstyles.cssNothingSAFE alone
The doormanauth.jsapp.js, dashboard.js, history.jsTEST BOTH LOGINS
The researcher / debrieferprep.ts / postcall.tsSchema only if JSON shape changesSAFE / CHANGE TOGETHER
The messengerindex.ts routesapp.js, postcall.js, history.js, firebase-config.jsCHANGE TOGETHER

Where to change things

ChangeFile(s)
Pre-call AI promptworker/src/prep.ts
Post-call AI promptworker/src/postcall.ts
JSON schemasschema.ts, postcall-schema.ts
Word capsworker/src/word-limits.ts
Prep UI + renderweb/app.js
Post-call UI + renderweb/postcall.js
Styles / printweb/styles.css
API routes / authworker/src/index.ts
Worker URLweb/firebase-config.js

Full markdown version: docs/CODE_LOGIC.md in the repo.

Discovery pre-call wireframe

Print / Save as PDF

One continuous Account Snapshot table — company header is the first row, not a separate block above. ≤8 words per cell · no invented stats · one printed page.

| Company name | domain | One-line description | Attendee chips (name · role · dot) |
| FIT |
| Attribute           | This company | Industry norm | GAP |
| Omnichannel Support |              |               |     |
| AI Deflection       |              |               |     |
| Agent Assist        |              |               |     |
| ACCOUNT FACTS |
| Incumbent        | value (colspan) |
| Support agents   |                 |
| Market           |                 |
| Business model   |                 |
| Users            |                 |
| Uptime need      |                 |
| Funding / parent |                 |
| Head office      |                 |
| Languages        |                 |
| INDUSTRY USE CASES (max 3) |
| use case (colspan) |
|                  |
|                  |
| DISCOVERY KIT (max 3) |
| Ask this | Because |
|          |         |
|          |         |
|          |         |
| DEMO PREP (max 3) |
| Pain | Capability | Value |
|      |            |       |
|      |            |       |
|      |            |       |
| RESOURCES |
| [link] [link] [link] (colspan) |

Sources (collapsible footer — outside table)

REMOVED: Support Maturity block · Signals block · separate card stacks · header above table

Full doc: DISCOVERY_WIREFRAME.md · Slack copy-paste: docs/SLACK_DISCOVERY_WIREFRAME.txt

Team feedback

Demo login

For local demos and shared environments — dummy auth, not production SSO.

Team portal: https://portal.benjaminsquare.com

Role Email Password
SE se@freshworks.com se123
Manager manager@freshworks.com mgr123

Suggested demo path: Log in as SE → New analysis → paste a Zoom recording link → review results → open My dashboard → click a History item to reload a past call.

Open the app