@shawnfroos/gong-lite 1.0.0
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.
- package/LICENSE +21 -0
- package/README.md +73 -0
- package/dist/csv-utils.d.ts +37 -0
- package/dist/csv-utils.d.ts.map +1 -0
- package/dist/csv-utils.js +113 -0
- package/dist/csv-utils.js.map +1 -0
- package/dist/gong-client.d.ts +309 -0
- package/dist/gong-client.d.ts.map +1 -0
- package/dist/gong-client.js +415 -0
- package/dist/gong-client.js.map +1 -0
- package/dist/handlers.d.ts +20 -0
- package/dist/handlers.d.ts.map +1 -0
- package/dist/handlers.js +231 -0
- package/dist/handlers.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +251 -0
- package/dist/index.js.map +1 -0
- package/dist/tools.d.ts +292 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +233 -0
- package/dist/tools.js.map +1 -0
- package/dist/transcript-formatter.d.ts +64 -0
- package/dist/transcript-formatter.d.ts.map +1 -0
- package/dist/transcript-formatter.js +295 -0
- package/dist/transcript-formatter.js.map +1 -0
- package/package.json +61 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 Anthropic
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Gong MCP Server
|
|
2
|
+
|
|
3
|
+
MCP server for accessing Gong meeting data through Claude Desktop.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
10 tools for comprehensive Gong access:
|
|
8
|
+
|
|
9
|
+
| Tool | Description |
|
|
10
|
+
|------|-------------|
|
|
11
|
+
| `list_calls` | List calls with date/participant filters |
|
|
12
|
+
| `get_call` | Get call details |
|
|
13
|
+
| `get_transcript` | Full transcript with speaker attribution |
|
|
14
|
+
| `list_users` | List Gong users |
|
|
15
|
+
| `search_calls` | Search transcripts for keywords |
|
|
16
|
+
| `search_summaries` | Fast topic search via AI summaries |
|
|
17
|
+
| `get_call_summary` | AI summary, highlights, next steps |
|
|
18
|
+
| `get_call_analytics` | Call metrics and talk times |
|
|
19
|
+
| `export_call_markdown` | Export as markdown (summary or full) |
|
|
20
|
+
| `export_summaries_csv` | Batch export for spreadsheets |
|
|
21
|
+
|
|
22
|
+
## Installation
|
|
23
|
+
|
|
24
|
+
### Option 1: Desktop Extension (Recommended for Organizations)
|
|
25
|
+
|
|
26
|
+
1. Download `gong-lite.mcpb`
|
|
27
|
+
2. Double-click to install, or go to Claude Desktop → Settings → Extensions → Install
|
|
28
|
+
3. Enter your Gong API credentials when prompted
|
|
29
|
+
|
|
30
|
+
### Option 2: Manual Configuration
|
|
31
|
+
|
|
32
|
+
Add to Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json`):
|
|
33
|
+
|
|
34
|
+
```json
|
|
35
|
+
{
|
|
36
|
+
"mcpServers": {
|
|
37
|
+
"gong": {
|
|
38
|
+
"command": "node",
|
|
39
|
+
"args": ["/path/to/gong-lite/dist/index.js"],
|
|
40
|
+
"env": {
|
|
41
|
+
"GONG_ACCESS_KEY": "your-access-key",
|
|
42
|
+
"GONG_SECRET_KEY": "your-secret-key"
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Getting Gong API Credentials
|
|
50
|
+
|
|
51
|
+
1. Log into Gong as an admin
|
|
52
|
+
2. Go to **Company Settings** → **Ecosystem** → **API**
|
|
53
|
+
3. Create a new API key
|
|
54
|
+
4. Copy the Access Key and Secret Key
|
|
55
|
+
|
|
56
|
+
## Usage Examples
|
|
57
|
+
|
|
58
|
+
- "Show me calls from last week"
|
|
59
|
+
- "Find calls where we discussed pricing"
|
|
60
|
+
- "Get the summary of my call with Acme Corp"
|
|
61
|
+
- "Export last month's call summaries as CSV"
|
|
62
|
+
|
|
63
|
+
## Development
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
npm install
|
|
67
|
+
npm run build
|
|
68
|
+
npm test
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## License
|
|
72
|
+
|
|
73
|
+
MIT
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CSV utilities for batch export
|
|
3
|
+
*/
|
|
4
|
+
import type { GongCall, GongCallSummary, GongCallDetails } from './gong-client.js';
|
|
5
|
+
export interface CallSummaryRow {
|
|
6
|
+
call_id: string;
|
|
7
|
+
title: string;
|
|
8
|
+
date: string;
|
|
9
|
+
duration_minutes: number;
|
|
10
|
+
internal_participants: string;
|
|
11
|
+
external_participants: string;
|
|
12
|
+
ai_summary: string;
|
|
13
|
+
call_outcome: string;
|
|
14
|
+
topics: string;
|
|
15
|
+
key_points: string;
|
|
16
|
+
next_steps: string;
|
|
17
|
+
gong_url: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Escape a CSV field value
|
|
21
|
+
* - Wraps in quotes if contains comma, quote, or newline
|
|
22
|
+
* - Doubles any internal quotes
|
|
23
|
+
*/
|
|
24
|
+
export declare function escapeCsvField(value: string | number | null | undefined): string;
|
|
25
|
+
/**
|
|
26
|
+
* Convert an array of objects to CSV string
|
|
27
|
+
*/
|
|
28
|
+
export declare function toCsv<T>(rows: T[], columns: (keyof T)[]): string;
|
|
29
|
+
/**
|
|
30
|
+
* Build a summary row from call details and summary
|
|
31
|
+
*/
|
|
32
|
+
export declare function buildSummaryRow(call: GongCall, details: GongCallDetails | null, summary: GongCallSummary | null): CallSummaryRow;
|
|
33
|
+
/**
|
|
34
|
+
* Generate CSV from call summary rows
|
|
35
|
+
*/
|
|
36
|
+
export declare function generateSummariesCsv(rows: CallSummaryRow[]): string;
|
|
37
|
+
//# sourceMappingURL=csv-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"csv-utils.d.ts","sourceRoot":"","sources":["../src/csv-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,eAAe,EAAa,MAAM,kBAAkB,CAAC;AAE9F,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,CAAC;IACzB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAgBhF;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,MAAM,CAUhE;AAyCD;;GAEG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,eAAe,GAAG,IAAI,EAC/B,OAAO,EAAE,eAAe,GAAG,IAAI,GAC9B,cAAc,CA0BhB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,MAAM,CAiBnE"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CSV utilities for batch export
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Escape a CSV field value
|
|
6
|
+
* - Wraps in quotes if contains comma, quote, or newline
|
|
7
|
+
* - Doubles any internal quotes
|
|
8
|
+
*/
|
|
9
|
+
export function escapeCsvField(value) {
|
|
10
|
+
if (value === null || value === undefined) {
|
|
11
|
+
return '';
|
|
12
|
+
}
|
|
13
|
+
const str = String(value);
|
|
14
|
+
// Check if escaping is needed
|
|
15
|
+
const needsEscaping = str.includes(',') || str.includes('"') || str.includes('\n') || str.includes('\r');
|
|
16
|
+
if (needsEscaping) {
|
|
17
|
+
// Double any quotes and wrap in quotes
|
|
18
|
+
return `"${str.replace(/"/g, '""')}"`;
|
|
19
|
+
}
|
|
20
|
+
return str;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Convert an array of objects to CSV string
|
|
24
|
+
*/
|
|
25
|
+
export function toCsv(rows, columns) {
|
|
26
|
+
// Header row
|
|
27
|
+
const header = columns.map(col => escapeCsvField(String(col))).join(',');
|
|
28
|
+
// Data rows
|
|
29
|
+
const dataRows = rows.map(row => {
|
|
30
|
+
return columns.map(col => escapeCsvField(row[col])).join(',');
|
|
31
|
+
});
|
|
32
|
+
return [header, ...dataRows].join('\n');
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Extract participants by affiliation from call details
|
|
36
|
+
*/
|
|
37
|
+
function extractParticipants(parties, affiliation) {
|
|
38
|
+
if (!parties)
|
|
39
|
+
return [];
|
|
40
|
+
return parties
|
|
41
|
+
.filter(p => p.affiliation === affiliation && p.name)
|
|
42
|
+
.map(p => p.name);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Extract next steps from outline sections
|
|
46
|
+
*/
|
|
47
|
+
function extractNextSteps(outline) {
|
|
48
|
+
if (!outline)
|
|
49
|
+
return [];
|
|
50
|
+
const nextSteps = [];
|
|
51
|
+
for (const section of outline) {
|
|
52
|
+
const sectionLower = section.section.toLowerCase();
|
|
53
|
+
if (sectionLower.includes('next step') ||
|
|
54
|
+
sectionLower.includes('action item') ||
|
|
55
|
+
sectionLower.includes('follow up') ||
|
|
56
|
+
sectionLower.includes('follow-up') ||
|
|
57
|
+
sectionLower.includes('to do') ||
|
|
58
|
+
sectionLower.includes('todo')) {
|
|
59
|
+
if (section.items) {
|
|
60
|
+
nextSteps.push(...section.items);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return nextSteps;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Build a summary row from call details and summary
|
|
68
|
+
*/
|
|
69
|
+
export function buildSummaryRow(call, details, summary) {
|
|
70
|
+
const parties = details?.parties;
|
|
71
|
+
const internalParticipants = extractParticipants(parties, 'Internal');
|
|
72
|
+
const externalParticipants = extractParticipants(parties, 'External');
|
|
73
|
+
const topics = summary?.topics?.map(t => t.name) ?? [];
|
|
74
|
+
const keyPoints = summary?.keyPoints?.map(kp => kp.text) ?? [];
|
|
75
|
+
const nextSteps = extractNextSteps(summary?.outline);
|
|
76
|
+
const date = call.started ?? call.scheduled ?? '';
|
|
77
|
+
const durationMinutes = call.duration ? Math.round(call.duration / 60) : 0;
|
|
78
|
+
return {
|
|
79
|
+
call_id: call.id,
|
|
80
|
+
title: call.title ?? '',
|
|
81
|
+
date,
|
|
82
|
+
duration_minutes: durationMinutes,
|
|
83
|
+
internal_participants: internalParticipants.join(', '),
|
|
84
|
+
external_participants: externalParticipants.join(', '),
|
|
85
|
+
ai_summary: summary?.brief ?? '',
|
|
86
|
+
call_outcome: summary?.callOutcome ?? '',
|
|
87
|
+
topics: topics.join(', '),
|
|
88
|
+
key_points: keyPoints.join('; '),
|
|
89
|
+
next_steps: nextSteps.join('; '),
|
|
90
|
+
gong_url: call.url ?? `https://app.gong.io/call?id=${call.id}`,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Generate CSV from call summary rows
|
|
95
|
+
*/
|
|
96
|
+
export function generateSummariesCsv(rows) {
|
|
97
|
+
const columns = [
|
|
98
|
+
'call_id',
|
|
99
|
+
'title',
|
|
100
|
+
'date',
|
|
101
|
+
'duration_minutes',
|
|
102
|
+
'internal_participants',
|
|
103
|
+
'external_participants',
|
|
104
|
+
'ai_summary',
|
|
105
|
+
'call_outcome',
|
|
106
|
+
'topics',
|
|
107
|
+
'key_points',
|
|
108
|
+
'next_steps',
|
|
109
|
+
'gong_url',
|
|
110
|
+
];
|
|
111
|
+
return toCsv(rows, columns);
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=csv-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"csv-utils.js","sourceRoot":"","sources":["../src/csv-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAmBH;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,KAAyC;IACtE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAE1B,8BAA8B;IAC9B,MAAM,aAAa,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEzG,IAAI,aAAa,EAAE,CAAC;QAClB,uCAAuC;QACvC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;IACxC,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,KAAK,CAAI,IAAS,EAAE,OAAoB;IACtD,aAAa;IACb,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEzE,YAAY;IACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QAC9B,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAuC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtG,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAC1B,OAAgC,EAChC,WAAoC;IAEpC,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAExB,OAAO,OAAO;SACX,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC;SACpD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAK,CAAC,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,OAAmC;IAC3D,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAExB,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;QAC9B,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACnD,IACE,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC;YAClC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC;YACpC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC;YAClC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC;YAClC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC9B,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC7B,CAAC;YACD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClB,SAAS,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAc,EACd,OAA+B,EAC/B,OAA+B;IAE/B,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,CAAC;IACjC,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACtE,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAEtE,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACvD,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC/D,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAErD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;IAClD,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3E,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,EAAE;QAChB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;QACvB,IAAI;QACJ,gBAAgB,EAAE,eAAe;QACjC,qBAAqB,EAAE,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;QACtD,qBAAqB,EAAE,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;QACtD,UAAU,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE;QAChC,YAAY,EAAE,OAAO,EAAE,WAAW,IAAI,EAAE;QACxC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QACzB,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;QAChC,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;QAChC,QAAQ,EAAE,IAAI,CAAC,GAAG,IAAI,+BAA+B,IAAI,CAAC,EAAE,EAAE;KAC/D,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAsB;IACzD,MAAM,OAAO,GAA6B;QACxC,SAAS;QACT,OAAO;QACP,MAAM;QACN,kBAAkB;QAClB,uBAAuB;QACvB,uBAAuB;QACvB,YAAY;QACZ,cAAc;QACd,QAAQ;QACR,YAAY;QACZ,YAAY;QACZ,UAAU;KACX,CAAC;IAEF,OAAO,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
export interface GongUser {
|
|
2
|
+
id: string;
|
|
3
|
+
emailAddress: string;
|
|
4
|
+
firstName: string;
|
|
5
|
+
lastName: string;
|
|
6
|
+
title?: string;
|
|
7
|
+
phoneNumber?: string;
|
|
8
|
+
extension?: string;
|
|
9
|
+
personalMeetingUrls?: string[];
|
|
10
|
+
settings?: {
|
|
11
|
+
webConferencesRecorded: boolean;
|
|
12
|
+
preventWebConferenceRecording: boolean;
|
|
13
|
+
telephonyCallsImported: boolean;
|
|
14
|
+
};
|
|
15
|
+
managerId?: string;
|
|
16
|
+
active: boolean;
|
|
17
|
+
created: string;
|
|
18
|
+
}
|
|
19
|
+
export interface GongCall {
|
|
20
|
+
id: string;
|
|
21
|
+
url: string;
|
|
22
|
+
title?: string;
|
|
23
|
+
scheduled?: string;
|
|
24
|
+
started?: string;
|
|
25
|
+
duration?: number;
|
|
26
|
+
primaryUserId?: string;
|
|
27
|
+
direction?: 'Inbound' | 'Outbound' | 'Conference' | 'Unknown';
|
|
28
|
+
system?: string;
|
|
29
|
+
scope?: 'Internal' | 'External' | 'Unknown';
|
|
30
|
+
media?: 'Video' | 'Audio';
|
|
31
|
+
language?: string;
|
|
32
|
+
workspaceId?: string;
|
|
33
|
+
sdrDisposition?: string;
|
|
34
|
+
clientUniqueId?: string;
|
|
35
|
+
customData?: string;
|
|
36
|
+
purpose?: string;
|
|
37
|
+
meetingUrl?: string;
|
|
38
|
+
isPrivate?: boolean;
|
|
39
|
+
calendarEventId?: string;
|
|
40
|
+
}
|
|
41
|
+
export interface GongCallDetails extends Omit<GongCall, 'media'> {
|
|
42
|
+
media?: 'Video' | 'Audio';
|
|
43
|
+
parties?: GongParty[];
|
|
44
|
+
content?: {
|
|
45
|
+
topics?: GongTopic[];
|
|
46
|
+
trackers?: GongTracker[];
|
|
47
|
+
pointsOfInterest?: GongPointOfInterest[];
|
|
48
|
+
brief?: string;
|
|
49
|
+
outline?: GongOutlineItem[];
|
|
50
|
+
highlights?: GongHighlight[];
|
|
51
|
+
callOutcome?: string;
|
|
52
|
+
keyPoints?: GongKeyPoint[];
|
|
53
|
+
};
|
|
54
|
+
interaction?: {
|
|
55
|
+
speakers?: GongSpeaker[];
|
|
56
|
+
interactionStats?: GongInteractionStats[];
|
|
57
|
+
video?: GongVideoInteraction[];
|
|
58
|
+
};
|
|
59
|
+
collaboration?: {
|
|
60
|
+
publicComments?: GongComment[];
|
|
61
|
+
};
|
|
62
|
+
context?: GongContext[];
|
|
63
|
+
mediaUrls?: {
|
|
64
|
+
audioUrl?: string;
|
|
65
|
+
videoUrl?: string;
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
export interface GongParty {
|
|
69
|
+
id: string;
|
|
70
|
+
emailAddress?: string;
|
|
71
|
+
name?: string;
|
|
72
|
+
title?: string;
|
|
73
|
+
userId?: string;
|
|
74
|
+
speakerId?: string;
|
|
75
|
+
context?: GongPartyContext[];
|
|
76
|
+
affiliation?: 'Internal' | 'External' | 'Unknown';
|
|
77
|
+
phoneNumber?: string;
|
|
78
|
+
methods?: string[];
|
|
79
|
+
}
|
|
80
|
+
export interface GongPartyContext {
|
|
81
|
+
system: string;
|
|
82
|
+
objects: GongContextObject[];
|
|
83
|
+
}
|
|
84
|
+
export interface GongContextObject {
|
|
85
|
+
objectType: string;
|
|
86
|
+
objectId: string;
|
|
87
|
+
fields: GongContextField[];
|
|
88
|
+
timing?: 'Now' | 'AtConversationTime';
|
|
89
|
+
}
|
|
90
|
+
export interface GongContextField {
|
|
91
|
+
name: string;
|
|
92
|
+
value: string;
|
|
93
|
+
}
|
|
94
|
+
export interface GongTopic {
|
|
95
|
+
name: string;
|
|
96
|
+
duration?: number;
|
|
97
|
+
}
|
|
98
|
+
export interface GongTracker {
|
|
99
|
+
id?: string;
|
|
100
|
+
name: string;
|
|
101
|
+
count?: number;
|
|
102
|
+
type?: string;
|
|
103
|
+
phrases?: GongTrackerPhrase[];
|
|
104
|
+
}
|
|
105
|
+
export interface GongTrackerPhrase {
|
|
106
|
+
count: number;
|
|
107
|
+
phrase: string;
|
|
108
|
+
occurrences?: GongPhraseOccurrence[];
|
|
109
|
+
}
|
|
110
|
+
export interface GongPhraseOccurrence {
|
|
111
|
+
startTime: number;
|
|
112
|
+
speakerId: string;
|
|
113
|
+
}
|
|
114
|
+
export interface GongPointOfInterest {
|
|
115
|
+
snippetStartTime?: number;
|
|
116
|
+
snippetEndTime?: number;
|
|
117
|
+
speakerId?: string;
|
|
118
|
+
type?: string;
|
|
119
|
+
}
|
|
120
|
+
export interface GongOutlineItem {
|
|
121
|
+
section: string;
|
|
122
|
+
startTime: number;
|
|
123
|
+
duration?: number;
|
|
124
|
+
items?: string[];
|
|
125
|
+
}
|
|
126
|
+
export interface GongHighlight {
|
|
127
|
+
text: string;
|
|
128
|
+
startTime: number;
|
|
129
|
+
speakerId?: string;
|
|
130
|
+
}
|
|
131
|
+
export interface GongKeyPoint {
|
|
132
|
+
text: string;
|
|
133
|
+
}
|
|
134
|
+
export interface GongCallSummary {
|
|
135
|
+
callId: string;
|
|
136
|
+
title?: string;
|
|
137
|
+
brief?: string;
|
|
138
|
+
keyPoints?: GongKeyPoint[];
|
|
139
|
+
highlights?: GongHighlight[];
|
|
140
|
+
outline?: GongOutlineItem[];
|
|
141
|
+
callOutcome?: string;
|
|
142
|
+
topics?: GongTopic[];
|
|
143
|
+
}
|
|
144
|
+
export interface GongSpeaker {
|
|
145
|
+
id: string;
|
|
146
|
+
userId?: string;
|
|
147
|
+
talkTime?: number;
|
|
148
|
+
}
|
|
149
|
+
export interface GongInteractionStats {
|
|
150
|
+
name: string;
|
|
151
|
+
value: number;
|
|
152
|
+
}
|
|
153
|
+
export interface GongVideoInteraction {
|
|
154
|
+
name: string;
|
|
155
|
+
duration?: number;
|
|
156
|
+
}
|
|
157
|
+
export interface GongComment {
|
|
158
|
+
id: string;
|
|
159
|
+
audioStartTime: number;
|
|
160
|
+
audioEndTime?: number;
|
|
161
|
+
commenterUserId: string;
|
|
162
|
+
comment: string;
|
|
163
|
+
posted: string;
|
|
164
|
+
inReplyTo?: string;
|
|
165
|
+
duringCall?: boolean;
|
|
166
|
+
}
|
|
167
|
+
export interface GongContext {
|
|
168
|
+
system: string;
|
|
169
|
+
objects: GongContextObject[];
|
|
170
|
+
}
|
|
171
|
+
export interface GongTranscript {
|
|
172
|
+
callId: string;
|
|
173
|
+
transcript: GongTranscriptEntry[];
|
|
174
|
+
}
|
|
175
|
+
export interface GongTranscriptEntry {
|
|
176
|
+
speakerId: string;
|
|
177
|
+
topic?: string;
|
|
178
|
+
sentences: GongSentence[];
|
|
179
|
+
}
|
|
180
|
+
export interface GongSentence {
|
|
181
|
+
start: number;
|
|
182
|
+
end: number;
|
|
183
|
+
text: string;
|
|
184
|
+
}
|
|
185
|
+
export interface GongCallsResponse {
|
|
186
|
+
requestId: string;
|
|
187
|
+
records: {
|
|
188
|
+
totalRecords: number;
|
|
189
|
+
currentPageSize: number;
|
|
190
|
+
currentPageNumber: number;
|
|
191
|
+
cursor?: string;
|
|
192
|
+
};
|
|
193
|
+
calls: GongCall[];
|
|
194
|
+
}
|
|
195
|
+
export interface GongCallDetailsResponse {
|
|
196
|
+
requestId: string;
|
|
197
|
+
records: {
|
|
198
|
+
totalRecords: number;
|
|
199
|
+
currentPageSize: number;
|
|
200
|
+
currentPageNumber: number;
|
|
201
|
+
};
|
|
202
|
+
calls: GongCallDetails[];
|
|
203
|
+
}
|
|
204
|
+
export interface GongTranscriptsResponse {
|
|
205
|
+
requestId: string;
|
|
206
|
+
records: {
|
|
207
|
+
totalRecords: number;
|
|
208
|
+
currentPageSize: number;
|
|
209
|
+
currentPageNumber: number;
|
|
210
|
+
cursor?: string;
|
|
211
|
+
};
|
|
212
|
+
callTranscripts: GongTranscript[];
|
|
213
|
+
}
|
|
214
|
+
export interface GongUsersResponse {
|
|
215
|
+
requestId: string;
|
|
216
|
+
records: {
|
|
217
|
+
totalRecords: number;
|
|
218
|
+
currentPageSize: number;
|
|
219
|
+
currentPageNumber: number;
|
|
220
|
+
cursor?: string;
|
|
221
|
+
};
|
|
222
|
+
users: GongUser[];
|
|
223
|
+
}
|
|
224
|
+
export interface GongClientConfig {
|
|
225
|
+
accessKey: string;
|
|
226
|
+
secretKey: string;
|
|
227
|
+
baseUrl?: string;
|
|
228
|
+
}
|
|
229
|
+
export interface ListCallsOptions {
|
|
230
|
+
fromDateTime?: string;
|
|
231
|
+
toDateTime?: string;
|
|
232
|
+
workspaceId?: string;
|
|
233
|
+
participantEmails?: string[];
|
|
234
|
+
cursor?: string;
|
|
235
|
+
maxRecords?: number;
|
|
236
|
+
}
|
|
237
|
+
export interface ListUsersOptions {
|
|
238
|
+
cursor?: string;
|
|
239
|
+
maxRecords?: number;
|
|
240
|
+
}
|
|
241
|
+
export interface SearchCallsOptions {
|
|
242
|
+
query: string;
|
|
243
|
+
fromDateTime?: string;
|
|
244
|
+
toDateTime?: string;
|
|
245
|
+
maxRecords?: number;
|
|
246
|
+
}
|
|
247
|
+
export interface SearchSummariesOptions {
|
|
248
|
+
query: string;
|
|
249
|
+
fromDateTime?: string;
|
|
250
|
+
toDateTime?: string;
|
|
251
|
+
maxRecords?: number;
|
|
252
|
+
}
|
|
253
|
+
export interface SearchSummaryResult {
|
|
254
|
+
call: GongCall;
|
|
255
|
+
summary: GongCallSummary;
|
|
256
|
+
matchedIn: string[];
|
|
257
|
+
}
|
|
258
|
+
export interface SearchCallResult {
|
|
259
|
+
call: GongCall;
|
|
260
|
+
matches: Array<{
|
|
261
|
+
speakerId: string;
|
|
262
|
+
text: string;
|
|
263
|
+
startTime: number;
|
|
264
|
+
}>;
|
|
265
|
+
}
|
|
266
|
+
export interface CallAnalytics {
|
|
267
|
+
callId: string;
|
|
268
|
+
duration?: number;
|
|
269
|
+
speakers: Array<{
|
|
270
|
+
id: string;
|
|
271
|
+
name?: string;
|
|
272
|
+
talkTime?: number;
|
|
273
|
+
talkRatio?: number;
|
|
274
|
+
}>;
|
|
275
|
+
interactionStats: Array<{
|
|
276
|
+
name: string;
|
|
277
|
+
value: number;
|
|
278
|
+
}>;
|
|
279
|
+
topics?: Array<{
|
|
280
|
+
name: string;
|
|
281
|
+
duration?: number;
|
|
282
|
+
}>;
|
|
283
|
+
}
|
|
284
|
+
export interface PaginatedResult<T> {
|
|
285
|
+
records: T[];
|
|
286
|
+
truncated: boolean;
|
|
287
|
+
totalFetched: number;
|
|
288
|
+
}
|
|
289
|
+
export declare class GongApiError extends Error {
|
|
290
|
+
statusCode: number;
|
|
291
|
+
requestId?: string | undefined;
|
|
292
|
+
constructor(message: string, statusCode: number, requestId?: string | undefined);
|
|
293
|
+
}
|
|
294
|
+
export declare class GongRateLimitError extends GongApiError {
|
|
295
|
+
retryAfter?: number | undefined;
|
|
296
|
+
constructor(message: string, retryAfter?: number | undefined, requestId?: string);
|
|
297
|
+
}
|
|
298
|
+
export declare function createGongClient(config: GongClientConfig): {
|
|
299
|
+
listCalls: (options?: ListCallsOptions) => Promise<PaginatedResult<GongCall>>;
|
|
300
|
+
getCall: (callId: string) => Promise<GongCallDetails | null>;
|
|
301
|
+
getCallSummary: (callId: string) => Promise<GongCallSummary | null>;
|
|
302
|
+
getCallAnalytics: (callId: string) => Promise<CallAnalytics | null>;
|
|
303
|
+
getTranscripts: (callIds: string[]) => Promise<GongTranscript[]>;
|
|
304
|
+
listUsers: (options?: ListUsersOptions) => Promise<PaginatedResult<GongUser>>;
|
|
305
|
+
searchCalls: (options: SearchCallsOptions) => Promise<PaginatedResult<SearchCallResult>>;
|
|
306
|
+
searchSummaries: (options: SearchSummariesOptions) => Promise<PaginatedResult<SearchSummaryResult>>;
|
|
307
|
+
};
|
|
308
|
+
export type GongClient = ReturnType<typeof createGongClient>;
|
|
309
|
+
//# sourceMappingURL=gong-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gong-client.d.ts","sourceRoot":"","sources":["../src/gong-client.ts"],"names":[],"mappings":"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"}
|