WeLe Agentic AI: LangGraph multi-agent CRM assistant with voice
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
import fs from 'node:fs';
|
||||
import { BUILDERS } from '../src/tools/artifacts/documents.js';
|
||||
|
||||
const out = 'C:/Users/HP/AppData/Local/Temp/claude/c--Users-HP-Desktop-Dev-Agentic-AI/8b30e040-7edd-46bd-97f0-c9d03d3965cf/scratchpad';
|
||||
|
||||
const spec = {
|
||||
title: 'WeLe CRM — Performance Review',
|
||||
subtitle: 'Last 90 days · generated from live CRM data',
|
||||
summary:
|
||||
'Lead volume is healthy at 3,371 new leads, but conversion is the constraint: only 14 of 97 payment '
|
||||
+ 'attempts completed (14.4%), leaving ₹363,817 in abandoned checkouts. The largest funnel leak is '
|
||||
+ 'new_lead → contacted, where 91% of leads never receive a first touch.',
|
||||
sections: [
|
||||
{
|
||||
heading: 'Headline figures',
|
||||
kpis: [
|
||||
{ label: 'New leads', value: '3,371' },
|
||||
{ label: 'Paid enrolments', value: '14' },
|
||||
{ label: 'Payment success', value: '14.4%' },
|
||||
{ label: 'Abandoned value', value: '₹3.64L' },
|
||||
],
|
||||
text: 'Volume is not the problem. Follow-up capacity is.',
|
||||
},
|
||||
{
|
||||
heading: 'Pipeline by stage',
|
||||
chart: {
|
||||
type: 'bar', title: 'Leads by stage', format: 'number',
|
||||
data: [
|
||||
{ label: 'new_lead', value: 3417 }, { label: 'contacted', value: 500 },
|
||||
{ label: 'lost', value: 282 }, { label: 'qualified', value: 59 },
|
||||
{ label: 'demo', value: 4 }, { label: 'converted', value: 4 },
|
||||
],
|
||||
},
|
||||
bullets: [
|
||||
'76.6% of all leads have never moved past new_lead.',
|
||||
'Only 59 leads reached qualified in 90 days.',
|
||||
],
|
||||
},
|
||||
{
|
||||
heading: 'Payment attempts',
|
||||
chart: {
|
||||
type: 'donut', title: 'Attempts by status', center_label: 'attempts',
|
||||
data: [{ label: 'CANCELLED', value: 206 }, { label: 'SUCCESS', value: 39 }, { label: 'FAILED', value: 5 }, { label: 'ERROR', value: 3 }],
|
||||
},
|
||||
},
|
||||
{
|
||||
heading: 'Top batches',
|
||||
table: {
|
||||
columns: ['Batch', 'Paid', 'Attempts', 'Revenue', 'Success %'],
|
||||
rows: [
|
||||
['AI Basics for Manufacturing', 12, 59, 18400, 20.3],
|
||||
['AI Quality Inspection', 8, 31, 9200, 25.8],
|
||||
['Build Your First AI Agent in 60 Minutes (Live)', 6, 31, 4300, 19.4],
|
||||
['AI for IoT & Sensors', 3, 14, 1800, 21.4],
|
||||
['Digital Marketing Mastery', 2, 12, 1200, 16.7],
|
||||
],
|
||||
},
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
for (const [ext, build] of Object.entries(BUILDERS)) {
|
||||
const t = Date.now();
|
||||
try {
|
||||
const buf = await build(spec);
|
||||
const p = `${out}/report.${ext}`;
|
||||
fs.writeFileSync(p, buf);
|
||||
console.log(`PASS ${ext.padEnd(5)} ${String((buf.length / 1024).toFixed(1)).padStart(8)} kB ${Date.now() - t}ms`);
|
||||
} catch (e) {
|
||||
console.log(`FAIL ${ext.padEnd(5)} ${e.message}`);
|
||||
console.log(e.stack?.split('\n').slice(1, 4).join('\n'));
|
||||
}
|
||||
}
|
||||
process.exit(0);
|
||||
Reference in New Issue
Block a user