@ema.co/mcp-toolkit 2026.1.24 → 2026.1.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of @ema.co/mcp-toolkit might be problematic. Click here for more details.
- package/dist/mcp/handlers/reference/index.js +101 -1
- package/dist/mcp/tools-consolidated.js +10 -1
- package/docs/demos/ap-invoice-generation.md +347 -0
- package/docs/demos/ap-invoice-processing.md +271 -0
- package/package.json +1 -1
- package/resources/demo-kits/README.md +175 -0
- package/resources/demo-kits/finance-ap/manifest.json +150 -0
- package/resources/demo-kits/tags.json +91 -0
|
@@ -276,13 +276,113 @@ export async function handleReference(args, context) {
|
|
|
276
276
|
const result = validateWorkflowPrompt(args.validate_prompt);
|
|
277
277
|
return result;
|
|
278
278
|
}
|
|
279
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
280
|
+
// type="demo_kits" or demo_kits=true - List demo kits
|
|
281
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
282
|
+
if (type === "demo_kits" || args.demo_kits) {
|
|
283
|
+
return {
|
|
284
|
+
demo_kits: [
|
|
285
|
+
{
|
|
286
|
+
id: "finance-ap",
|
|
287
|
+
name: "Finance - Accounts Payable Automation",
|
|
288
|
+
domain: "finance",
|
|
289
|
+
personas: 2,
|
|
290
|
+
tags: ["finance", "invoice", "automation", "coupa"],
|
|
291
|
+
description: "End-to-end AP invoice processing and generation",
|
|
292
|
+
},
|
|
293
|
+
{
|
|
294
|
+
id: "sales-sdr",
|
|
295
|
+
name: "Sales Development",
|
|
296
|
+
domain: "sales",
|
|
297
|
+
personas: 2,
|
|
298
|
+
tags: ["sales", "outbound", "prospecting"],
|
|
299
|
+
description: "SDR workflow automation for prospecting and outreach",
|
|
300
|
+
},
|
|
301
|
+
{
|
|
302
|
+
id: "support-tier1",
|
|
303
|
+
name: "Customer Support T1",
|
|
304
|
+
domain: "support",
|
|
305
|
+
personas: 2,
|
|
306
|
+
tags: ["support", "voice", "chat"],
|
|
307
|
+
description: "Tier 1 customer support automation",
|
|
308
|
+
},
|
|
309
|
+
],
|
|
310
|
+
count: 3,
|
|
311
|
+
_tip: "Use reference(demo_kit=\"finance-ap\") to get full kit details",
|
|
312
|
+
};
|
|
313
|
+
}
|
|
314
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
315
|
+
// demo_kit="{id}" - Get specific demo kit
|
|
316
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
317
|
+
if (args.demo_kit) {
|
|
318
|
+
const kitId = args.demo_kit;
|
|
319
|
+
// Return finance-ap kit (the one we created)
|
|
320
|
+
if (kitId === "finance-ap") {
|
|
321
|
+
return {
|
|
322
|
+
id: "finance-ap",
|
|
323
|
+
name: "Finance - Accounts Payable Automation",
|
|
324
|
+
version: "1.0.0",
|
|
325
|
+
domain: "finance",
|
|
326
|
+
tags: ["finance", "invoice", "automation", "ap-automation", "ar-automation", "coupa", "usage-billing"],
|
|
327
|
+
personas: [
|
|
328
|
+
{
|
|
329
|
+
id: "fa91cb51-58fe-4255-b2d2-0b3e3a72cf7e",
|
|
330
|
+
name: "AP Invoice Processing",
|
|
331
|
+
role: "primary",
|
|
332
|
+
description: "Processes inbound invoices: extract, validate, create in Coupa, notify supplier",
|
|
333
|
+
workflow_nodes: 5,
|
|
334
|
+
},
|
|
335
|
+
{
|
|
336
|
+
id: "d73c8dca-d340-4541-a7ff-ae69f2810906",
|
|
337
|
+
name: "AP Invoice Generation",
|
|
338
|
+
role: "primary",
|
|
339
|
+
description: "Generates outbound invoices: validate customer/usage/contract, generate document",
|
|
340
|
+
workflow_nodes: 12,
|
|
341
|
+
},
|
|
342
|
+
],
|
|
343
|
+
target_audience: {
|
|
344
|
+
primary: "AP Manager / Controller",
|
|
345
|
+
secondary: ["CFO", "RevOps Manager", "IT Director"],
|
|
346
|
+
company_size: "mid-market to enterprise",
|
|
347
|
+
industries: ["manufacturing", "retail", "saas", "distribution"],
|
|
348
|
+
},
|
|
349
|
+
roi_summary: {
|
|
350
|
+
ap_processing_savings: "$105K/month at 10K invoices",
|
|
351
|
+
invoice_generation_savings: "$73K/month at 500 invoices",
|
|
352
|
+
revenue_protection: "$450K/month at $10M billings",
|
|
353
|
+
},
|
|
354
|
+
demo_script: "docs/demos/ap-invoice-processing.md",
|
|
355
|
+
_tip: "Use persona(method=\"analyze\", id=\"...\") to analyze each persona's workflow",
|
|
356
|
+
};
|
|
357
|
+
}
|
|
358
|
+
return { error: `Demo kit not found: ${kitId}`, available: ["finance-ap", "sales-sdr", "support-tier1"] };
|
|
359
|
+
}
|
|
360
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
361
|
+
// tags=true - Get tagging taxonomy
|
|
362
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
363
|
+
if (args.tags) {
|
|
364
|
+
return {
|
|
365
|
+
categories: {
|
|
366
|
+
domain: ["finance", "sales", "support", "hr", "it", "legal", "marketing", "operations", "procurement"],
|
|
367
|
+
capability: ["voice", "chat", "dashboard", "document", "automation", "analysis", "extraction", "validation"],
|
|
368
|
+
use_case: ["invoice", "billing", "onboarding", "compliance", "reporting", "routing", "scheduling", "order", "claims"],
|
|
369
|
+
integration: ["coupa", "salesforce", "servicenow", "workday", "sap", "oracle", "netsuite", "hubspot", "zendesk", "jira"],
|
|
370
|
+
complexity: ["simple", "moderate", "complex"],
|
|
371
|
+
bundle: ["demo-kit", "bundle", "template", "example"],
|
|
372
|
+
},
|
|
373
|
+
_tip: "Use tags to filter personas and demo kits. Tags help organize and discover related content.",
|
|
374
|
+
};
|
|
375
|
+
}
|
|
279
376
|
return {
|
|
280
|
-
error: "Specify type (envs|actions|templates|patterns|widgets|concepts), or use concept, guidance, questions, mistakes, checklist, execution, check_types, validate_prompt",
|
|
377
|
+
error: "Specify type (envs|actions|templates|patterns|widgets|concepts|demo_kits), or use concept, guidance, questions, mistakes, checklist, execution, check_types, validate_prompt, demo_kit, tags",
|
|
281
378
|
examples: [
|
|
282
379
|
'reference(type="envs")',
|
|
283
380
|
'reference(type="actions")',
|
|
284
381
|
'reference(type="actions", id="send_email")',
|
|
285
382
|
'reference(type="patterns")',
|
|
383
|
+
'reference(type="demo_kits")',
|
|
384
|
+
'reference(demo_kit="finance-ap")',
|
|
385
|
+
'reference(tags=true)',
|
|
286
386
|
'reference(concept="HITL")',
|
|
287
387
|
'reference(guidance="categorizer-routing")',
|
|
288
388
|
'reference(questions=true)',
|
|
@@ -513,6 +513,11 @@ This tool still works but shows a deprecation warning.`,
|
|
|
513
513
|
reference(guidance="categorizer-routing")
|
|
514
514
|
reference(questions=true) # Qualifying questions
|
|
515
515
|
|
|
516
|
+
**Demo Kits & Tags**:
|
|
517
|
+
reference(type="demo_kits") # List all demo kits
|
|
518
|
+
reference(demo_kit="finance-ap") # Get specific kit
|
|
519
|
+
reference(tags=true) # Get tagging taxonomy
|
|
520
|
+
|
|
516
521
|
**Debugging**:
|
|
517
522
|
reference(mistakes=true)
|
|
518
523
|
reference(checklist=true)
|
|
@@ -524,7 +529,7 @@ This tool still works but shows a deprecation warning.`,
|
|
|
524
529
|
// Type selector (v2)
|
|
525
530
|
type: {
|
|
526
531
|
type: "string",
|
|
527
|
-
enum: ["envs", "actions", "templates", "patterns", "widgets", "concepts"],
|
|
532
|
+
enum: ["envs", "actions", "templates", "patterns", "widgets", "concepts", "demo_kits"],
|
|
528
533
|
description: "What type of reference information"
|
|
529
534
|
},
|
|
530
535
|
// Actions
|
|
@@ -576,6 +581,10 @@ This tool still works but shows a deprecation warning.`,
|
|
|
576
581
|
description: "Check type compatibility"
|
|
577
582
|
},
|
|
578
583
|
validate_prompt: { type: "string", description: "Validate workflow prompt" },
|
|
584
|
+
// Demo Kits & Tags
|
|
585
|
+
demo_kits: { type: "boolean", description: "List available demo kits" },
|
|
586
|
+
demo_kit: { type: "string", description: "Get specific demo kit by ID (e.g., 'finance-ap')" },
|
|
587
|
+
tags: { type: "boolean", description: "Get tagging taxonomy for personas and kits" },
|
|
579
588
|
}),
|
|
580
589
|
},
|
|
581
590
|
// ═══════════════════════════════════════════════════════════════════════
|
|
@@ -0,0 +1,347 @@
|
|
|
1
|
+
# AP Invoice Generation - Demo Script
|
|
2
|
+
|
|
3
|
+
**Persona ID**: `d73c8dca-d340-4541-a7ff-ae69f2810906`
|
|
4
|
+
**Type**: Chat
|
|
5
|
+
**Complexity**: High (12 nodes, multi-stage validation)
|
|
6
|
+
**Generated**: 2026-01-24
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Target Persona
|
|
11
|
+
|
|
12
|
+
| Role | Profile |
|
|
13
|
+
|------|---------|
|
|
14
|
+
| **Primary** | Revenue Operations Manager / Billing Manager |
|
|
15
|
+
| **Secondary** | CFO, Finance Director, Deal Desk Manager |
|
|
16
|
+
| **Company Size** | Mid-market to Enterprise (SaaS, usage-based billing) |
|
|
17
|
+
| **Industry** | Software/SaaS, Telecom, Utilities, Cloud Services |
|
|
18
|
+
| **Business Model** | Usage-based, subscription, hybrid pricing |
|
|
19
|
+
|
|
20
|
+
**Buyer Characteristics:**
|
|
21
|
+
- Managing complex B2B contracts with tiered pricing
|
|
22
|
+
- Handling usage-based billing across multiple products
|
|
23
|
+
- Consolidating invoices across subsidiary accounts
|
|
24
|
+
- Dealing with contract amendments and credits mid-cycle
|
|
25
|
+
- Under pressure for accurate, timely invoicing
|
|
26
|
+
- Managing DSO (Days Sales Outstanding) targets
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Pain Points Addressed
|
|
31
|
+
|
|
32
|
+
| Pain Point | Impact | How Ema Solves It |
|
|
33
|
+
|------------|--------|-------------------|
|
|
34
|
+
| **Manual invoice creation** | 2-4 hours per enterprise invoice | Automated in minutes |
|
|
35
|
+
| **Usage data aggregation** | Scattered across 5+ systems | Single unified view |
|
|
36
|
+
| **Contract compliance errors** | Revenue leakage 3-5% | Automated validation |
|
|
37
|
+
| **Pricing mistakes** | Credits, disputes, churn | Contract-accurate pricing |
|
|
38
|
+
| **Parent/child billing** | Complex consolidation | Automatic hierarchy handling |
|
|
39
|
+
| **Audit trail gaps** | SOX compliance risk | Full generation history |
|
|
40
|
+
| **Late invoices** | DSO impact, cash flow | Same-day generation |
|
|
41
|
+
| **Format inconsistency** | Unprofessional, customer complaints | Standardized templates |
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Workflow Overview
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
Data Sources → Validate Customer → Validate Usage → Validate Contract → Generate Invoice → Publish Document
|
|
49
|
+
↓ ↓ ↓ ↓ ↓ ↓
|
|
50
|
+
(6 sources) (Salesforce, (Usage metrics, (Contract terms, (Markdown (DOCX
|
|
51
|
+
Contracts, API logs, payment terms, template) download)
|
|
52
|
+
Compliance) Proration) discounts)
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Nodes (12 total)
|
|
56
|
+
|
|
57
|
+
| Node | Type | Purpose |
|
|
58
|
+
|------|------|---------|
|
|
59
|
+
| **Convert to Text** | `convert_to_text` | Normalizes inputs |
|
|
60
|
+
| **SFDC API Placeholder** | `fixed_response` | Salesforce account data |
|
|
61
|
+
| **Contract Placeholder** | `fixed_response` | Contract terms & billing |
|
|
62
|
+
| **Reference File Placeholder** | `fixed_response` | Customer master data |
|
|
63
|
+
| **Product Offering Placeholder** | `fixed_response` | Product catalog & pricing |
|
|
64
|
+
| **Usage Placeholder** | `fixed_response` | Usage metrics |
|
|
65
|
+
| **Payment Records Placeholder** | `fixed_response` | Payment history |
|
|
66
|
+
| **Validate Customer** | `call_llm` | Verifies customer, credit, compliance |
|
|
67
|
+
| **Validate Usage** | `call_llm` | Aggregates & validates usage data |
|
|
68
|
+
| **Validate Contract** | `call_llm` | Validates contract terms & pricing |
|
|
69
|
+
| **Generate Invoice** | `call_llm` | Creates professional markdown invoice |
|
|
70
|
+
| **Publish Document** | `generate_document` | Converts to downloadable DOCX |
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Key Talking Points
|
|
75
|
+
|
|
76
|
+
### 1. **Multi-Source Data Orchestration**
|
|
77
|
+
> "Ema pulls from Salesforce, your contract management system, usage databases, and payment history - then orchestrates it all into a single validated invoice. No more copy-pasting between systems."
|
|
78
|
+
|
|
79
|
+
### 2. **Triple Validation Pipeline**
|
|
80
|
+
> "Before generating anything, Ema runs three validation stages:
|
|
81
|
+
> 1. **Customer Validation** - Account hierarchy, credit status, compliance
|
|
82
|
+
> 2. **Usage Validation** - Aggregate, prorate, convert units
|
|
83
|
+
> 3. **Contract Validation** - Terms, discounts, commitments
|
|
84
|
+
>
|
|
85
|
+
> Only if all three pass does the invoice get generated."
|
|
86
|
+
|
|
87
|
+
### 3. **Complex Billing Scenarios**
|
|
88
|
+
> "Usage-based? Tiered pricing? Volume discounts? Minimum commitments? Mid-cycle amendments? Ema handles them all - the same logic your best billing analyst would use, but consistent every time."
|
|
89
|
+
|
|
90
|
+
### 4. **Professional Document Output**
|
|
91
|
+
> "The invoice isn't just data - it's a professional document with your branding, proper formatting, payment instructions, and compliance information. Download as DOCX or PDF."
|
|
92
|
+
|
|
93
|
+
### 5. **Consolidated Billing**
|
|
94
|
+
> "For enterprise customers with subsidiaries, Ema automatically identifies the billing hierarchy, consolidates across accounts, and applies parent-level discounts."
|
|
95
|
+
|
|
96
|
+
### 6. **Audit-Ready**
|
|
97
|
+
> "Every invoice generation is logged with: what data was used, what validations ran, what calculations were applied. Perfect for revenue recognition and SOX compliance."
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Demo Script
|
|
102
|
+
|
|
103
|
+
### **Setup (Before Demo)**
|
|
104
|
+
- [ ] Sample order/usage data ready
|
|
105
|
+
- [ ] Mock Salesforce account data
|
|
106
|
+
- [ ] Sample contract with tiered pricing
|
|
107
|
+
- [ ] Ema workspace with this persona loaded
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
### **Act 1: The Problem (2 min)**
|
|
112
|
+
|
|
113
|
+
**[Show current state]**
|
|
114
|
+
|
|
115
|
+
> "Let me show you what enterprise invoice generation looks like today."
|
|
116
|
+
|
|
117
|
+
**Talking points:**
|
|
118
|
+
- "Customer places an order or usage period closes"
|
|
119
|
+
- "Billing analyst opens Salesforce, finds the account"
|
|
120
|
+
- "Opens contract management system, finds the contract"
|
|
121
|
+
- "Opens usage database, runs reports, exports to Excel"
|
|
122
|
+
- "Manually calculates: included quantities, overages, discounts"
|
|
123
|
+
- "Opens Word, copies a template, types everything in"
|
|
124
|
+
- "Checks, double-checks, maybe misses something"
|
|
125
|
+
- "2-4 hours later, maybe the invoice is ready"
|
|
126
|
+
|
|
127
|
+
**Ask:** "How many enterprise invoices does your team generate per month? What's your error rate?"
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
### **Act 2: The Validation Pipeline (5 min)**
|
|
132
|
+
|
|
133
|
+
**[Show Ema interface]**
|
|
134
|
+
|
|
135
|
+
> "Now let me show you Ema's approach - validate everything BEFORE generating."
|
|
136
|
+
|
|
137
|
+
**Step 1: Data Sources**
|
|
138
|
+
> "Ema connects to your systems - Salesforce, contract database, usage metrics, payment history. In production, these are live API connections. For this demo, we're using sample data."
|
|
139
|
+
|
|
140
|
+
*[Show data source placeholders]*
|
|
141
|
+
|
|
142
|
+
**Step 2: Customer Validation**
|
|
143
|
+
> "First, Ema validates the customer. Watch what it checks:"
|
|
144
|
+
|
|
145
|
+
*[Trigger workflow, show Validate Customer output]*
|
|
146
|
+
|
|
147
|
+
> "It verified:
|
|
148
|
+
> - Account exists in Salesforce
|
|
149
|
+
> - Parent/child relationships (for consolidated billing)
|
|
150
|
+
> - Credit terms and payment history
|
|
151
|
+
> - Contract compliance status
|
|
152
|
+
> - No open disputes
|
|
153
|
+
> - Authorized billing contacts
|
|
154
|
+
>
|
|
155
|
+
> If ANY red flag exists, it stops and alerts. No invoice generated for a customer on credit hold."
|
|
156
|
+
|
|
157
|
+
**Step 3: Usage Validation**
|
|
158
|
+
> "Next, Ema aggregates and validates usage:"
|
|
159
|
+
|
|
160
|
+
*[Show Validate Usage output]*
|
|
161
|
+
|
|
162
|
+
> "It:
|
|
163
|
+
> - Pulls from all usage sources (API logs, storage, support tickets)
|
|
164
|
+
> - Aggregates by product/SKU
|
|
165
|
+
> - Handles unit conversions
|
|
166
|
+
> - Prorates partial periods
|
|
167
|
+
> - Handles multi-tenant consolidation
|
|
168
|
+
>
|
|
169
|
+
> Your billing team would spend hours on this. Ema does it in seconds."
|
|
170
|
+
|
|
171
|
+
**Step 4: Contract Validation**
|
|
172
|
+
> "Finally, contract terms are validated against usage:"
|
|
173
|
+
|
|
174
|
+
*[Show Validate Contract output]*
|
|
175
|
+
|
|
176
|
+
> "It checks:
|
|
177
|
+
> - Correct pricing tiers
|
|
178
|
+
> - Volume discount qualifications
|
|
179
|
+
> - Minimum commitments
|
|
180
|
+
> - Promotional credits still valid
|
|
181
|
+
> - Contract amendments in effect
|
|
182
|
+
>
|
|
183
|
+
> This is where revenue leakage happens. Ema catches it."
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
### **Act 3: Invoice Generation (3 min)**
|
|
188
|
+
|
|
189
|
+
> "With all validations passed, now Ema generates the invoice."
|
|
190
|
+
|
|
191
|
+
*[Show Generate Invoice output]*
|
|
192
|
+
|
|
193
|
+
**Invoice Components Generated:**
|
|
194
|
+
> "The invoice includes:
|
|
195
|
+
> - **Header**: Invoice number, dates, terms, contract references
|
|
196
|
+
> - **Bill To / Remit To**: Full address blocks with tax IDs
|
|
197
|
+
> - **Line Items**: Products, included vs actual usage, overage pricing
|
|
198
|
+
> - **Adjustments**: Discounts, credits, penalties
|
|
199
|
+
> - **Tax Calculations**: Jurisdiction-specific rates
|
|
200
|
+
> - **Totals**: Subtotal, adjustments, tax, amount due
|
|
201
|
+
> - **Compliance**: Usage metrics, contract status, milestones
|
|
202
|
+
> - **Payment Info**: Wire/ACH instructions
|
|
203
|
+
> - **Audit Trail**: Generation ID, timestamp"
|
|
204
|
+
|
|
205
|
+
**Document Output:**
|
|
206
|
+
> "And finally, it's converted to a professional document."
|
|
207
|
+
|
|
208
|
+
*[Show Publish Document - DOCX download link]*
|
|
209
|
+
|
|
210
|
+
> "One click to download. Ready to send to the customer."
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
### **Act 4: The Differentiators (3 min)**
|
|
215
|
+
|
|
216
|
+
**Complex Pricing Scenarios**
|
|
217
|
+
> "Let me show you how Ema handles tiered pricing."
|
|
218
|
+
|
|
219
|
+
*[Walk through a tiered pricing example in the output]*
|
|
220
|
+
|
|
221
|
+
> "
|
|
222
|
+
> - 0-1,000 units: included in base
|
|
223
|
+
> - 1,001-5,000: $0.10 each
|
|
224
|
+
> - 5,001+: $0.05 each
|
|
225
|
+
>
|
|
226
|
+
> Ema calculated each tier correctly, showed the breakdown, and applied the right total."
|
|
227
|
+
|
|
228
|
+
**Consolidated Billing**
|
|
229
|
+
> "For enterprise customers with subsidiaries:"
|
|
230
|
+
|
|
231
|
+
> "Ema:
|
|
232
|
+
> - Identifies the ultimate parent account
|
|
233
|
+
> - Finds all child accounts with billing enabled
|
|
234
|
+
> - Aggregates usage across the hierarchy
|
|
235
|
+
> - Applies parent-level discounts
|
|
236
|
+
> - Generates one consolidated invoice"
|
|
237
|
+
|
|
238
|
+
**Mid-Cycle Amendments**
|
|
239
|
+
> "Contract changed mid-period? Ema handles proration automatically - you don't need to manually calculate partial months."
|
|
240
|
+
|
|
241
|
+
**Audit Trail**
|
|
242
|
+
> "Every invoice includes a generation ID. You can trace exactly what data was used, what validations ran, what decisions were made. Perfect for revenue recognition audits."
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
### **Act 5: ROI Discussion (2 min)**
|
|
247
|
+
|
|
248
|
+
**Build the business case:**
|
|
249
|
+
|
|
250
|
+
| Metric | Before | After | Impact |
|
|
251
|
+
|--------|--------|-------|--------|
|
|
252
|
+
| Time per invoice | 2-4 hours | 5 minutes | 95% reduction |
|
|
253
|
+
| Pricing errors | 3-5% | <0.5% | Revenue protected |
|
|
254
|
+
| DSO impact | Invoices delayed 3-5 days | Same-day | Cash flow improved |
|
|
255
|
+
| Audit prep time | 40 hours/quarter | 4 hours | 90% reduction |
|
|
256
|
+
| Billing headcount | 1 FTE per 200 invoices | 1 FTE per 2,000 invoices | 10x efficiency |
|
|
257
|
+
|
|
258
|
+
> "If you're generating 500 enterprise invoices per month at 3 hours each, that's 1,500 hours. At $50/hour loaded cost, that's $75,000/month in labor alone.
|
|
259
|
+
>
|
|
260
|
+
> With Ema: 500 invoices × 5 minutes = 42 hours. That's $73,000 monthly savings."
|
|
261
|
+
|
|
262
|
+
**Revenue Protection:**
|
|
263
|
+
> "More importantly - if your error rate drops from 5% to 0.5% on $10M monthly billings, you've protected $450,000 in revenue per month."
|
|
264
|
+
|
|
265
|
+
---
|
|
266
|
+
|
|
267
|
+
### **Act 6: Next Steps (1 min)**
|
|
268
|
+
|
|
269
|
+
> "Here's how we typically get started:"
|
|
270
|
+
|
|
271
|
+
1. **Discovery (1 week)** - Map your data sources, pricing models, invoice formats
|
|
272
|
+
2. **Pilot (2-4 weeks)** - Run Ema on one customer segment or product line
|
|
273
|
+
3. **Validate** - Compare output to manual invoices, measure accuracy
|
|
274
|
+
4. **Expand** - Roll out to full invoice generation
|
|
275
|
+
5. **Optimize** - Add more data sources, approval workflows, integrations
|
|
276
|
+
|
|
277
|
+
> "Most customers see ROI within the first billing cycle."
|
|
278
|
+
|
|
279
|
+
**Ask:** "Would you like to pilot this with your most complex customer segment?"
|
|
280
|
+
|
|
281
|
+
---
|
|
282
|
+
|
|
283
|
+
## Objection Handling
|
|
284
|
+
|
|
285
|
+
| Objection | Response |
|
|
286
|
+
|-----------|----------|
|
|
287
|
+
| "Our pricing is too complex" | "That's exactly where Ema shines. The more complex your pricing, the more value from automation. Can I see your most complex contract?" |
|
|
288
|
+
| "We have existing billing software" | "Ema doesn't replace your billing system - it feeds it. Think of it as intelligent pre-processing that validates and enriches before data hits your ERP." |
|
|
289
|
+
| "We need human review" | "Absolutely. Add approval gates for invoices over any threshold. Ema does the work, humans approve the result." |
|
|
290
|
+
| "Data security concerns" | "Ema connects via your existing APIs with your credentials. No data leaves your environment unless you want it to." |
|
|
291
|
+
| "What about edge cases?" | "Ema flags anything it can't handle confidently. Exceptions route to humans. Start with 80% automation, expand as you build confidence." |
|
|
292
|
+
| "Contract amendments?" | "Ema checks contract version dates and applies the correct terms for each period. Mid-cycle changes are prorated automatically." |
|
|
293
|
+
| "Multi-currency?" | "Ema can handle currency conversion using rates you specify or live FX feeds." |
|
|
294
|
+
|
|
295
|
+
---
|
|
296
|
+
|
|
297
|
+
## Demo Variants
|
|
298
|
+
|
|
299
|
+
| Audience | Focus On | Skip |
|
|
300
|
+
|----------|----------|------|
|
|
301
|
+
| **CFO** | Revenue protection, DSO, audit compliance | Technical integration |
|
|
302
|
+
| **RevOps** | Validation pipeline, complex scenarios, accuracy | High-level ROI |
|
|
303
|
+
| **IT** | Data sources, API integration, security | Business metrics |
|
|
304
|
+
| **Deal Desk** | Contract accuracy, amendments, credits | Technical details |
|
|
305
|
+
|
|
306
|
+
---
|
|
307
|
+
|
|
308
|
+
## Leave-Behinds
|
|
309
|
+
|
|
310
|
+
1. **Sample Invoice** - Generated by Ema from demo data
|
|
311
|
+
2. **Validation Report** - What Ema checks before generating
|
|
312
|
+
3. **Integration Architecture** - How Ema connects to systems
|
|
313
|
+
4. **ROI Calculator** - Their numbers, their savings
|
|
314
|
+
5. **Customer Case Study** - Similar company results
|
|
315
|
+
|
|
316
|
+
---
|
|
317
|
+
|
|
318
|
+
## Success Metrics to Track
|
|
319
|
+
|
|
320
|
+
| Metric | Baseline | Target |
|
|
321
|
+
|--------|----------|--------|
|
|
322
|
+
| Invoice generation time | ___ hours | <10 min |
|
|
323
|
+
| Pricing accuracy | ___% | >99.5% |
|
|
324
|
+
| DSO (Days Sales Outstanding) | ___ days | -5 days |
|
|
325
|
+
| Billing disputes | ___/month | -80% |
|
|
326
|
+
| Audit prep time | ___ hours | -90% |
|
|
327
|
+
| Revenue leakage | ___% | <0.5% |
|
|
328
|
+
|
|
329
|
+
---
|
|
330
|
+
|
|
331
|
+
## Comparison: AP Invoice Processing vs AP Invoice Generation
|
|
332
|
+
|
|
333
|
+
| Aspect | Invoice Processing | Invoice Generation |
|
|
334
|
+
|--------|-------------------|-------------------|
|
|
335
|
+
| **Direction** | Inbound (receive invoices) | Outbound (create invoices) |
|
|
336
|
+
| **Use Case** | AP - pay suppliers | AR - bill customers |
|
|
337
|
+
| **Data Source** | PDF/email invoices | Internal systems (CRM, usage, contracts) |
|
|
338
|
+
| **Validation** | 3-way match against PO | Customer, usage, contract validation |
|
|
339
|
+
| **Output** | Entry in Coupa/ERP | Professional invoice document |
|
|
340
|
+
| **Complexity** | Medium (5 nodes) | High (12 nodes) |
|
|
341
|
+
| **Target Buyer** | AP Manager | RevOps / Billing Manager |
|
|
342
|
+
|
|
343
|
+
---
|
|
344
|
+
|
|
345
|
+
## Tags
|
|
346
|
+
|
|
347
|
+
`demo-kit` `ar-automation` `invoice-generation` `revenue-ops` `usage-billing` `saas` `finance`
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
# AP Invoice Processing - Demo Script
|
|
2
|
+
|
|
3
|
+
**Persona ID**: `fa91cb51-58fe-4255-b2d2-0b3e3a72cf7e`
|
|
4
|
+
**Type**: Chat
|
|
5
|
+
**Generated**: 2026-01-24
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Target Persona
|
|
10
|
+
|
|
11
|
+
| Role | Profile |
|
|
12
|
+
|------|---------|
|
|
13
|
+
| **Primary** | AP Manager / Controller |
|
|
14
|
+
| **Secondary** | CFO, Procurement Director, IT/Automation Lead |
|
|
15
|
+
| **Company Size** | Mid-market to Enterprise ($50M-$1B revenue) |
|
|
16
|
+
| **Industry** | Manufacturing, Retail, Distribution, Healthcare |
|
|
17
|
+
| **Tech Stack** | Coupa (or similar P2P), ERP (Oracle, SAP, NetSuite) |
|
|
18
|
+
|
|
19
|
+
**Buyer Characteristics:**
|
|
20
|
+
- Managing 5,000-50,000+ invoices/month
|
|
21
|
+
- Team of 3-15 AP specialists
|
|
22
|
+
- Current process involves significant manual data entry
|
|
23
|
+
- Dealing with supplier inquiries about payment status
|
|
24
|
+
- Under pressure to reduce costs and improve working capital
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Pain Points Addressed
|
|
29
|
+
|
|
30
|
+
| Pain Point | Impact | How Ema Solves It |
|
|
31
|
+
|------------|--------|-------------------|
|
|
32
|
+
| **Manual data entry** | 15-20 min per invoice, high error rate | Automated extraction in seconds |
|
|
33
|
+
| **PO matching failures** | 30-40% first-pass match rate | Intelligent matching with validation |
|
|
34
|
+
| **Supplier complaints** | 10+ calls/day asking "where's my payment?" | Automatic confirmation emails |
|
|
35
|
+
| **Audit trail gaps** | Compliance risk, failed audits | Full logging of every step |
|
|
36
|
+
| **Staff turnover costs** | $50K+ to train new AP clerk | AI handles repetitive work |
|
|
37
|
+
| **Late payment penalties** | 2-5% of invoice value lost | Faster processing = on-time payment |
|
|
38
|
+
| **Fraud risk** | Invoice fraud costs $3.7B/year in US | 3-way match validation prevents errors |
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Workflow Overview
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
Invoice Upload → Extract Data → Create in Coupa → Get Session Link → Send Email
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Nodes (5 total)
|
|
49
|
+
|
|
50
|
+
| Node | Type | Purpose |
|
|
51
|
+
|------|------|---------|
|
|
52
|
+
| **Extract Data from Invoice** | `entity_extraction` | Extracts invoice details (supplier, PO#, amounts) |
|
|
53
|
+
| **Fixed Response** | `fixed_response` | Provides context to next step |
|
|
54
|
+
| **Create Invoice in Coupa** | `external_action_caller` | Automates Coupa invoice creation with 16-step process |
|
|
55
|
+
| **Active Session Link** | `call_llm` | Extracts the browser session link |
|
|
56
|
+
| **Send Email** | `external_action_caller` | Sends confirmation email to supplier |
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Key Talking Points
|
|
61
|
+
|
|
62
|
+
### 1. **End-to-End Automation**
|
|
63
|
+
> "This isn't just OCR. Ema reads the invoice, validates it against your PO, creates the entry in Coupa, and notifies your supplier - all without human intervention."
|
|
64
|
+
|
|
65
|
+
### 2. **3-Way Match Validation**
|
|
66
|
+
> "Before creating anything, Ema validates:
|
|
67
|
+
> - Does the PO exist?
|
|
68
|
+
> - Does the supplier name match?
|
|
69
|
+
> - Do the line items match?
|
|
70
|
+
> - Do the prices match?
|
|
71
|
+
>
|
|
72
|
+
> Any discrepancy is flagged immediately - no bad data enters your system."
|
|
73
|
+
|
|
74
|
+
### 3. **Works With Your Existing Systems**
|
|
75
|
+
> "This connects to Coupa, but we support SAP Ariba, Oracle, NetSuite, and 200+ other applications. No rip-and-replace required."
|
|
76
|
+
|
|
77
|
+
### 4. **Supplier Experience**
|
|
78
|
+
> "Your suppliers get instant confirmation when their invoice is processed. No more 'did you receive my invoice?' calls."
|
|
79
|
+
|
|
80
|
+
### 5. **Human-in-the-Loop When Needed**
|
|
81
|
+
> "You can add approval gates at any step. For invoices over $10K, route to manager. For new suppliers, require verification. Full control."
|
|
82
|
+
|
|
83
|
+
### 6. **ROI in Weeks, Not Years**
|
|
84
|
+
> "Average AP processing cost: $8-15 per invoice. With Ema: under $1. At 10,000 invoices/month, that's $70K-140K annual savings."
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Demo Script
|
|
89
|
+
|
|
90
|
+
### **Setup (Before Demo)**
|
|
91
|
+
- [ ] Have sample invoice PDF ready (use sanitized demo data)
|
|
92
|
+
- [ ] Coupa demo environment open in browser
|
|
93
|
+
- [ ] Ema workspace with this persona loaded
|
|
94
|
+
- [ ] Slack/Teams open for notification demo (optional)
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
### **Act 1: The Problem (2 min)**
|
|
99
|
+
|
|
100
|
+
**[Show current state]**
|
|
101
|
+
|
|
102
|
+
> "Let me show you what AP processing looks like today at most companies."
|
|
103
|
+
|
|
104
|
+
**Talking points:**
|
|
105
|
+
- "An invoice arrives via email, fax, or portal"
|
|
106
|
+
- "Someone manually opens it, reads it, types data into the system"
|
|
107
|
+
- "They hunt for the PO, compare line by line"
|
|
108
|
+
- "If something doesn't match, they email the supplier"
|
|
109
|
+
- "Days later, maybe it gets resolved"
|
|
110
|
+
- "Meanwhile, the supplier calls: 'Where's my payment?'"
|
|
111
|
+
|
|
112
|
+
**Ask:** "Does this sound familiar? How many invoices does your team process per month?"
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
### **Act 2: The Solution (5 min)**
|
|
117
|
+
|
|
118
|
+
**[Show Ema interface]**
|
|
119
|
+
|
|
120
|
+
> "Now let me show you how Ema handles this same invoice."
|
|
121
|
+
|
|
122
|
+
**Step 1: Upload Invoice**
|
|
123
|
+
> "I'll drop this invoice into Ema. This could also come from email, a portal, or direct API integration."
|
|
124
|
+
|
|
125
|
+
*[Upload sample invoice PDF]*
|
|
126
|
+
|
|
127
|
+
**Step 2: Watch Extraction**
|
|
128
|
+
> "In seconds, Ema extracts:
|
|
129
|
+
> - Supplier Name
|
|
130
|
+
> - Invoice Number
|
|
131
|
+
> - PO Number
|
|
132
|
+
> - Line items with descriptions
|
|
133
|
+
> - Quantities and prices"
|
|
134
|
+
|
|
135
|
+
*[Show extracted data]*
|
|
136
|
+
|
|
137
|
+
> "Notice it handled this [multi-page / handwritten / poor quality] invoice. Our extraction works with 95%+ accuracy on real-world documents."
|
|
138
|
+
|
|
139
|
+
**Step 3: Watch Validation**
|
|
140
|
+
> "Now Ema logs into Coupa - using secure credentials, not stored in the workflow - and validates this against your data."
|
|
141
|
+
|
|
142
|
+
*[Show Coupa automation running]*
|
|
143
|
+
|
|
144
|
+
> "It's checking:
|
|
145
|
+
> - ✅ PO exists
|
|
146
|
+
> - ✅ Supplier name matches
|
|
147
|
+
> - ✅ Line items match
|
|
148
|
+
> - ✅ Prices match
|
|
149
|
+
>
|
|
150
|
+
> If ANY of these fail, it stops and flags for human review. No garbage in, no garbage out."
|
|
151
|
+
|
|
152
|
+
**Step 4: Invoice Creation**
|
|
153
|
+
> "With everything validated, Ema creates the invoice in Coupa automatically."
|
|
154
|
+
|
|
155
|
+
*[Show invoice created in Coupa]*
|
|
156
|
+
|
|
157
|
+
> "Chart of accounts is pulled from the PO. All line items mapped. Ready for approval."
|
|
158
|
+
|
|
159
|
+
**Step 5: Supplier Notification**
|
|
160
|
+
> "Finally, the supplier gets an email confirming receipt and processing."
|
|
161
|
+
|
|
162
|
+
*[Show email sent]*
|
|
163
|
+
|
|
164
|
+
> "No more 'where's my invoice?' calls. Your suppliers know instantly."
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
### **Act 3: The Differentiators (3 min)**
|
|
169
|
+
|
|
170
|
+
**Human-in-the-Loop**
|
|
171
|
+
> "You might be thinking: 'I don't want AI making $50K decisions without approval.'
|
|
172
|
+
>
|
|
173
|
+
> Great news - you control that. Let me show you how easy it is to add an approval gate."
|
|
174
|
+
|
|
175
|
+
*[Show how to add HITL in workflow builder - or describe it]*
|
|
176
|
+
|
|
177
|
+
> "For invoices over your threshold, or from new suppliers, route to a human. One click to approve or reject."
|
|
178
|
+
|
|
179
|
+
**Audit Trail**
|
|
180
|
+
> "Every step is logged. Who approved what, when, why. Perfect for auditors."
|
|
181
|
+
|
|
182
|
+
**Exception Handling**
|
|
183
|
+
> "When Ema finds a mismatch, it doesn't just stop. It can:
|
|
184
|
+
> - Route to the right person
|
|
185
|
+
> - Request supplier clarification
|
|
186
|
+
> - Apply your business rules automatically"
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
### **Act 4: ROI Discussion (2 min)**
|
|
191
|
+
|
|
192
|
+
**Build the business case:**
|
|
193
|
+
|
|
194
|
+
| Metric | Before | After | Savings |
|
|
195
|
+
|--------|--------|-------|---------|
|
|
196
|
+
| Time per invoice | 15 min | 2 min (exceptions only) | 87% reduction |
|
|
197
|
+
| Cost per invoice | $12 | $1.50 | $10.50 each |
|
|
198
|
+
| First-pass match rate | 35% | 85% | 2.4x improvement |
|
|
199
|
+
| Supplier inquiries | 50/week | 10/week | 80% reduction |
|
|
200
|
+
|
|
201
|
+
> "At 10,000 invoices/month, you're looking at $105,000 monthly savings - over $1.2M per year."
|
|
202
|
+
|
|
203
|
+
**Ask:** "What would your team do with 10,000 hours per month freed up?"
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
### **Act 5: Next Steps (1 min)**
|
|
208
|
+
|
|
209
|
+
> "Here's how we typically get started:"
|
|
210
|
+
|
|
211
|
+
1. **Pilot (2-4 weeks)** - Run Ema on one invoice type or vendor
|
|
212
|
+
2. **Validate** - Measure accuracy, time savings, user feedback
|
|
213
|
+
3. **Expand** - Roll out to full AP workflow
|
|
214
|
+
4. **Optimize** - Add more automation, approvals, integrations
|
|
215
|
+
|
|
216
|
+
> "Most customers see ROI within the pilot period."
|
|
217
|
+
|
|
218
|
+
**Ask:** "Would you like to run a pilot with [100/500/1000] of your invoices?"
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## Objection Handling
|
|
223
|
+
|
|
224
|
+
| Objection | Response |
|
|
225
|
+
|-----------|----------|
|
|
226
|
+
| "We already have OCR" | "OCR extracts text. Ema understands context, validates against your systems, and takes action. It's the difference between reading and doing." |
|
|
227
|
+
| "Our invoices are too complex" | "We handle multi-page, multi-currency, handwritten invoices. Can I see a sample of your trickiest invoice?" |
|
|
228
|
+
| "Security concerns" | "Ema runs in your environment or our SOC 2 certified cloud. Credentials are stored in your vault, not in workflows. Full audit logging." |
|
|
229
|
+
| "We need IT approval" | "Ema is no-code. AP can configure it directly. IT just needs to approve the Coupa API connection - same as any integration." |
|
|
230
|
+
| "What about exceptions?" | "Exceptions route to humans. You set the rules: dollar threshold, new vendors, mismatches. AI handles the 80%, humans handle the 20%." |
|
|
231
|
+
| "Implementation timeline?" | "Most customers are live in 2-4 weeks. No ERP changes required. We connect via API." |
|
|
232
|
+
| "What if the AI makes mistakes?" | "Every action is logged and reversible. You can add approval gates at any step. Start conservative, automate more as you build trust." |
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## Demo Variants
|
|
237
|
+
|
|
238
|
+
| Audience | Focus On | Skip |
|
|
239
|
+
|----------|----------|------|
|
|
240
|
+
| **CFO** | ROI numbers, working capital, audit/compliance | Technical details |
|
|
241
|
+
| **AP Manager** | Day-to-day workflow, exception handling, team enablement | Integration details |
|
|
242
|
+
| **IT/Security** | Architecture, security, API, audit trail | ROI details |
|
|
243
|
+
| **Procurement** | Supplier experience, PO validation, spend visibility | AP workflow |
|
|
244
|
+
|
|
245
|
+
---
|
|
246
|
+
|
|
247
|
+
## Leave-Behinds
|
|
248
|
+
|
|
249
|
+
1. **ROI Calculator** - Excel with their numbers
|
|
250
|
+
2. **Architecture Diagram** - How Ema connects to their systems
|
|
251
|
+
3. **Sample Validation Report** - What Ema checks on each invoice
|
|
252
|
+
4. **Customer Case Study** - Similar company, similar results
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
## Success Metrics to Track
|
|
257
|
+
|
|
258
|
+
| Metric | Baseline | Target |
|
|
259
|
+
|--------|----------|--------|
|
|
260
|
+
| Invoices processed/day | ___ | +300% |
|
|
261
|
+
| Average processing time | ___ min | <5 min |
|
|
262
|
+
| First-pass match rate | ___% | >85% |
|
|
263
|
+
| Supplier inquiry volume | ___ | -80% |
|
|
264
|
+
| Late payment rate | ___% | <2% |
|
|
265
|
+
| Cost per invoice | $___ | <$2 |
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
## Tags
|
|
270
|
+
|
|
271
|
+
`demo-kit` `ap-automation` `coupa` `invoice-processing` `finance`
|
package/package.json
CHANGED
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
# Demo Kits
|
|
2
|
+
|
|
3
|
+
Pre-packaged demo resources for Ema AI Employee demonstrations. Each kit includes personas, demo scripts, sample data, and validation queries.
|
|
4
|
+
|
|
5
|
+
## Available Demo Kits
|
|
6
|
+
|
|
7
|
+
| Kit ID | Name | Domain | Personas | Tags |
|
|
8
|
+
|--------|------|--------|----------|------|
|
|
9
|
+
| `finance-ap` | Finance - Accounts Payable | Finance | 2 | `finance`, `invoice`, `automation` |
|
|
10
|
+
| `finance-ar` | Finance - Accounts Receivable | Finance | 1 | `finance`, `billing`, `revenue` |
|
|
11
|
+
| `sales-sdr` | Sales Development | Sales | 2 | `sales`, `outbound`, `prospecting` |
|
|
12
|
+
| `support-tier1` | Customer Support T1 | Support | 2 | `support`, `voice`, `chat` |
|
|
13
|
+
| `hr-assistant` | HR Policy Assistant | HR | 1 | `hr`, `policy`, `benefits` |
|
|
14
|
+
|
|
15
|
+
## Kit Structure
|
|
16
|
+
|
|
17
|
+
Each demo kit contains:
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
demo-kits/
|
|
21
|
+
├── {kit-id}/
|
|
22
|
+
│ ├── manifest.json # Kit metadata, personas, tags
|
|
23
|
+
│ ├── demo-script.md # Talk track, objections, ROI
|
|
24
|
+
│ ├── sample-data/ # Demo data files
|
|
25
|
+
│ │ ├── input.json # Sample inputs
|
|
26
|
+
│ │ └── expected.json # Expected outputs
|
|
27
|
+
│ └── validation/
|
|
28
|
+
│ └── queries.json # Pre/post-demo validation queries
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Usage
|
|
32
|
+
|
|
33
|
+
### List Available Kits
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
reference(demo_kits=true)
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Get Kit Details
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
reference(demo_kit="finance-ap")
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Generate Demo for Persona
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
persona(method="demo_kit", id="{persona_id}", kit="finance-ap")
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Validate Demo Readiness
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
persona(method="validate", id="{persona_id}", checks=["demo_ready"])
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Tagging System
|
|
58
|
+
|
|
59
|
+
Demo kits and personas use a consistent tagging system:
|
|
60
|
+
|
|
61
|
+
### Domain Tags
|
|
62
|
+
- `finance` - Financial operations (AP, AR, Treasury)
|
|
63
|
+
- `sales` - Sales and revenue operations
|
|
64
|
+
- `support` - Customer support and service
|
|
65
|
+
- `hr` - Human resources
|
|
66
|
+
- `it` - IT operations and security
|
|
67
|
+
- `legal` - Legal and compliance
|
|
68
|
+
- `marketing` - Marketing operations
|
|
69
|
+
|
|
70
|
+
### Capability Tags
|
|
71
|
+
- `voice` - Voice/phone interactions
|
|
72
|
+
- `chat` - Chat/messaging interactions
|
|
73
|
+
- `dashboard` - Dashboard/data processing
|
|
74
|
+
- `document` - Document generation
|
|
75
|
+
- `automation` - Process automation
|
|
76
|
+
- `analysis` - Data analysis
|
|
77
|
+
|
|
78
|
+
### Use Case Tags
|
|
79
|
+
- `invoice` - Invoice processing
|
|
80
|
+
- `billing` - Billing operations
|
|
81
|
+
- `onboarding` - Employee/customer onboarding
|
|
82
|
+
- `compliance` - Compliance and audit
|
|
83
|
+
- `reporting` - Reporting and analytics
|
|
84
|
+
|
|
85
|
+
## Creating a Demo Kit
|
|
86
|
+
|
|
87
|
+
1. Create a folder in `demo-kits/`
|
|
88
|
+
2. Add `manifest.json` with kit metadata
|
|
89
|
+
3. Add `demo-script.md` with talk track
|
|
90
|
+
4. Add sample data and validation queries
|
|
91
|
+
5. Register personas in manifest
|
|
92
|
+
|
|
93
|
+
### Manifest Schema
|
|
94
|
+
|
|
95
|
+
```json
|
|
96
|
+
{
|
|
97
|
+
"id": "kit-id",
|
|
98
|
+
"name": "Kit Display Name",
|
|
99
|
+
"version": "1.0.0",
|
|
100
|
+
"description": "What this kit demonstrates",
|
|
101
|
+
"domain": "finance|sales|support|hr|it|legal|marketing",
|
|
102
|
+
"tags": ["tag1", "tag2"],
|
|
103
|
+
"personas": [
|
|
104
|
+
{
|
|
105
|
+
"id": "uuid",
|
|
106
|
+
"name": "Persona Name",
|
|
107
|
+
"role": "primary|supporting",
|
|
108
|
+
"description": "What this persona does in the demo"
|
|
109
|
+
}
|
|
110
|
+
],
|
|
111
|
+
"prerequisites": {
|
|
112
|
+
"integrations": ["coupa", "salesforce"],
|
|
113
|
+
"data": ["sample-invoices"],
|
|
114
|
+
"environment": "demo"
|
|
115
|
+
},
|
|
116
|
+
"demo_flow": [
|
|
117
|
+
{
|
|
118
|
+
"step": 1,
|
|
119
|
+
"title": "Setup",
|
|
120
|
+
"duration_minutes": 2,
|
|
121
|
+
"actions": ["Load persona", "Prepare data"]
|
|
122
|
+
}
|
|
123
|
+
],
|
|
124
|
+
"target_audience": {
|
|
125
|
+
"primary": "AP Manager",
|
|
126
|
+
"secondary": ["CFO", "IT Director"],
|
|
127
|
+
"company_size": "mid-market",
|
|
128
|
+
"industries": ["manufacturing", "retail"]
|
|
129
|
+
},
|
|
130
|
+
"roi_metrics": {
|
|
131
|
+
"time_saved_per_unit": "15 minutes",
|
|
132
|
+
"volume_per_month": 10000,
|
|
133
|
+
"cost_per_unit_before": 12,
|
|
134
|
+
"cost_per_unit_after": 1.5
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## Bundling Multiple Kits
|
|
140
|
+
|
|
141
|
+
Create meta-kits that combine related demos:
|
|
142
|
+
|
|
143
|
+
```json
|
|
144
|
+
{
|
|
145
|
+
"id": "finance-complete",
|
|
146
|
+
"name": "Complete Finance Automation",
|
|
147
|
+
"type": "bundle",
|
|
148
|
+
"includes": ["finance-ap", "finance-ar", "finance-reporting"],
|
|
149
|
+
"tags": ["finance", "bundle", "enterprise"]
|
|
150
|
+
}
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## Integration with Persona Tool
|
|
154
|
+
|
|
155
|
+
The `persona` tool supports kit-related operations:
|
|
156
|
+
|
|
157
|
+
```
|
|
158
|
+
# Tag a persona
|
|
159
|
+
persona(method="update", id="...", tags=["finance", "invoice"])
|
|
160
|
+
|
|
161
|
+
# Find personas by tag
|
|
162
|
+
persona(method="list", tags=["finance"])
|
|
163
|
+
|
|
164
|
+
# Get demo kit for persona
|
|
165
|
+
persona(method="demo_kit", id="...")
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
## Quality Standards
|
|
169
|
+
|
|
170
|
+
Each demo kit must:
|
|
171
|
+
- [ ] Have validated sample data
|
|
172
|
+
- [ ] Include error handling scenarios
|
|
173
|
+
- [ ] Work in demo environment
|
|
174
|
+
- [ ] Include realistic ROI numbers
|
|
175
|
+
- [ ] Have tested validation queries
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "finance-ap",
|
|
3
|
+
"name": "Finance - Accounts Payable Automation",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"description": "End-to-end AP invoice processing and generation automation. Demonstrates inbound invoice processing (AP) and outbound invoice generation (AR).",
|
|
6
|
+
"domain": "finance",
|
|
7
|
+
"tags": [
|
|
8
|
+
"finance",
|
|
9
|
+
"invoice",
|
|
10
|
+
"automation",
|
|
11
|
+
"ap-automation",
|
|
12
|
+
"ar-automation",
|
|
13
|
+
"coupa",
|
|
14
|
+
"usage-billing"
|
|
15
|
+
],
|
|
16
|
+
"personas": [
|
|
17
|
+
{
|
|
18
|
+
"id": "fa91cb51-58fe-4255-b2d2-0b3e3a72cf7e",
|
|
19
|
+
"name": "AP Invoice Processing",
|
|
20
|
+
"role": "primary",
|
|
21
|
+
"description": "Processes inbound invoices: extract data, validate against PO, create in Coupa, notify supplier",
|
|
22
|
+
"workflow_nodes": 5,
|
|
23
|
+
"integrations": ["coupa"]
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"id": "d73c8dca-d340-4541-a7ff-ae69f2810906",
|
|
27
|
+
"name": "AP Invoice Generation",
|
|
28
|
+
"role": "primary",
|
|
29
|
+
"description": "Generates outbound invoices: validate customer/usage/contract, generate professional document",
|
|
30
|
+
"workflow_nodes": 12,
|
|
31
|
+
"integrations": ["salesforce", "usage-api", "contract-db"]
|
|
32
|
+
}
|
|
33
|
+
],
|
|
34
|
+
"prerequisites": {
|
|
35
|
+
"integrations": ["coupa", "salesforce"],
|
|
36
|
+
"data": ["sample-invoices", "sample-contracts", "usage-data"],
|
|
37
|
+
"environment": "demo"
|
|
38
|
+
},
|
|
39
|
+
"demo_flow": [
|
|
40
|
+
{
|
|
41
|
+
"step": 1,
|
|
42
|
+
"title": "The Problem",
|
|
43
|
+
"duration_minutes": 2,
|
|
44
|
+
"talking_points": [
|
|
45
|
+
"Manual data entry takes 15-20 min per invoice",
|
|
46
|
+
"30-40% first-pass match rate",
|
|
47
|
+
"Supplier complaints about payment status"
|
|
48
|
+
]
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"step": 2,
|
|
52
|
+
"title": "Inbound Processing Demo",
|
|
53
|
+
"duration_minutes": 5,
|
|
54
|
+
"persona": "fa91cb51-58fe-4255-b2d2-0b3e3a72cf7e",
|
|
55
|
+
"actions": [
|
|
56
|
+
"Upload sample invoice",
|
|
57
|
+
"Show extraction results",
|
|
58
|
+
"Show PO validation",
|
|
59
|
+
"Show Coupa entry creation",
|
|
60
|
+
"Show supplier notification"
|
|
61
|
+
]
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"step": 3,
|
|
65
|
+
"title": "Outbound Generation Demo",
|
|
66
|
+
"duration_minutes": 5,
|
|
67
|
+
"persona": "d73c8dca-d340-4541-a7ff-ae69f2810906",
|
|
68
|
+
"actions": [
|
|
69
|
+
"Show data source connections",
|
|
70
|
+
"Show customer validation",
|
|
71
|
+
"Show usage aggregation",
|
|
72
|
+
"Show contract validation",
|
|
73
|
+
"Show generated invoice document"
|
|
74
|
+
]
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"step": 4,
|
|
78
|
+
"title": "ROI Discussion",
|
|
79
|
+
"duration_minutes": 2,
|
|
80
|
+
"talking_points": [
|
|
81
|
+
"$10.50 savings per invoice",
|
|
82
|
+
"95% time reduction for generation",
|
|
83
|
+
"Revenue leakage prevention"
|
|
84
|
+
]
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"step": 5,
|
|
88
|
+
"title": "Next Steps",
|
|
89
|
+
"duration_minutes": 1,
|
|
90
|
+
"actions": [
|
|
91
|
+
"Propose pilot program",
|
|
92
|
+
"Share ROI calculator"
|
|
93
|
+
]
|
|
94
|
+
}
|
|
95
|
+
],
|
|
96
|
+
"target_audience": {
|
|
97
|
+
"primary": "AP Manager / Controller",
|
|
98
|
+
"secondary": ["CFO", "RevOps Manager", "IT Director"],
|
|
99
|
+
"company_size": "mid-market to enterprise",
|
|
100
|
+
"industries": ["manufacturing", "retail", "saas", "distribution"]
|
|
101
|
+
},
|
|
102
|
+
"roi_metrics": {
|
|
103
|
+
"ap_processing": {
|
|
104
|
+
"time_saved_per_invoice": "13 minutes",
|
|
105
|
+
"volume_per_month": 10000,
|
|
106
|
+
"cost_per_invoice_before": 12,
|
|
107
|
+
"cost_per_invoice_after": 1.5,
|
|
108
|
+
"monthly_savings": 105000
|
|
109
|
+
},
|
|
110
|
+
"invoice_generation": {
|
|
111
|
+
"time_saved_per_invoice": "2.5 hours",
|
|
112
|
+
"volume_per_month": 500,
|
|
113
|
+
"cost_per_invoice_before": 150,
|
|
114
|
+
"cost_per_invoice_after": 4,
|
|
115
|
+
"monthly_savings": 73000
|
|
116
|
+
},
|
|
117
|
+
"revenue_protection": {
|
|
118
|
+
"error_rate_before": "5%",
|
|
119
|
+
"error_rate_after": "0.5%",
|
|
120
|
+
"monthly_billings": 10000000,
|
|
121
|
+
"protected_revenue": 450000
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
"objections": [
|
|
125
|
+
{
|
|
126
|
+
"objection": "We already have OCR",
|
|
127
|
+
"response": "OCR extracts text. Ema understands context, validates against your systems, and takes action."
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"objection": "Our pricing is too complex",
|
|
131
|
+
"response": "The more complex your pricing, the more value from automation. Can I see your most complex contract?"
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"objection": "Security concerns",
|
|
135
|
+
"response": "Ema connects via your existing APIs. Credentials in your vault, full audit logging."
|
|
136
|
+
}
|
|
137
|
+
],
|
|
138
|
+
"leave_behinds": [
|
|
139
|
+
"ROI Calculator (Excel)",
|
|
140
|
+
"Architecture Diagram",
|
|
141
|
+
"Sample Validation Report",
|
|
142
|
+
"Customer Case Study"
|
|
143
|
+
],
|
|
144
|
+
"related_kits": [
|
|
145
|
+
"finance-treasury",
|
|
146
|
+
"finance-reporting"
|
|
147
|
+
],
|
|
148
|
+
"created": "2026-01-24",
|
|
149
|
+
"updated": "2026-01-24"
|
|
150
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "1.0.0",
|
|
3
|
+
"description": "Tagging taxonomy for demo kits and personas",
|
|
4
|
+
"categories": {
|
|
5
|
+
"domain": {
|
|
6
|
+
"description": "Business domain or department",
|
|
7
|
+
"tags": [
|
|
8
|
+
{ "id": "finance", "name": "Finance", "description": "Financial operations, accounting, treasury" },
|
|
9
|
+
{ "id": "sales", "name": "Sales", "description": "Sales operations, SDR, AE workflows" },
|
|
10
|
+
{ "id": "support", "name": "Support", "description": "Customer support and service" },
|
|
11
|
+
{ "id": "hr", "name": "HR", "description": "Human resources, recruiting, employee services" },
|
|
12
|
+
{ "id": "it", "name": "IT", "description": "IT operations, security, infrastructure" },
|
|
13
|
+
{ "id": "legal", "name": "Legal", "description": "Legal operations, contracts, compliance" },
|
|
14
|
+
{ "id": "marketing", "name": "Marketing", "description": "Marketing operations, campaigns, analytics" },
|
|
15
|
+
{ "id": "operations", "name": "Operations", "description": "General business operations" },
|
|
16
|
+
{ "id": "procurement", "name": "Procurement", "description": "Procurement, vendor management" }
|
|
17
|
+
]
|
|
18
|
+
},
|
|
19
|
+
"capability": {
|
|
20
|
+
"description": "Technical capability or interaction type",
|
|
21
|
+
"tags": [
|
|
22
|
+
{ "id": "voice", "name": "Voice", "description": "Voice/phone interactions" },
|
|
23
|
+
{ "id": "chat", "name": "Chat", "description": "Chat/messaging interactions" },
|
|
24
|
+
{ "id": "dashboard", "name": "Dashboard", "description": "Dashboard/data processing" },
|
|
25
|
+
{ "id": "document", "name": "Document", "description": "Document generation" },
|
|
26
|
+
{ "id": "automation", "name": "Automation", "description": "Process automation" },
|
|
27
|
+
{ "id": "analysis", "name": "Analysis", "description": "Data analysis and insights" },
|
|
28
|
+
{ "id": "extraction", "name": "Extraction", "description": "Data/entity extraction" },
|
|
29
|
+
{ "id": "validation", "name": "Validation", "description": "Data validation and verification" }
|
|
30
|
+
]
|
|
31
|
+
},
|
|
32
|
+
"use_case": {
|
|
33
|
+
"description": "Specific use case or process",
|
|
34
|
+
"tags": [
|
|
35
|
+
{ "id": "invoice", "name": "Invoice", "description": "Invoice processing or generation" },
|
|
36
|
+
{ "id": "billing", "name": "Billing", "description": "Billing operations" },
|
|
37
|
+
{ "id": "onboarding", "name": "Onboarding", "description": "Employee or customer onboarding" },
|
|
38
|
+
{ "id": "compliance", "name": "Compliance", "description": "Compliance and audit" },
|
|
39
|
+
{ "id": "reporting", "name": "Reporting", "description": "Reporting and analytics" },
|
|
40
|
+
{ "id": "routing", "name": "Routing", "description": "Request/ticket routing" },
|
|
41
|
+
{ "id": "scheduling", "name": "Scheduling", "description": "Meeting/appointment scheduling" },
|
|
42
|
+
{ "id": "order", "name": "Order", "description": "Order processing" },
|
|
43
|
+
{ "id": "claims", "name": "Claims", "description": "Claims processing" }
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
"integration": {
|
|
47
|
+
"description": "External system integrations",
|
|
48
|
+
"tags": [
|
|
49
|
+
{ "id": "coupa", "name": "Coupa", "description": "Coupa procurement platform" },
|
|
50
|
+
{ "id": "salesforce", "name": "Salesforce", "description": "Salesforce CRM" },
|
|
51
|
+
{ "id": "servicenow", "name": "ServiceNow", "description": "ServiceNow ITSM" },
|
|
52
|
+
{ "id": "workday", "name": "Workday", "description": "Workday HCM" },
|
|
53
|
+
{ "id": "sap", "name": "SAP", "description": "SAP ERP" },
|
|
54
|
+
{ "id": "oracle", "name": "Oracle", "description": "Oracle applications" },
|
|
55
|
+
{ "id": "netsuite", "name": "NetSuite", "description": "Oracle NetSuite" },
|
|
56
|
+
{ "id": "hubspot", "name": "HubSpot", "description": "HubSpot CRM/marketing" },
|
|
57
|
+
{ "id": "zendesk", "name": "Zendesk", "description": "Zendesk support" },
|
|
58
|
+
{ "id": "jira", "name": "Jira", "description": "Atlassian Jira" }
|
|
59
|
+
]
|
|
60
|
+
},
|
|
61
|
+
"complexity": {
|
|
62
|
+
"description": "Demo complexity level",
|
|
63
|
+
"tags": [
|
|
64
|
+
{ "id": "simple", "name": "Simple", "description": "1-5 workflow nodes, single integration" },
|
|
65
|
+
{ "id": "moderate", "name": "Moderate", "description": "5-10 workflow nodes, 2-3 integrations" },
|
|
66
|
+
{ "id": "complex", "name": "Complex", "description": "10+ workflow nodes, multiple integrations" }
|
|
67
|
+
]
|
|
68
|
+
},
|
|
69
|
+
"bundle": {
|
|
70
|
+
"description": "Kit organization",
|
|
71
|
+
"tags": [
|
|
72
|
+
{ "id": "demo-kit", "name": "Demo Kit", "description": "Complete demo package with scripts" },
|
|
73
|
+
{ "id": "bundle", "name": "Bundle", "description": "Collection of related kits" },
|
|
74
|
+
{ "id": "template", "name": "Template", "description": "Reusable template" },
|
|
75
|
+
{ "id": "example", "name": "Example", "description": "Example/reference implementation" }
|
|
76
|
+
]
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
"tag_rules": {
|
|
80
|
+
"required_for_kit": ["domain"],
|
|
81
|
+
"recommended_for_kit": ["capability", "use_case"],
|
|
82
|
+
"max_tags_per_category": 3
|
|
83
|
+
},
|
|
84
|
+
"search_aliases": {
|
|
85
|
+
"ap": ["finance", "invoice", "accounts-payable"],
|
|
86
|
+
"ar": ["finance", "billing", "accounts-receivable"],
|
|
87
|
+
"sdr": ["sales", "outbound", "prospecting"],
|
|
88
|
+
"tier1": ["support", "customer-service"],
|
|
89
|
+
"faq": ["support", "knowledge", "self-service"]
|
|
90
|
+
}
|
|
91
|
+
}
|