@graph8/sdk 0.4.0 → 0.5.1
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/dist/index.d.mts +1492 -2
- package/dist/index.d.ts +1492 -2
- package/dist/index.js +758 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +758 -2
- package/dist/index.mjs.map +1 -1
- package/dist/react.d.mts +1471 -0
- package/dist/react.d.ts +1471 -0
- package/dist/react.js +758 -2
- package/dist/react.js.map +1 -1
- package/dist/react.mjs +758 -2
- package/dist/react.mjs.map +1 -1
- package/package.json +1 -1
package/dist/react.d.ts
CHANGED
|
@@ -2,6 +2,1027 @@ import * as _jitsu_js from '@jitsu/js';
|
|
|
2
2
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
3
|
import { ReactNode } from 'react';
|
|
4
4
|
|
|
5
|
+
interface MeetingAttendee {
|
|
6
|
+
name: string | null;
|
|
7
|
+
email: string;
|
|
8
|
+
role: "host" | "prospect" | "guest" | string;
|
|
9
|
+
contact_id?: number | null;
|
|
10
|
+
}
|
|
11
|
+
interface MeetingTranscriptLine {
|
|
12
|
+
speaker: string;
|
|
13
|
+
text: string;
|
|
14
|
+
timestamp: number;
|
|
15
|
+
}
|
|
16
|
+
interface MeetingAnalysis {
|
|
17
|
+
sentiment: "positive" | "neutral" | "negative";
|
|
18
|
+
summary: string;
|
|
19
|
+
next_steps: string[];
|
|
20
|
+
objections: string[];
|
|
21
|
+
talk_listen_ratio: number | null;
|
|
22
|
+
}
|
|
23
|
+
interface MeetingSummary {
|
|
24
|
+
id: string;
|
|
25
|
+
status: "scheduled" | "completed" | "cancelled" | "no_show";
|
|
26
|
+
event_type: string | null;
|
|
27
|
+
scheduled_at: string;
|
|
28
|
+
duration_minutes: number;
|
|
29
|
+
attendees: MeetingAttendee[];
|
|
30
|
+
contact_id: number | null;
|
|
31
|
+
conferencing_provider: string | null;
|
|
32
|
+
conferencing_url: string | null;
|
|
33
|
+
recording_url: string | null;
|
|
34
|
+
created_at: string;
|
|
35
|
+
}
|
|
36
|
+
interface MeetingDetail extends MeetingSummary {
|
|
37
|
+
transcript: MeetingTranscriptLine[] | null;
|
|
38
|
+
analysis: MeetingAnalysis | null;
|
|
39
|
+
}
|
|
40
|
+
interface MeetingListParams {
|
|
41
|
+
status?: "scheduled" | "completed" | "cancelled" | "no_show";
|
|
42
|
+
date_from?: string;
|
|
43
|
+
date_to?: string;
|
|
44
|
+
attendee_id?: string;
|
|
45
|
+
event_type?: string;
|
|
46
|
+
contact_id?: number;
|
|
47
|
+
page?: number;
|
|
48
|
+
limit?: number;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Meetings API - read-only access to scheduled, completed, and cancelled meetings.
|
|
52
|
+
* Booking happens via `g8.calendar.*` (write-key safe, browser only) — this surface
|
|
53
|
+
* is for reading meeting records, transcripts, and AI analysis.
|
|
54
|
+
*
|
|
55
|
+
* Requires API key (server-side).
|
|
56
|
+
*
|
|
57
|
+
* Backed by:
|
|
58
|
+
* GET /api/v1/inbox/meetings
|
|
59
|
+
* GET /api/v1/inbox/meetings/{meeting_id}
|
|
60
|
+
*/
|
|
61
|
+
declare const createMeetingsClient: (apiKey: string, apiUrl?: string) => {
|
|
62
|
+
/** List meetings with optional filters. Returns summary rows without transcript / analysis. */
|
|
63
|
+
list(params?: MeetingListParams): Promise<{
|
|
64
|
+
data: MeetingSummary[];
|
|
65
|
+
pagination?: {
|
|
66
|
+
page: number;
|
|
67
|
+
limit: number;
|
|
68
|
+
total: number;
|
|
69
|
+
has_next: boolean;
|
|
70
|
+
};
|
|
71
|
+
}>;
|
|
72
|
+
/** Get full meeting detail including transcript + AI analysis (transcript available 1-5 min after meeting ends). */
|
|
73
|
+
get(meetingId: string): Promise<MeetingDetail>;
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
interface GlobalContextDocument {
|
|
77
|
+
id: string;
|
|
78
|
+
category: string;
|
|
79
|
+
title: string;
|
|
80
|
+
content: string;
|
|
81
|
+
metadata: Record<string, unknown> | null;
|
|
82
|
+
created_at: string | null;
|
|
83
|
+
updated_at: string | null;
|
|
84
|
+
}
|
|
85
|
+
interface Persona {
|
|
86
|
+
id: string;
|
|
87
|
+
name: string;
|
|
88
|
+
description: string | null;
|
|
89
|
+
status: string;
|
|
90
|
+
pain_points: string[];
|
|
91
|
+
goals: string[];
|
|
92
|
+
channels: string[];
|
|
93
|
+
created_at: string | null;
|
|
94
|
+
}
|
|
95
|
+
interface ICP {
|
|
96
|
+
id: string;
|
|
97
|
+
name: string;
|
|
98
|
+
description: string | null;
|
|
99
|
+
status: string;
|
|
100
|
+
industry: string[] | null;
|
|
101
|
+
employee_count_min: number | null;
|
|
102
|
+
employee_count_max: number | null;
|
|
103
|
+
revenue_min: number | null;
|
|
104
|
+
revenue_max: number | null;
|
|
105
|
+
countries: string[] | null;
|
|
106
|
+
created_at: string | null;
|
|
107
|
+
}
|
|
108
|
+
interface IntelligenceData {
|
|
109
|
+
id: string;
|
|
110
|
+
source_type: string;
|
|
111
|
+
url: string | null;
|
|
112
|
+
title: string | null;
|
|
113
|
+
content_summary: string | null;
|
|
114
|
+
collected_at: string | null;
|
|
115
|
+
}
|
|
116
|
+
interface ResearchReport {
|
|
117
|
+
id: string;
|
|
118
|
+
category: "buyer_psychology" | "competitive_teardown" | "gtm_channel" | "industry_analyst" | "review_sentiment" | "voice_of_customer";
|
|
119
|
+
title: string;
|
|
120
|
+
summary: string | null;
|
|
121
|
+
created_at: string | null;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Studio context — org-level intelligence documents. The 44-doc engine that
|
|
125
|
+
* powers campaign ideation: brand brief, value props, messaging house, ICPs,
|
|
126
|
+
* personas, intelligence (scrapes + enrichment), and AI research reports.
|
|
127
|
+
*
|
|
128
|
+
* Requires API key (server-side).
|
|
129
|
+
*
|
|
130
|
+
* Backed by:
|
|
131
|
+
* GET /api/v1/global-context/documents
|
|
132
|
+
* GET /api/v1/icps
|
|
133
|
+
* GET /api/v1/personas
|
|
134
|
+
* GET /api/v1/intelligence-data
|
|
135
|
+
* GET /api/v1/research-reports
|
|
136
|
+
*/
|
|
137
|
+
declare const createStudioClient: (apiKey: string, apiUrl?: string) => {
|
|
138
|
+
/** Org-level Studio documents (brand_brief, value_props, messaging_house, etc.). */
|
|
139
|
+
globalContext(params?: {
|
|
140
|
+
category?: string;
|
|
141
|
+
limit?: number;
|
|
142
|
+
}): Promise<{
|
|
143
|
+
data: GlobalContextDocument[];
|
|
144
|
+
}>;
|
|
145
|
+
/** ICP definitions. */
|
|
146
|
+
icps(params?: {
|
|
147
|
+
status?: string;
|
|
148
|
+
limit?: number;
|
|
149
|
+
}): Promise<{
|
|
150
|
+
data: ICP[];
|
|
151
|
+
}>;
|
|
152
|
+
/** Buyer persona definitions. */
|
|
153
|
+
personas(params?: {
|
|
154
|
+
status?: string;
|
|
155
|
+
limit?: number;
|
|
156
|
+
}): Promise<{
|
|
157
|
+
data: Persona[];
|
|
158
|
+
}>;
|
|
159
|
+
/** Intelligence data (website scrapes, enrichment, competitor research). */
|
|
160
|
+
intelligenceData(params?: {
|
|
161
|
+
source_type?: string;
|
|
162
|
+
limit?: number;
|
|
163
|
+
}): Promise<{
|
|
164
|
+
data: IntelligenceData[];
|
|
165
|
+
}>;
|
|
166
|
+
/** AI research reports (buyer psychology, competitive teardown, GTM channel, etc.). */
|
|
167
|
+
researchReports(params?: {
|
|
168
|
+
category?: string;
|
|
169
|
+
limit?: number;
|
|
170
|
+
}): Promise<{
|
|
171
|
+
data: ResearchReport[];
|
|
172
|
+
}>;
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
interface IntentKeyword {
|
|
176
|
+
id: string;
|
|
177
|
+
keyword: string;
|
|
178
|
+
domain: string | null;
|
|
179
|
+
include_patterns: string[];
|
|
180
|
+
exclude_patterns: string[];
|
|
181
|
+
page_count: number;
|
|
182
|
+
visitor_count: number;
|
|
183
|
+
company_count: number;
|
|
184
|
+
contact_count: number;
|
|
185
|
+
created_at: string | null;
|
|
186
|
+
}
|
|
187
|
+
interface IntentPage {
|
|
188
|
+
url: string;
|
|
189
|
+
title: string | null;
|
|
190
|
+
keyword: string | null;
|
|
191
|
+
domain: string;
|
|
192
|
+
visitor_count: number;
|
|
193
|
+
last_seen: string | null;
|
|
194
|
+
}
|
|
195
|
+
interface IntentVisitor {
|
|
196
|
+
visitor_id: string;
|
|
197
|
+
company_domain: string | null;
|
|
198
|
+
company_name: string | null;
|
|
199
|
+
page_url: string;
|
|
200
|
+
first_seen: string | null;
|
|
201
|
+
last_seen: string | null;
|
|
202
|
+
visit_count: number;
|
|
203
|
+
}
|
|
204
|
+
interface IntentCompany {
|
|
205
|
+
domain: string;
|
|
206
|
+
name: string | null;
|
|
207
|
+
industry: string | null;
|
|
208
|
+
employee_count: string | null;
|
|
209
|
+
visit_count: number;
|
|
210
|
+
last_seen: string | null;
|
|
211
|
+
}
|
|
212
|
+
interface IntentContact {
|
|
213
|
+
contact_id: number | null;
|
|
214
|
+
email: string | null;
|
|
215
|
+
full_name: string | null;
|
|
216
|
+
company: string | null;
|
|
217
|
+
job_title: string | null;
|
|
218
|
+
last_seen: string | null;
|
|
219
|
+
}
|
|
220
|
+
interface IntentStats {
|
|
221
|
+
total_keywords: number;
|
|
222
|
+
total_pages: number;
|
|
223
|
+
total_visitors_30d: number;
|
|
224
|
+
total_companies_30d: number;
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Intent + visitor tracking. Distinct from `g8.signals` (which is summary scoring) —
|
|
228
|
+
* this module exposes keyword tracking, page-level visitor data, and account-level
|
|
229
|
+
* intent signals from your own site (or from competitor URLs you've added).
|
|
230
|
+
*
|
|
231
|
+
* Requires API key (server-side).
|
|
232
|
+
*
|
|
233
|
+
* Backed by:
|
|
234
|
+
* GET /api/v1/intent/stats
|
|
235
|
+
* POST /api/v1/intent/keywords/list
|
|
236
|
+
* POST /api/v1/intent/keywords/create-from-domain
|
|
237
|
+
* DELETE /api/v1/intent/keywords/{keyword_id}
|
|
238
|
+
* POST /api/v1/intent/keywords/{keyword_id}/companies
|
|
239
|
+
* POST /api/v1/intent/keywords/{keyword_id}/contacts
|
|
240
|
+
* POST /api/v1/intent/keywords/{keyword_id}/urls
|
|
241
|
+
* POST /api/v1/intent/pages-by-domain
|
|
242
|
+
* POST /api/v1/intent/pages/search
|
|
243
|
+
* POST /api/v1/intent/pages/visitors
|
|
244
|
+
* POST /api/v1/intent/pages/contacts
|
|
245
|
+
* POST /api/v1/intent/pages/visitor-counts
|
|
246
|
+
* POST /intent-search/url-companies (note: bare host, no /api/v1 prefix)
|
|
247
|
+
*/
|
|
248
|
+
declare const createIntentClient: (apiKey: string, apiUrl?: string) => {
|
|
249
|
+
/** Org-level intent stats (totals over the last 30 days). */
|
|
250
|
+
stats(): Promise<{
|
|
251
|
+
data: IntentStats;
|
|
252
|
+
}>;
|
|
253
|
+
/** List tracked keywords with optional pagination. */
|
|
254
|
+
listKeywords(params?: {
|
|
255
|
+
page?: number;
|
|
256
|
+
limit?: number;
|
|
257
|
+
search?: string;
|
|
258
|
+
}): Promise<{
|
|
259
|
+
data: IntentKeyword[];
|
|
260
|
+
}>;
|
|
261
|
+
/** Create a keyword group from a domain (auto-tracks all pages). */
|
|
262
|
+
createFromDomain(domain: string): Promise<{
|
|
263
|
+
data: IntentKeyword;
|
|
264
|
+
}>;
|
|
265
|
+
/** Stop tracking a keyword (irreversible — historical data is retained). */
|
|
266
|
+
deleteKeyword(keywordId: string): Promise<{
|
|
267
|
+
data: {
|
|
268
|
+
deleted: boolean;
|
|
269
|
+
};
|
|
270
|
+
}>;
|
|
271
|
+
/** Companies showing interest in a tracked keyword. */
|
|
272
|
+
keywordCompanies(keywordId: string, params?: {
|
|
273
|
+
limit?: number;
|
|
274
|
+
date_from?: string;
|
|
275
|
+
date_to?: string;
|
|
276
|
+
}): Promise<{
|
|
277
|
+
data: IntentCompany[];
|
|
278
|
+
}>;
|
|
279
|
+
/** Contacts showing interest in a tracked keyword. */
|
|
280
|
+
keywordContacts(keywordId: string, params?: {
|
|
281
|
+
limit?: number;
|
|
282
|
+
date_from?: string;
|
|
283
|
+
date_to?: string;
|
|
284
|
+
}): Promise<{
|
|
285
|
+
data: IntentContact[];
|
|
286
|
+
}>;
|
|
287
|
+
/** URLs associated with a keyword (pages visitors landed on while interested). */
|
|
288
|
+
keywordUrls(keywordId: string, params?: {
|
|
289
|
+
limit?: number;
|
|
290
|
+
}): Promise<{
|
|
291
|
+
data: IntentPage[];
|
|
292
|
+
}>;
|
|
293
|
+
/** Pages tracked on a specific domain. */
|
|
294
|
+
pagesByDomain(domain: string, params?: {
|
|
295
|
+
limit?: number;
|
|
296
|
+
}): Promise<{
|
|
297
|
+
data: IntentPage[];
|
|
298
|
+
}>;
|
|
299
|
+
/** Search tracked pages by URL fragment or keyword. */
|
|
300
|
+
searchPages(query: string, params?: {
|
|
301
|
+
limit?: number;
|
|
302
|
+
}): Promise<{
|
|
303
|
+
data: IntentPage[];
|
|
304
|
+
}>;
|
|
305
|
+
/** Get visitor records for a specific page URL. */
|
|
306
|
+
pageVisitors(pageUrl: string, params?: {
|
|
307
|
+
limit?: number;
|
|
308
|
+
date_from?: string;
|
|
309
|
+
date_to?: string;
|
|
310
|
+
}): Promise<{
|
|
311
|
+
data: IntentVisitor[];
|
|
312
|
+
}>;
|
|
313
|
+
/** Get contacts who visited a specific page URL. */
|
|
314
|
+
pageContacts(pageUrl: string, params?: {
|
|
315
|
+
limit?: number;
|
|
316
|
+
}): Promise<{
|
|
317
|
+
data: IntentContact[];
|
|
318
|
+
}>;
|
|
319
|
+
/** Visitor count aggregates by page (pass an array of URLs). */
|
|
320
|
+
pageVisitorCounts(urls: string[]): Promise<{
|
|
321
|
+
data: Array<{
|
|
322
|
+
url: string;
|
|
323
|
+
visitor_count: number;
|
|
324
|
+
}>;
|
|
325
|
+
}>;
|
|
326
|
+
/**
|
|
327
|
+
* Find companies whose users visited a specific URL (intent search).
|
|
328
|
+
*
|
|
329
|
+
* Note: this endpoint lives at the bare host (no `/api/v1` prefix), unlike the rest
|
|
330
|
+
* of the intent surface — we call it directly here instead of through the shared `post()` helper.
|
|
331
|
+
*/
|
|
332
|
+
urlCompanies(url: string, params?: {
|
|
333
|
+
limit?: number;
|
|
334
|
+
date_from?: string;
|
|
335
|
+
date_to?: string;
|
|
336
|
+
}): Promise<{
|
|
337
|
+
data: IntentCompany[];
|
|
338
|
+
}>;
|
|
339
|
+
};
|
|
340
|
+
|
|
341
|
+
type SkillType = "llm" | "api";
|
|
342
|
+
interface SkillInputField {
|
|
343
|
+
name: string;
|
|
344
|
+
type: string;
|
|
345
|
+
required: boolean;
|
|
346
|
+
description?: string;
|
|
347
|
+
}
|
|
348
|
+
interface Skill {
|
|
349
|
+
id: string;
|
|
350
|
+
title: string;
|
|
351
|
+
description: string | null;
|
|
352
|
+
type: SkillType;
|
|
353
|
+
/** Only present on `type=llm`. */
|
|
354
|
+
prompt?: string;
|
|
355
|
+
/** Only present on `type=llm`. */
|
|
356
|
+
model?: string;
|
|
357
|
+
/** Only present on `type=api`. */
|
|
358
|
+
method?: "GET" | "POST" | "PATCH" | "PUT" | "DELETE";
|
|
359
|
+
/** Only present on `type=api`. */
|
|
360
|
+
url?: string;
|
|
361
|
+
/** Only present on `type=api`. */
|
|
362
|
+
headers?: Record<string, string>;
|
|
363
|
+
/** Only present on `type=api`. */
|
|
364
|
+
body_template?: string;
|
|
365
|
+
input_schema: {
|
|
366
|
+
fields: SkillInputField[];
|
|
367
|
+
};
|
|
368
|
+
output_schema: Record<string, unknown> | null;
|
|
369
|
+
created_at: string | null;
|
|
370
|
+
updated_at: string | null;
|
|
371
|
+
}
|
|
372
|
+
interface SkillCreateLLMParams {
|
|
373
|
+
title: string;
|
|
374
|
+
description?: string;
|
|
375
|
+
prompt: string;
|
|
376
|
+
model: string;
|
|
377
|
+
input_schema: {
|
|
378
|
+
fields: SkillInputField[];
|
|
379
|
+
};
|
|
380
|
+
output_schema?: Record<string, unknown>;
|
|
381
|
+
}
|
|
382
|
+
interface SkillCreateAPIParams {
|
|
383
|
+
title: string;
|
|
384
|
+
description?: string;
|
|
385
|
+
method: "GET" | "POST" | "PATCH" | "PUT" | "DELETE";
|
|
386
|
+
url: string;
|
|
387
|
+
headers?: Record<string, string>;
|
|
388
|
+
body_template?: string;
|
|
389
|
+
response_mapping?: Record<string, string>;
|
|
390
|
+
input_schema: {
|
|
391
|
+
fields: SkillInputField[];
|
|
392
|
+
};
|
|
393
|
+
}
|
|
394
|
+
interface SkillUpdateLLMParams {
|
|
395
|
+
title?: string;
|
|
396
|
+
description?: string;
|
|
397
|
+
prompt?: string;
|
|
398
|
+
model?: string;
|
|
399
|
+
input_schema?: {
|
|
400
|
+
fields: SkillInputField[];
|
|
401
|
+
};
|
|
402
|
+
output_schema?: Record<string, unknown>;
|
|
403
|
+
}
|
|
404
|
+
interface SkillUpdateAPIParams {
|
|
405
|
+
title?: string;
|
|
406
|
+
description?: string;
|
|
407
|
+
method?: "GET" | "POST" | "PATCH" | "PUT" | "DELETE";
|
|
408
|
+
url?: string;
|
|
409
|
+
headers?: Record<string, string>;
|
|
410
|
+
body_template?: string;
|
|
411
|
+
response_mapping?: Record<string, string>;
|
|
412
|
+
input_schema?: {
|
|
413
|
+
fields: SkillInputField[];
|
|
414
|
+
};
|
|
415
|
+
}
|
|
416
|
+
interface SkillTemplate {
|
|
417
|
+
id: string;
|
|
418
|
+
title: string;
|
|
419
|
+
description: string;
|
|
420
|
+
type: SkillType;
|
|
421
|
+
use_cases: string[];
|
|
422
|
+
}
|
|
423
|
+
interface SkillListParams {
|
|
424
|
+
page?: number;
|
|
425
|
+
limit?: number;
|
|
426
|
+
type?: SkillType;
|
|
427
|
+
search?: string;
|
|
428
|
+
}
|
|
429
|
+
/**
|
|
430
|
+
* Skills API - LLM and API building blocks that workflows compose into runs.
|
|
431
|
+
* Requires API key (server-side).
|
|
432
|
+
*
|
|
433
|
+
* Backed by:
|
|
434
|
+
* GET /api/v1/skills
|
|
435
|
+
* GET /api/v1/skills/{id}
|
|
436
|
+
* GET /api/v1/skills/{id}/variables
|
|
437
|
+
* GET /api/v1/skills/models
|
|
438
|
+
* GET /api/v1/skills/templates
|
|
439
|
+
* POST /api/v1/skills (both llm + api types via `type` field)
|
|
440
|
+
* POST /api/v1/skills/from-template
|
|
441
|
+
* POST /api/v1/skills/from-node
|
|
442
|
+
* PUT /api/v1/skills/{id}
|
|
443
|
+
* DELETE /api/v1/skills/{id}
|
|
444
|
+
* POST /api/v1/skills/validate
|
|
445
|
+
* POST /api/v1/skills/{id}/execute
|
|
446
|
+
*/
|
|
447
|
+
declare const createSkillsClient: (apiKey: string, apiUrl?: string) => {
|
|
448
|
+
/** List skills. */
|
|
449
|
+
list(params?: SkillListParams): Promise<{
|
|
450
|
+
data: Skill[];
|
|
451
|
+
}>;
|
|
452
|
+
/** Get a skill by ID. */
|
|
453
|
+
get(skillId: string): Promise<Skill>;
|
|
454
|
+
/** Get the variables required by a skill (extracted from prompt or body template). */
|
|
455
|
+
getVariables(skillId: string): Promise<{
|
|
456
|
+
data: SkillInputField[];
|
|
457
|
+
}>;
|
|
458
|
+
/** List available LLM models. */
|
|
459
|
+
listModels(): Promise<{
|
|
460
|
+
data: Array<{
|
|
461
|
+
id: string;
|
|
462
|
+
label: string;
|
|
463
|
+
provider: string;
|
|
464
|
+
}>;
|
|
465
|
+
}>;
|
|
466
|
+
/** List skill templates. */
|
|
467
|
+
listTemplates(params?: {
|
|
468
|
+
type?: SkillType;
|
|
469
|
+
}): Promise<{
|
|
470
|
+
data: SkillTemplate[];
|
|
471
|
+
}>;
|
|
472
|
+
/** Create an LLM skill (prompt + model + schemas). */
|
|
473
|
+
createLLM(params: SkillCreateLLMParams): Promise<Skill>;
|
|
474
|
+
/** Create an API skill (HTTP request wrapper). */
|
|
475
|
+
createAPI(params: SkillCreateAPIParams): Promise<Skill>;
|
|
476
|
+
/** Create a skill from a built-in template. */
|
|
477
|
+
createFromTemplate(params: {
|
|
478
|
+
title: string;
|
|
479
|
+
template_id: string;
|
|
480
|
+
overrides?: Record<string, unknown>;
|
|
481
|
+
}): Promise<Skill>;
|
|
482
|
+
/** Lift a workflow node into a reusable skill. */
|
|
483
|
+
createFromNode(params: {
|
|
484
|
+
title: string;
|
|
485
|
+
description?: string;
|
|
486
|
+
node_id: string;
|
|
487
|
+
input_mapping?: Record<string, string>;
|
|
488
|
+
output_mapping?: Record<string, string>;
|
|
489
|
+
}): Promise<Skill>;
|
|
490
|
+
/** Update an LLM skill. */
|
|
491
|
+
updateLLM(skillId: string, fields: SkillUpdateLLMParams): Promise<Skill>;
|
|
492
|
+
/** Update an API skill. */
|
|
493
|
+
updateAPI(skillId: string, fields: SkillUpdateAPIParams): Promise<Skill>;
|
|
494
|
+
/** Delete a skill (irreversible if in-use workflows exist). */
|
|
495
|
+
delete(skillId: string): Promise<{
|
|
496
|
+
data: {
|
|
497
|
+
deleted: boolean;
|
|
498
|
+
};
|
|
499
|
+
}>;
|
|
500
|
+
/** Validate a skill definition (without saving). */
|
|
501
|
+
validate(skill: Partial<Skill>): Promise<{
|
|
502
|
+
data: {
|
|
503
|
+
valid: boolean;
|
|
504
|
+
errors: string[];
|
|
505
|
+
};
|
|
506
|
+
}>;
|
|
507
|
+
/** Execute a skill immediately with an input payload (test / preview). */
|
|
508
|
+
execute(skillId: string, inputPayload: Record<string, unknown>): Promise<{
|
|
509
|
+
data: {
|
|
510
|
+
output: Record<string, unknown>;
|
|
511
|
+
latency_ms: number;
|
|
512
|
+
tokens?: number;
|
|
513
|
+
error: string | null;
|
|
514
|
+
};
|
|
515
|
+
}>;
|
|
516
|
+
};
|
|
517
|
+
|
|
518
|
+
interface WorkflowNode {
|
|
519
|
+
id: string;
|
|
520
|
+
type: string;
|
|
521
|
+
config: Record<string, unknown>;
|
|
522
|
+
position?: {
|
|
523
|
+
x: number;
|
|
524
|
+
y: number;
|
|
525
|
+
};
|
|
526
|
+
/** Mapping from this node's output to the next node's input. */
|
|
527
|
+
input_mappings?: Record<string, string>;
|
|
528
|
+
}
|
|
529
|
+
interface WorkflowConnection {
|
|
530
|
+
from_node_id: string;
|
|
531
|
+
to_node_id: string;
|
|
532
|
+
condition?: string | null;
|
|
533
|
+
}
|
|
534
|
+
interface WorkflowConfig {
|
|
535
|
+
nodes: WorkflowNode[];
|
|
536
|
+
connections: WorkflowConnection[];
|
|
537
|
+
trigger?: Record<string, unknown> | null;
|
|
538
|
+
}
|
|
539
|
+
interface Workflow {
|
|
540
|
+
id: string;
|
|
541
|
+
name: string;
|
|
542
|
+
description: string | null;
|
|
543
|
+
config: WorkflowConfig;
|
|
544
|
+
trigger_config: Record<string, unknown> | null;
|
|
545
|
+
is_active: boolean;
|
|
546
|
+
created_at: string | null;
|
|
547
|
+
updated_at: string | null;
|
|
548
|
+
}
|
|
549
|
+
interface WorkflowCreateParams {
|
|
550
|
+
name: string;
|
|
551
|
+
description?: string;
|
|
552
|
+
config?: WorkflowConfig;
|
|
553
|
+
trigger_config?: Record<string, unknown>;
|
|
554
|
+
}
|
|
555
|
+
interface WorkflowUpdateParams {
|
|
556
|
+
name?: string;
|
|
557
|
+
description?: string;
|
|
558
|
+
config?: WorkflowConfig;
|
|
559
|
+
trigger_config?: Record<string, unknown>;
|
|
560
|
+
is_active?: boolean;
|
|
561
|
+
}
|
|
562
|
+
interface WorkflowExecution {
|
|
563
|
+
id: string;
|
|
564
|
+
workflow_id: string;
|
|
565
|
+
status: "pending" | "running" | "paused" | "completed" | "failed" | "stopped";
|
|
566
|
+
trigger_payload: Record<string, unknown>;
|
|
567
|
+
outputs: Record<string, unknown>;
|
|
568
|
+
error: string | null;
|
|
569
|
+
started_at: string | null;
|
|
570
|
+
ended_at: string | null;
|
|
571
|
+
}
|
|
572
|
+
interface NodeTypeSchema {
|
|
573
|
+
type: string;
|
|
574
|
+
label: string;
|
|
575
|
+
description: string;
|
|
576
|
+
config_schema: Record<string, unknown>;
|
|
577
|
+
output_schema: Record<string, unknown>;
|
|
578
|
+
}
|
|
579
|
+
interface WorkflowListParams {
|
|
580
|
+
page?: number;
|
|
581
|
+
limit?: number;
|
|
582
|
+
is_active?: boolean;
|
|
583
|
+
search?: string;
|
|
584
|
+
}
|
|
585
|
+
/**
|
|
586
|
+
* Workflows API - automation workflows with nodes, connections, and execution lifecycle.
|
|
587
|
+
* Requires API key (server-side).
|
|
588
|
+
*
|
|
589
|
+
* The graph8 workflow surface treats the whole workflow definition as a single
|
|
590
|
+
* record updated via `update()` — there are no per-node CRUD endpoints. To edit
|
|
591
|
+
* nodes or connections, fetch the workflow, mutate `config.nodes` / `config.connections`,
|
|
592
|
+
* and PUT it back.
|
|
593
|
+
*
|
|
594
|
+
* Backed by:
|
|
595
|
+
* GET /api/v1/workflows
|
|
596
|
+
* GET /api/v1/workflows/{id}
|
|
597
|
+
* POST /api/v1/workflows
|
|
598
|
+
* PUT /api/v1/workflows/{id}
|
|
599
|
+
* DELETE /api/v1/workflows/{id}
|
|
600
|
+
* POST /api/v1/workflows/validate
|
|
601
|
+
* POST /api/v1/workflows/{id}/execute
|
|
602
|
+
* GET /api/v1/workflows/executions/{exec_id}
|
|
603
|
+
* POST /api/v1/workflows/executions/{exec_id}/pause
|
|
604
|
+
* POST /api/v1/workflows/executions/{exec_id}/resume
|
|
605
|
+
* POST /api/v1/workflows/executions/{exec_id}/stop
|
|
606
|
+
* GET /api/v1/workflows/{id}/trigger-status
|
|
607
|
+
* POST /api/v1/workflows/{id}/trigger-reset
|
|
608
|
+
* GET /api/v1/workflows/node-types/schema
|
|
609
|
+
* GET /api/v1/workflows/integrations/slack/users|channels
|
|
610
|
+
* GET /api/v1/workflows/integrations/roam/users|groups
|
|
611
|
+
* GET /api/v1/workflows/mcp-servers
|
|
612
|
+
* GET /api/v1/workflows/dispositions
|
|
613
|
+
* GET /api/v1/workflows/forms/{form_id}/fields
|
|
614
|
+
*/
|
|
615
|
+
declare const createWorkflowsClient: (apiKey: string, apiUrl?: string) => {
|
|
616
|
+
/** List workflows org-wide. */
|
|
617
|
+
list(params?: WorkflowListParams): Promise<{
|
|
618
|
+
data: Workflow[];
|
|
619
|
+
}>;
|
|
620
|
+
/** Get full workflow definition (nodes, connections, trigger, execution state). */
|
|
621
|
+
get(workflowId: string): Promise<Workflow>;
|
|
622
|
+
/** Create a new workflow. */
|
|
623
|
+
create(params: WorkflowCreateParams): Promise<Workflow>;
|
|
624
|
+
/**
|
|
625
|
+
* Update a workflow. Pass the full `config` (nodes + connections) to edit
|
|
626
|
+
* the graph — node-level CRUD is performed client-side by mutating the
|
|
627
|
+
* config and submitting the updated record.
|
|
628
|
+
*/
|
|
629
|
+
update(workflowId: string, fields: WorkflowUpdateParams): Promise<Workflow>;
|
|
630
|
+
/** Delete a workflow. */
|
|
631
|
+
delete(workflowId: string): Promise<{
|
|
632
|
+
data: {
|
|
633
|
+
deleted: boolean;
|
|
634
|
+
};
|
|
635
|
+
}>;
|
|
636
|
+
/** Validate a workflow definition (orphans, dangling connections, required fields). */
|
|
637
|
+
validate(workflow: {
|
|
638
|
+
config: WorkflowConfig;
|
|
639
|
+
trigger_config?: Record<string, unknown>;
|
|
640
|
+
}): Promise<{
|
|
641
|
+
data: {
|
|
642
|
+
valid: boolean;
|
|
643
|
+
errors: Array<{
|
|
644
|
+
node_id?: string;
|
|
645
|
+
field?: string;
|
|
646
|
+
message: string;
|
|
647
|
+
}>;
|
|
648
|
+
};
|
|
649
|
+
}>;
|
|
650
|
+
/** Execute a workflow immediately with a trigger payload. */
|
|
651
|
+
execute(workflowId: string, triggerPayload?: Record<string, unknown>): Promise<WorkflowExecution>;
|
|
652
|
+
/** Get the status + output of a workflow execution. */
|
|
653
|
+
getExecution(executionId: string): Promise<WorkflowExecution>;
|
|
654
|
+
/** Pause an in-flight execution. */
|
|
655
|
+
pauseExecution(executionId: string): Promise<{
|
|
656
|
+
data: {
|
|
657
|
+
paused: boolean;
|
|
658
|
+
};
|
|
659
|
+
}>;
|
|
660
|
+
/** Resume a paused execution. */
|
|
661
|
+
resumeExecution(executionId: string): Promise<{
|
|
662
|
+
data: {
|
|
663
|
+
resumed: boolean;
|
|
664
|
+
};
|
|
665
|
+
}>;
|
|
666
|
+
/** Stop an execution (terminal state — cannot resume). */
|
|
667
|
+
stopExecution(executionId: string): Promise<{
|
|
668
|
+
data: {
|
|
669
|
+
stopped: boolean;
|
|
670
|
+
};
|
|
671
|
+
}>;
|
|
672
|
+
/** Get the status of a workflow's external trigger (e.g. "waiting for webhook"). */
|
|
673
|
+
getTriggerStatus(workflowId: string): Promise<{
|
|
674
|
+
data: {
|
|
675
|
+
status: string;
|
|
676
|
+
details: Record<string, unknown>;
|
|
677
|
+
};
|
|
678
|
+
}>;
|
|
679
|
+
/** Reset the trigger cursor (e.g. for event-stream triggers — resume from beginning). */
|
|
680
|
+
resetTrigger(workflowId: string): Promise<{
|
|
681
|
+
data: {
|
|
682
|
+
reset: boolean;
|
|
683
|
+
};
|
|
684
|
+
}>;
|
|
685
|
+
/**
|
|
686
|
+
* List available node types with schemas. Pass a `type` param to fetch one type's full schema.
|
|
687
|
+
*/
|
|
688
|
+
nodeTypes(params?: {
|
|
689
|
+
type?: string;
|
|
690
|
+
}): Promise<{
|
|
691
|
+
data: NodeTypeSchema[];
|
|
692
|
+
}>;
|
|
693
|
+
/** Slack workspace users (for Slack action recipients). */
|
|
694
|
+
listSlackUsers(): Promise<{
|
|
695
|
+
data: Array<{
|
|
696
|
+
id: string;
|
|
697
|
+
name: string;
|
|
698
|
+
email: string | null;
|
|
699
|
+
}>;
|
|
700
|
+
}>;
|
|
701
|
+
/** Slack channels. */
|
|
702
|
+
listSlackChannels(): Promise<{
|
|
703
|
+
data: Array<{
|
|
704
|
+
id: string;
|
|
705
|
+
name: string;
|
|
706
|
+
is_private: boolean;
|
|
707
|
+
}>;
|
|
708
|
+
}>;
|
|
709
|
+
/** Roam (Copilot chat) users. */
|
|
710
|
+
listRoamUsers(): Promise<{
|
|
711
|
+
data: Array<{
|
|
712
|
+
id: string;
|
|
713
|
+
name: string;
|
|
714
|
+
email: string | null;
|
|
715
|
+
}>;
|
|
716
|
+
}>;
|
|
717
|
+
/** Roam (Copilot chat) groups. */
|
|
718
|
+
listRoamGroups(): Promise<{
|
|
719
|
+
data: Array<{
|
|
720
|
+
id: string;
|
|
721
|
+
name: string;
|
|
722
|
+
}>;
|
|
723
|
+
}>;
|
|
724
|
+
/** Available MCP servers (for Agent-node integrations). */
|
|
725
|
+
listMcpServers(): Promise<{
|
|
726
|
+
data: Array<{
|
|
727
|
+
id: string;
|
|
728
|
+
name: string;
|
|
729
|
+
url: string;
|
|
730
|
+
}>;
|
|
731
|
+
}>;
|
|
732
|
+
/** Available call dispositions (voice workflow nodes). */
|
|
733
|
+
listDispositions(): Promise<{
|
|
734
|
+
data: Array<{
|
|
735
|
+
id: string;
|
|
736
|
+
label: string;
|
|
737
|
+
}>;
|
|
738
|
+
}>;
|
|
739
|
+
/** Form field schema for form-trigger nodes. */
|
|
740
|
+
listFormFields(formId: string): Promise<{
|
|
741
|
+
data: Array<{
|
|
742
|
+
name: string;
|
|
743
|
+
type: string;
|
|
744
|
+
required: boolean;
|
|
745
|
+
}>;
|
|
746
|
+
}>;
|
|
747
|
+
};
|
|
748
|
+
|
|
749
|
+
/**
|
|
750
|
+
* Stage Checklist v2 pipelines. A "pipeline" here is a multi-stage workflow
|
|
751
|
+
* (with evidence requirements and per-channel scripts) that lives parallel
|
|
752
|
+
* to deal pipelines. Use `g8.deals.pipelines()` for deal-pipeline reads.
|
|
753
|
+
*/
|
|
754
|
+
interface StagePipelineStage {
|
|
755
|
+
id: string;
|
|
756
|
+
name: string;
|
|
757
|
+
position: number;
|
|
758
|
+
/** Evidence keys that must be collected before the stage can be marked done. */
|
|
759
|
+
required_elements: string[];
|
|
760
|
+
/** Evidence keys that are recommended but not enforced. */
|
|
761
|
+
recommended_elements: string[];
|
|
762
|
+
/** Channel-specific scripts (call, email, linkedin, etc.). */
|
|
763
|
+
channel_scripts: Record<string, string>;
|
|
764
|
+
color: string | null;
|
|
765
|
+
stage_type: string | null;
|
|
766
|
+
}
|
|
767
|
+
interface StagePipeline {
|
|
768
|
+
id: string;
|
|
769
|
+
name: string;
|
|
770
|
+
target: string | null;
|
|
771
|
+
is_default: boolean;
|
|
772
|
+
stages: StagePipelineStage[];
|
|
773
|
+
created_at: string | null;
|
|
774
|
+
updated_at: string | null;
|
|
775
|
+
}
|
|
776
|
+
interface StagePipelineCreateParams {
|
|
777
|
+
name: string;
|
|
778
|
+
target?: string;
|
|
779
|
+
/** If true, creates an empty pipeline (no default stages). */
|
|
780
|
+
blank?: boolean;
|
|
781
|
+
}
|
|
782
|
+
interface StagePipelineUpdateParams {
|
|
783
|
+
name?: string;
|
|
784
|
+
target?: string;
|
|
785
|
+
}
|
|
786
|
+
interface StageCreateParams {
|
|
787
|
+
name: string;
|
|
788
|
+
position?: number;
|
|
789
|
+
required_elements?: string[];
|
|
790
|
+
recommended_elements?: string[];
|
|
791
|
+
channel_scripts?: Record<string, string>;
|
|
792
|
+
color?: string;
|
|
793
|
+
stage_type?: string;
|
|
794
|
+
}
|
|
795
|
+
interface StageUpdateParams {
|
|
796
|
+
name?: string;
|
|
797
|
+
position?: number;
|
|
798
|
+
required_elements?: string[];
|
|
799
|
+
recommended_elements?: string[];
|
|
800
|
+
channel_scripts?: Record<string, string>;
|
|
801
|
+
color?: string;
|
|
802
|
+
}
|
|
803
|
+
interface EvidenceKey {
|
|
804
|
+
key: string;
|
|
805
|
+
label: string;
|
|
806
|
+
description: string;
|
|
807
|
+
category: string;
|
|
808
|
+
}
|
|
809
|
+
interface PipelineSuggestion {
|
|
810
|
+
suggestion_id: string;
|
|
811
|
+
name: string;
|
|
812
|
+
target: string;
|
|
813
|
+
stages: Array<{
|
|
814
|
+
name: string;
|
|
815
|
+
required_elements: string[];
|
|
816
|
+
channel_scripts: Record<string, string>;
|
|
817
|
+
}>;
|
|
818
|
+
rationale: string;
|
|
819
|
+
}
|
|
820
|
+
/**
|
|
821
|
+
* Stage Checklist Pipelines API - workflow pipelines with evidence + scripts.
|
|
822
|
+
* Requires API key (server-side).
|
|
823
|
+
*
|
|
824
|
+
* Backed by:
|
|
825
|
+
* GET /api/v1/pipelines
|
|
826
|
+
* GET /api/v1/pipelines/{id}
|
|
827
|
+
* GET /api/v1/pipelines/evidence-library
|
|
828
|
+
* POST /api/v1/pipelines
|
|
829
|
+
* PUT /api/v1/pipelines/{id}
|
|
830
|
+
* DELETE /api/v1/pipelines/{id}
|
|
831
|
+
* POST /api/v1/pipelines/{id}/stages
|
|
832
|
+
* PUT /api/v1/pipelines/{id}/stages/{stage_id}
|
|
833
|
+
* DELETE /api/v1/pipelines/{id}/stages/{stage_id}
|
|
834
|
+
* PUT /api/v1/pipelines/{id}/stages/reorder
|
|
835
|
+
* POST /api/v1/pipelines/suggest
|
|
836
|
+
* POST /api/v1/pipelines/from-suggestion
|
|
837
|
+
*/
|
|
838
|
+
declare const createPipelinesClient: (apiKey: string, apiUrl?: string) => {
|
|
839
|
+
/** List all stage-checklist pipelines with stages, evidence, scripts. */
|
|
840
|
+
list(): Promise<{
|
|
841
|
+
data: StagePipeline[];
|
|
842
|
+
}>;
|
|
843
|
+
/** Get a single pipeline by ID. */
|
|
844
|
+
get(pipelineId: string): Promise<StagePipeline>;
|
|
845
|
+
/** Get the canonical evidence-key library (used when defining stages). */
|
|
846
|
+
evidenceLibrary(): Promise<{
|
|
847
|
+
data: EvidenceKey[];
|
|
848
|
+
}>;
|
|
849
|
+
/** Create a new pipeline. Defaults to a templated set of stages; pass blank=true for empty. */
|
|
850
|
+
create(params: StagePipelineCreateParams): Promise<StagePipeline>;
|
|
851
|
+
/** Update pipeline metadata (name, target). */
|
|
852
|
+
update(pipelineId: string, fields: StagePipelineUpdateParams): Promise<StagePipeline>;
|
|
853
|
+
/** Delete a pipeline. Only allowed when no deals reference it. */
|
|
854
|
+
delete(pipelineId: string): Promise<{
|
|
855
|
+
data: {
|
|
856
|
+
deleted: boolean;
|
|
857
|
+
};
|
|
858
|
+
}>;
|
|
859
|
+
/** Add a new stage to a pipeline. */
|
|
860
|
+
createStage(pipelineId: string, stage: StageCreateParams): Promise<StagePipelineStage>;
|
|
861
|
+
/** Update a stage (evidence, scripts, position). */
|
|
862
|
+
updateStage(pipelineId: string, stageId: string, fields: StageUpdateParams): Promise<StagePipelineStage>;
|
|
863
|
+
/** Reorder stages within a pipeline (pass full ordered list of stage IDs). */
|
|
864
|
+
reorderStages(pipelineId: string, stageIds: string[]): Promise<{
|
|
865
|
+
data: StagePipelineStage[];
|
|
866
|
+
}>;
|
|
867
|
+
/** Delete a stage from a pipeline. */
|
|
868
|
+
deleteStage(pipelineId: string, stageId: string): Promise<{
|
|
869
|
+
data: {
|
|
870
|
+
deleted: boolean;
|
|
871
|
+
};
|
|
872
|
+
}>;
|
|
873
|
+
/** Get an AI-suggested pipeline based on org context (brand, ICP, messaging). */
|
|
874
|
+
suggest(): Promise<{
|
|
875
|
+
data: PipelineSuggestion;
|
|
876
|
+
}>;
|
|
877
|
+
/** Create a real pipeline from an AI suggestion (optionally with overrides). */
|
|
878
|
+
fromSuggestion(suggestionId: string, overrides?: Partial<{
|
|
879
|
+
name: string;
|
|
880
|
+
target: string;
|
|
881
|
+
}>): Promise<StagePipeline>;
|
|
882
|
+
};
|
|
883
|
+
|
|
884
|
+
interface QuoteLineItem {
|
|
885
|
+
product_id?: string | null;
|
|
886
|
+
name?: string | null;
|
|
887
|
+
description?: string | null;
|
|
888
|
+
quantity: number;
|
|
889
|
+
unit_price: number;
|
|
890
|
+
currency?: string | null;
|
|
891
|
+
recurring?: boolean | null;
|
|
892
|
+
}
|
|
893
|
+
type QuoteStatus = "draft" | "sent" | "signed" | "declined" | "expired" | "void";
|
|
894
|
+
interface QuoteSummary {
|
|
895
|
+
id: string;
|
|
896
|
+
name: string | null;
|
|
897
|
+
status: QuoteStatus;
|
|
898
|
+
total: number | null;
|
|
899
|
+
currency: string | null;
|
|
900
|
+
contact_id: number | null;
|
|
901
|
+
company_id: number | null;
|
|
902
|
+
expires_at: string | null;
|
|
903
|
+
created_at: string | null;
|
|
904
|
+
updated_at: string | null;
|
|
905
|
+
signing_url: string | null;
|
|
906
|
+
payment_link_url: string | null;
|
|
907
|
+
}
|
|
908
|
+
interface QuoteDetail extends QuoteSummary {
|
|
909
|
+
line_items: QuoteLineItem[];
|
|
910
|
+
notes: string | null;
|
|
911
|
+
recipient_email: string | null;
|
|
912
|
+
signed_at: string | null;
|
|
913
|
+
sent_at: string | null;
|
|
914
|
+
}
|
|
915
|
+
interface QuoteCreateParams {
|
|
916
|
+
contact_id?: number;
|
|
917
|
+
company_id?: number;
|
|
918
|
+
line_items: QuoteLineItem[];
|
|
919
|
+
currency?: string;
|
|
920
|
+
notes?: string;
|
|
921
|
+
/** ISO 8601 timestamp. */
|
|
922
|
+
expires_at?: string;
|
|
923
|
+
name?: string;
|
|
924
|
+
}
|
|
925
|
+
interface QuoteUpdateParams {
|
|
926
|
+
line_items?: QuoteLineItem[];
|
|
927
|
+
notes?: string;
|
|
928
|
+
expires_at?: string;
|
|
929
|
+
name?: string;
|
|
930
|
+
}
|
|
931
|
+
interface QuoteSendParams {
|
|
932
|
+
recipient_email: string;
|
|
933
|
+
/** Whether to attach the signing link. Defaults to true. */
|
|
934
|
+
send_signing_link?: boolean;
|
|
935
|
+
}
|
|
936
|
+
interface QuoteListParams {
|
|
937
|
+
status?: QuoteStatus;
|
|
938
|
+
contact_id?: number;
|
|
939
|
+
company_id?: number;
|
|
940
|
+
page?: number;
|
|
941
|
+
limit?: number;
|
|
942
|
+
}
|
|
943
|
+
interface QuotableProduct {
|
|
944
|
+
id: string;
|
|
945
|
+
name: string;
|
|
946
|
+
description: string | null;
|
|
947
|
+
unit_price: number;
|
|
948
|
+
currency: string;
|
|
949
|
+
recurring: boolean;
|
|
950
|
+
}
|
|
951
|
+
interface QuoteSettings {
|
|
952
|
+
default_currency: string;
|
|
953
|
+
default_tax_rate: number | null;
|
|
954
|
+
payment_providers: string[];
|
|
955
|
+
logo_url: string | null;
|
|
956
|
+
signature_required: boolean;
|
|
957
|
+
}
|
|
958
|
+
interface PaginationMeta$2 {
|
|
959
|
+
page: number;
|
|
960
|
+
limit: number;
|
|
961
|
+
total: number;
|
|
962
|
+
has_next: boolean;
|
|
963
|
+
}
|
|
964
|
+
/**
|
|
965
|
+
* Quotes API - quote-to-cash lifecycle. Requires API key (server-side).
|
|
966
|
+
*
|
|
967
|
+
* Backed by:
|
|
968
|
+
* GET /api/v1/quotes
|
|
969
|
+
* GET /api/v1/quotes/{id}
|
|
970
|
+
* POST /api/v1/quotes
|
|
971
|
+
* PUT /api/v1/quotes/{id}
|
|
972
|
+
* DELETE /api/v1/quotes/{id}
|
|
973
|
+
* POST /api/v1/quotes/{id}/duplicate
|
|
974
|
+
* POST /api/v1/quotes/{id}/edit-as-draft
|
|
975
|
+
* POST /api/v1/quotes/{id}/send
|
|
976
|
+
* GET /api/v1/quotable-products
|
|
977
|
+
* GET /api/v1/quote-settings
|
|
978
|
+
* GET /api/v1/contacts/{contact_id}/quotes
|
|
979
|
+
* GET /api/v1/companies/{company_id}/quotes
|
|
980
|
+
*/
|
|
981
|
+
declare const createQuotesClient: (apiKey: string, apiUrl?: string) => {
|
|
982
|
+
/** List quotes org-wide with optional filters and pagination. */
|
|
983
|
+
list(params?: QuoteListParams): Promise<{
|
|
984
|
+
data: QuoteSummary[];
|
|
985
|
+
pagination?: PaginationMeta$2;
|
|
986
|
+
}>;
|
|
987
|
+
/** Get full details for a single quote. */
|
|
988
|
+
get(quoteId: string): Promise<QuoteDetail>;
|
|
989
|
+
/** Create a new quote from line items. */
|
|
990
|
+
create(quote: QuoteCreateParams): Promise<QuoteDetail>;
|
|
991
|
+
/** Update a draft quote (line items, expiry, notes). */
|
|
992
|
+
update(quoteId: string, fields: QuoteUpdateParams): Promise<QuoteDetail>;
|
|
993
|
+
/** Delete a draft quote (irreversible). */
|
|
994
|
+
delete(quoteId: string): Promise<{
|
|
995
|
+
data: {
|
|
996
|
+
deleted: boolean;
|
|
997
|
+
};
|
|
998
|
+
}>;
|
|
999
|
+
/** Duplicate an existing quote (all line items copied into a new draft). */
|
|
1000
|
+
duplicate(quoteId: string): Promise<QuoteDetail>;
|
|
1001
|
+
/** Convert a signed / sent quote back to editable draft state. */
|
|
1002
|
+
editAsDraft(quoteId: string): Promise<{
|
|
1003
|
+
data: {
|
|
1004
|
+
id: string;
|
|
1005
|
+
status: string;
|
|
1006
|
+
};
|
|
1007
|
+
}>;
|
|
1008
|
+
/** Send a quote to its recipient via email (with signature + optional payment link). */
|
|
1009
|
+
send(quoteId: string, params: QuoteSendParams): Promise<QuoteDetail>;
|
|
1010
|
+
/** List products available for line items. */
|
|
1011
|
+
products(): Promise<{
|
|
1012
|
+
data: QuotableProduct[];
|
|
1013
|
+
}>;
|
|
1014
|
+
/** Get org-level quote settings (currency, tax rate, payment providers, logo). */
|
|
1015
|
+
settings(): Promise<QuoteSettings>;
|
|
1016
|
+
/** Get all quotes associated with a contact. */
|
|
1017
|
+
forContact(contactId: number): Promise<{
|
|
1018
|
+
data: QuoteSummary[];
|
|
1019
|
+
}>;
|
|
1020
|
+
/** Get all quotes associated with a company. */
|
|
1021
|
+
forCompany(companyId: number): Promise<{
|
|
1022
|
+
data: QuoteSummary[];
|
|
1023
|
+
}>;
|
|
1024
|
+
};
|
|
1025
|
+
|
|
5
1026
|
/**
|
|
6
1027
|
* Inbox channel — `email`, `sms`, or `linkedin` (HeyReach internally).
|
|
7
1028
|
* Defaults to `email` on routes that accept this as a query param.
|
|
@@ -355,6 +1376,14 @@ interface Task {
|
|
|
355
1376
|
created_by: string | null;
|
|
356
1377
|
created_at: string | null;
|
|
357
1378
|
updated_at: string | null;
|
|
1379
|
+
/** Parent task UUID when this row is a subtask, else null. One level deep. */
|
|
1380
|
+
parent_task_id?: string | null;
|
|
1381
|
+
/** Sort position within the parent's subtasks. 0 when not a subtask. */
|
|
1382
|
+
subtask_sort_order?: number | null;
|
|
1383
|
+
/** Number of subtasks under this task (top-level rows only). */
|
|
1384
|
+
subtask_count?: number | null;
|
|
1385
|
+
/** Subset of subtask_count whose status is "completed". */
|
|
1386
|
+
completed_subtask_count?: number | null;
|
|
358
1387
|
}
|
|
359
1388
|
interface TaskCreateParams {
|
|
360
1389
|
title: string;
|
|
@@ -364,6 +1393,16 @@ interface TaskCreateParams {
|
|
|
364
1393
|
assignee_id?: string;
|
|
365
1394
|
/** 0=none, 1=urgent, 2=high, 3=normal, 4=low */
|
|
366
1395
|
priority?: number;
|
|
1396
|
+
/**
|
|
1397
|
+
* When set, the new task is created as a subtask of this parent. Parent
|
|
1398
|
+
* must exist and must not itself be a subtask (subtasks are one level
|
|
1399
|
+
* deep).
|
|
1400
|
+
*/
|
|
1401
|
+
parent_task_id?: string;
|
|
1402
|
+
/**
|
|
1403
|
+
* Sort position within the parent's subtasks. Omit to append at the end.
|
|
1404
|
+
*/
|
|
1405
|
+
subtask_sort_order?: number;
|
|
367
1406
|
}
|
|
368
1407
|
interface TaskUpdateParams {
|
|
369
1408
|
title?: string;
|
|
@@ -373,6 +1412,14 @@ interface TaskUpdateParams {
|
|
|
373
1412
|
/** "open" | "completed" */
|
|
374
1413
|
status?: string;
|
|
375
1414
|
priority?: number;
|
|
1415
|
+
/**
|
|
1416
|
+
* Re-parent this task into a subtask of the given parent. Parent must
|
|
1417
|
+
* exist, must not itself be a subtask, and a task that already has
|
|
1418
|
+
* subtasks of its own cannot be demoted into a subtask.
|
|
1419
|
+
*/
|
|
1420
|
+
parent_task_id?: string;
|
|
1421
|
+
/** Reorder within the parent's subtasks. Can be sent alone. */
|
|
1422
|
+
subtask_sort_order?: number;
|
|
376
1423
|
}
|
|
377
1424
|
interface TaskListParams {
|
|
378
1425
|
/** "open" | "completed" */
|
|
@@ -1015,6 +2062,44 @@ declare const createVoiceClient: (apiKey: string, apiUrl?: string) => {
|
|
|
1015
2062
|
callGrading(roomName: string): Promise<CallGradingResult>;
|
|
1016
2063
|
/** List voice agents available for dialer sessions (capped at 100; no pagination). */
|
|
1017
2064
|
agents(params?: DialerAgentsListParams): Promise<DialerAgentsListResult>;
|
|
2065
|
+
/** Fetch the full transcript for a single dialer call. */
|
|
2066
|
+
callTranscript(roomName: string): Promise<{
|
|
2067
|
+
data: {
|
|
2068
|
+
status: string;
|
|
2069
|
+
transcript: Array<{
|
|
2070
|
+
speaker: string;
|
|
2071
|
+
text: string;
|
|
2072
|
+
timestamp: number;
|
|
2073
|
+
}>;
|
|
2074
|
+
};
|
|
2075
|
+
}>;
|
|
2076
|
+
/** List dialer calls — pass `contact_id` or `user_email` to scope. */
|
|
2077
|
+
listCalls(params?: {
|
|
2078
|
+
contact_id?: number;
|
|
2079
|
+
user_email?: string;
|
|
2080
|
+
campaign_id?: string;
|
|
2081
|
+
date_from?: string;
|
|
2082
|
+
date_to?: string;
|
|
2083
|
+
limit?: number;
|
|
2084
|
+
page?: number;
|
|
2085
|
+
}): Promise<{
|
|
2086
|
+
data: Array<Record<string, unknown>>;
|
|
2087
|
+
pagination?: VoicePagination;
|
|
2088
|
+
}>;
|
|
2089
|
+
/** Convenience: list calls for a single contact. */
|
|
2090
|
+
listCallsForContact(contactId: number, extra?: {
|
|
2091
|
+
limit?: number;
|
|
2092
|
+
}): Promise<{
|
|
2093
|
+
data: Array<Record<string, unknown>>;
|
|
2094
|
+
}>;
|
|
2095
|
+
/** Convenience: list calls placed by a specific SDR. */
|
|
2096
|
+
listCallsForSdr(userEmail: string, extra?: {
|
|
2097
|
+
limit?: number;
|
|
2098
|
+
date_from?: string;
|
|
2099
|
+
date_to?: string;
|
|
2100
|
+
}): Promise<{
|
|
2101
|
+
data: Array<Record<string, unknown>>;
|
|
2102
|
+
}>;
|
|
1018
2103
|
};
|
|
1019
2104
|
};
|
|
1020
2105
|
|
|
@@ -1641,6 +2726,13 @@ declare const useG8: () => {
|
|
|
1641
2726
|
_fields: ReturnType<typeof createFieldsClient> | null;
|
|
1642
2727
|
_deals: ReturnType<typeof createDealsClient> | null;
|
|
1643
2728
|
_inbox: ReturnType<typeof createInboxClient> | null;
|
|
2729
|
+
_quotes: ReturnType<typeof createQuotesClient> | null;
|
|
2730
|
+
_pipelines: ReturnType<typeof createPipelinesClient> | null;
|
|
2731
|
+
_workflows: ReturnType<typeof createWorkflowsClient> | null;
|
|
2732
|
+
_skills: ReturnType<typeof createSkillsClient> | null;
|
|
2733
|
+
_intent: ReturnType<typeof createIntentClient> | null;
|
|
2734
|
+
_studio: ReturnType<typeof createStudioClient> | null;
|
|
2735
|
+
_meetings: ReturnType<typeof createMeetingsClient> | null;
|
|
1644
2736
|
init(config: G8Config): void;
|
|
1645
2737
|
track(event: string, properties?: TrackProperties): void;
|
|
1646
2738
|
identify(userId: string, properties?: IdentifyProperties): void;
|
|
@@ -1757,6 +2849,40 @@ declare const useG8: () => {
|
|
|
1757
2849
|
missedCallbacks(limit?: number): Promise<MissedCallbacksResult>;
|
|
1758
2850
|
callGrading(roomName: string): Promise<CallGradingResult>;
|
|
1759
2851
|
agents(params?: DialerAgentsListParams): Promise<DialerAgentsListResult>;
|
|
2852
|
+
callTranscript(roomName: string): Promise<{
|
|
2853
|
+
data: {
|
|
2854
|
+
status: string;
|
|
2855
|
+
transcript: Array<{
|
|
2856
|
+
speaker: string;
|
|
2857
|
+
text: string;
|
|
2858
|
+
timestamp: number;
|
|
2859
|
+
}>;
|
|
2860
|
+
};
|
|
2861
|
+
}>;
|
|
2862
|
+
listCalls(params?: {
|
|
2863
|
+
contact_id?: number;
|
|
2864
|
+
user_email?: string;
|
|
2865
|
+
campaign_id?: string;
|
|
2866
|
+
date_from?: string;
|
|
2867
|
+
date_to?: string;
|
|
2868
|
+
limit?: number;
|
|
2869
|
+
page?: number;
|
|
2870
|
+
}): Promise<{
|
|
2871
|
+
data: Array<Record<string, unknown>>;
|
|
2872
|
+
pagination?: VoicePagination;
|
|
2873
|
+
}>;
|
|
2874
|
+
listCallsForContact(contactId: number, extra?: {
|
|
2875
|
+
limit?: number;
|
|
2876
|
+
}): Promise<{
|
|
2877
|
+
data: Array<Record<string, unknown>>;
|
|
2878
|
+
}>;
|
|
2879
|
+
listCallsForSdr(userEmail: string, extra?: {
|
|
2880
|
+
limit?: number;
|
|
2881
|
+
date_from?: string;
|
|
2882
|
+
date_to?: string;
|
|
2883
|
+
}): Promise<{
|
|
2884
|
+
data: Array<Record<string, unknown>>;
|
|
2885
|
+
}>;
|
|
1760
2886
|
};
|
|
1761
2887
|
};
|
|
1762
2888
|
get pages(): {
|
|
@@ -1915,6 +3041,351 @@ declare const useG8: () => {
|
|
|
1915
3041
|
draft(replyId: string, channel?: InboxChannel): Promise<InboxDraft>;
|
|
1916
3042
|
send(replyId: string, payload: InboxSendParams): Promise<InboxSendResult>;
|
|
1917
3043
|
};
|
|
3044
|
+
get quotes(): {
|
|
3045
|
+
list(params?: QuoteListParams): Promise<{
|
|
3046
|
+
data: QuoteSummary[];
|
|
3047
|
+
pagination?: PaginationMeta$2;
|
|
3048
|
+
}>;
|
|
3049
|
+
get(quoteId: string): Promise<QuoteDetail>;
|
|
3050
|
+
create(quote: QuoteCreateParams): Promise<QuoteDetail>;
|
|
3051
|
+
update(quoteId: string, fields: QuoteUpdateParams): Promise<QuoteDetail>;
|
|
3052
|
+
delete(quoteId: string): Promise<{
|
|
3053
|
+
data: {
|
|
3054
|
+
deleted: boolean;
|
|
3055
|
+
};
|
|
3056
|
+
}>;
|
|
3057
|
+
duplicate(quoteId: string): Promise<QuoteDetail>;
|
|
3058
|
+
editAsDraft(quoteId: string): Promise<{
|
|
3059
|
+
data: {
|
|
3060
|
+
id: string;
|
|
3061
|
+
status: string;
|
|
3062
|
+
};
|
|
3063
|
+
}>;
|
|
3064
|
+
send(quoteId: string, params: QuoteSendParams): Promise<QuoteDetail>;
|
|
3065
|
+
products(): Promise<{
|
|
3066
|
+
data: QuotableProduct[];
|
|
3067
|
+
}>;
|
|
3068
|
+
settings(): Promise<QuoteSettings>;
|
|
3069
|
+
forContact(contactId: number): Promise<{
|
|
3070
|
+
data: QuoteSummary[];
|
|
3071
|
+
}>;
|
|
3072
|
+
forCompany(companyId: number): Promise<{
|
|
3073
|
+
data: QuoteSummary[];
|
|
3074
|
+
}>;
|
|
3075
|
+
};
|
|
3076
|
+
get pipelines(): {
|
|
3077
|
+
list(): Promise<{
|
|
3078
|
+
data: StagePipeline[];
|
|
3079
|
+
}>;
|
|
3080
|
+
get(pipelineId: string): Promise<StagePipeline>;
|
|
3081
|
+
evidenceLibrary(): Promise<{
|
|
3082
|
+
data: EvidenceKey[];
|
|
3083
|
+
}>;
|
|
3084
|
+
create(params: StagePipelineCreateParams): Promise<StagePipeline>;
|
|
3085
|
+
update(pipelineId: string, fields: StagePipelineUpdateParams): Promise<StagePipeline>;
|
|
3086
|
+
delete(pipelineId: string): Promise<{
|
|
3087
|
+
data: {
|
|
3088
|
+
deleted: boolean;
|
|
3089
|
+
};
|
|
3090
|
+
}>;
|
|
3091
|
+
createStage(pipelineId: string, stage: StageCreateParams): Promise<StagePipelineStage>;
|
|
3092
|
+
updateStage(pipelineId: string, stageId: string, fields: StageUpdateParams): Promise<StagePipelineStage>;
|
|
3093
|
+
reorderStages(pipelineId: string, stageIds: string[]): Promise<{
|
|
3094
|
+
data: StagePipelineStage[];
|
|
3095
|
+
}>;
|
|
3096
|
+
deleteStage(pipelineId: string, stageId: string): Promise<{
|
|
3097
|
+
data: {
|
|
3098
|
+
deleted: boolean;
|
|
3099
|
+
};
|
|
3100
|
+
}>;
|
|
3101
|
+
suggest(): Promise<{
|
|
3102
|
+
data: PipelineSuggestion;
|
|
3103
|
+
}>;
|
|
3104
|
+
fromSuggestion(suggestionId: string, overrides?: Partial<{
|
|
3105
|
+
name: string;
|
|
3106
|
+
target: string;
|
|
3107
|
+
}>): Promise<StagePipeline>;
|
|
3108
|
+
};
|
|
3109
|
+
get workflows(): {
|
|
3110
|
+
list(params?: WorkflowListParams): Promise<{
|
|
3111
|
+
data: Workflow[];
|
|
3112
|
+
}>;
|
|
3113
|
+
get(workflowId: string): Promise<Workflow>;
|
|
3114
|
+
create(params: WorkflowCreateParams): Promise<Workflow>;
|
|
3115
|
+
update(workflowId: string, fields: WorkflowUpdateParams): Promise<Workflow>;
|
|
3116
|
+
delete(workflowId: string): Promise<{
|
|
3117
|
+
data: {
|
|
3118
|
+
deleted: boolean;
|
|
3119
|
+
};
|
|
3120
|
+
}>;
|
|
3121
|
+
validate(workflow: {
|
|
3122
|
+
config: WorkflowConfig;
|
|
3123
|
+
trigger_config?: Record<string, unknown>;
|
|
3124
|
+
}): Promise<{
|
|
3125
|
+
data: {
|
|
3126
|
+
valid: boolean;
|
|
3127
|
+
errors: Array<{
|
|
3128
|
+
node_id?: string;
|
|
3129
|
+
field?: string;
|
|
3130
|
+
message: string;
|
|
3131
|
+
}>;
|
|
3132
|
+
};
|
|
3133
|
+
}>;
|
|
3134
|
+
execute(workflowId: string, triggerPayload?: Record<string, unknown>): Promise<WorkflowExecution>;
|
|
3135
|
+
getExecution(executionId: string): Promise<WorkflowExecution>;
|
|
3136
|
+
pauseExecution(executionId: string): Promise<{
|
|
3137
|
+
data: {
|
|
3138
|
+
paused: boolean;
|
|
3139
|
+
};
|
|
3140
|
+
}>;
|
|
3141
|
+
resumeExecution(executionId: string): Promise<{
|
|
3142
|
+
data: {
|
|
3143
|
+
resumed: boolean;
|
|
3144
|
+
};
|
|
3145
|
+
}>;
|
|
3146
|
+
stopExecution(executionId: string): Promise<{
|
|
3147
|
+
data: {
|
|
3148
|
+
stopped: boolean;
|
|
3149
|
+
};
|
|
3150
|
+
}>;
|
|
3151
|
+
getTriggerStatus(workflowId: string): Promise<{
|
|
3152
|
+
data: {
|
|
3153
|
+
status: string;
|
|
3154
|
+
details: Record<string, unknown>;
|
|
3155
|
+
};
|
|
3156
|
+
}>;
|
|
3157
|
+
resetTrigger(workflowId: string): Promise<{
|
|
3158
|
+
data: {
|
|
3159
|
+
reset: boolean;
|
|
3160
|
+
};
|
|
3161
|
+
}>;
|
|
3162
|
+
nodeTypes(params?: {
|
|
3163
|
+
type?: string;
|
|
3164
|
+
}): Promise<{
|
|
3165
|
+
data: NodeTypeSchema[];
|
|
3166
|
+
}>;
|
|
3167
|
+
listSlackUsers(): Promise<{
|
|
3168
|
+
data: Array<{
|
|
3169
|
+
id: string;
|
|
3170
|
+
name: string;
|
|
3171
|
+
email: string | null;
|
|
3172
|
+
}>;
|
|
3173
|
+
}>;
|
|
3174
|
+
listSlackChannels(): Promise<{
|
|
3175
|
+
data: Array<{
|
|
3176
|
+
id: string;
|
|
3177
|
+
name: string;
|
|
3178
|
+
is_private: boolean;
|
|
3179
|
+
}>;
|
|
3180
|
+
}>;
|
|
3181
|
+
listRoamUsers(): Promise<{
|
|
3182
|
+
data: Array<{
|
|
3183
|
+
id: string;
|
|
3184
|
+
name: string;
|
|
3185
|
+
email: string | null;
|
|
3186
|
+
}>;
|
|
3187
|
+
}>;
|
|
3188
|
+
listRoamGroups(): Promise<{
|
|
3189
|
+
data: Array<{
|
|
3190
|
+
id: string;
|
|
3191
|
+
name: string;
|
|
3192
|
+
}>;
|
|
3193
|
+
}>;
|
|
3194
|
+
listMcpServers(): Promise<{
|
|
3195
|
+
data: Array<{
|
|
3196
|
+
id: string;
|
|
3197
|
+
name: string;
|
|
3198
|
+
url: string;
|
|
3199
|
+
}>;
|
|
3200
|
+
}>;
|
|
3201
|
+
listDispositions(): Promise<{
|
|
3202
|
+
data: Array<{
|
|
3203
|
+
id: string;
|
|
3204
|
+
label: string;
|
|
3205
|
+
}>;
|
|
3206
|
+
}>;
|
|
3207
|
+
listFormFields(formId: string): Promise<{
|
|
3208
|
+
data: Array<{
|
|
3209
|
+
name: string;
|
|
3210
|
+
type: string;
|
|
3211
|
+
required: boolean;
|
|
3212
|
+
}>;
|
|
3213
|
+
}>;
|
|
3214
|
+
};
|
|
3215
|
+
get skills(): {
|
|
3216
|
+
list(params?: SkillListParams): Promise<{
|
|
3217
|
+
data: Skill[];
|
|
3218
|
+
}>;
|
|
3219
|
+
get(skillId: string): Promise<Skill>;
|
|
3220
|
+
getVariables(skillId: string): Promise<{
|
|
3221
|
+
data: SkillInputField[];
|
|
3222
|
+
}>;
|
|
3223
|
+
listModels(): Promise<{
|
|
3224
|
+
data: Array<{
|
|
3225
|
+
id: string;
|
|
3226
|
+
label: string;
|
|
3227
|
+
provider: string;
|
|
3228
|
+
}>;
|
|
3229
|
+
}>;
|
|
3230
|
+
listTemplates(params?: {
|
|
3231
|
+
type?: SkillType;
|
|
3232
|
+
}): Promise<{
|
|
3233
|
+
data: SkillTemplate[];
|
|
3234
|
+
}>;
|
|
3235
|
+
createLLM(params: SkillCreateLLMParams): Promise<Skill>;
|
|
3236
|
+
createAPI(params: SkillCreateAPIParams): Promise<Skill>;
|
|
3237
|
+
createFromTemplate(params: {
|
|
3238
|
+
title: string;
|
|
3239
|
+
template_id: string;
|
|
3240
|
+
overrides?: Record<string, unknown>;
|
|
3241
|
+
}): Promise<Skill>;
|
|
3242
|
+
createFromNode(params: {
|
|
3243
|
+
title: string;
|
|
3244
|
+
description?: string;
|
|
3245
|
+
node_id: string;
|
|
3246
|
+
input_mapping?: Record<string, string>;
|
|
3247
|
+
output_mapping?: Record<string, string>;
|
|
3248
|
+
}): Promise<Skill>;
|
|
3249
|
+
updateLLM(skillId: string, fields: SkillUpdateLLMParams): Promise<Skill>;
|
|
3250
|
+
updateAPI(skillId: string, fields: SkillUpdateAPIParams): Promise<Skill>;
|
|
3251
|
+
delete(skillId: string): Promise<{
|
|
3252
|
+
data: {
|
|
3253
|
+
deleted: boolean;
|
|
3254
|
+
};
|
|
3255
|
+
}>;
|
|
3256
|
+
validate(skill: Partial<Skill>): Promise<{
|
|
3257
|
+
data: {
|
|
3258
|
+
valid: boolean;
|
|
3259
|
+
errors: string[];
|
|
3260
|
+
};
|
|
3261
|
+
}>;
|
|
3262
|
+
execute(skillId: string, inputPayload: Record<string, unknown>): Promise<{
|
|
3263
|
+
data: {
|
|
3264
|
+
output: Record<string, unknown>;
|
|
3265
|
+
latency_ms: number;
|
|
3266
|
+
tokens?: number;
|
|
3267
|
+
error: string | null;
|
|
3268
|
+
};
|
|
3269
|
+
}>;
|
|
3270
|
+
};
|
|
3271
|
+
get intent(): {
|
|
3272
|
+
stats(): Promise<{
|
|
3273
|
+
data: IntentStats;
|
|
3274
|
+
}>;
|
|
3275
|
+
listKeywords(params?: {
|
|
3276
|
+
page?: number;
|
|
3277
|
+
limit?: number;
|
|
3278
|
+
search?: string;
|
|
3279
|
+
}): Promise<{
|
|
3280
|
+
data: IntentKeyword[];
|
|
3281
|
+
}>;
|
|
3282
|
+
createFromDomain(domain: string): Promise<{
|
|
3283
|
+
data: IntentKeyword;
|
|
3284
|
+
}>;
|
|
3285
|
+
deleteKeyword(keywordId: string): Promise<{
|
|
3286
|
+
data: {
|
|
3287
|
+
deleted: boolean;
|
|
3288
|
+
};
|
|
3289
|
+
}>;
|
|
3290
|
+
keywordCompanies(keywordId: string, params?: {
|
|
3291
|
+
limit?: number;
|
|
3292
|
+
date_from?: string;
|
|
3293
|
+
date_to?: string;
|
|
3294
|
+
}): Promise<{
|
|
3295
|
+
data: IntentCompany[];
|
|
3296
|
+
}>;
|
|
3297
|
+
keywordContacts(keywordId: string, params?: {
|
|
3298
|
+
limit?: number;
|
|
3299
|
+
date_from?: string;
|
|
3300
|
+
date_to?: string;
|
|
3301
|
+
}): Promise<{
|
|
3302
|
+
data: IntentContact[];
|
|
3303
|
+
}>;
|
|
3304
|
+
keywordUrls(keywordId: string, params?: {
|
|
3305
|
+
limit?: number;
|
|
3306
|
+
}): Promise<{
|
|
3307
|
+
data: IntentPage[];
|
|
3308
|
+
}>;
|
|
3309
|
+
pagesByDomain(domain: string, params?: {
|
|
3310
|
+
limit?: number;
|
|
3311
|
+
}): Promise<{
|
|
3312
|
+
data: IntentPage[];
|
|
3313
|
+
}>;
|
|
3314
|
+
searchPages(query: string, params?: {
|
|
3315
|
+
limit?: number;
|
|
3316
|
+
}): Promise<{
|
|
3317
|
+
data: IntentPage[];
|
|
3318
|
+
}>;
|
|
3319
|
+
pageVisitors(pageUrl: string, params?: {
|
|
3320
|
+
limit?: number;
|
|
3321
|
+
date_from?: string;
|
|
3322
|
+
date_to?: string;
|
|
3323
|
+
}): Promise<{
|
|
3324
|
+
data: IntentVisitor[];
|
|
3325
|
+
}>;
|
|
3326
|
+
pageContacts(pageUrl: string, params?: {
|
|
3327
|
+
limit?: number;
|
|
3328
|
+
}): Promise<{
|
|
3329
|
+
data: IntentContact[];
|
|
3330
|
+
}>;
|
|
3331
|
+
pageVisitorCounts(urls: string[]): Promise<{
|
|
3332
|
+
data: Array<{
|
|
3333
|
+
url: string;
|
|
3334
|
+
visitor_count: number;
|
|
3335
|
+
}>;
|
|
3336
|
+
}>;
|
|
3337
|
+
urlCompanies(url: string, params?: {
|
|
3338
|
+
limit?: number;
|
|
3339
|
+
date_from?: string;
|
|
3340
|
+
date_to?: string;
|
|
3341
|
+
}): Promise<{
|
|
3342
|
+
data: IntentCompany[];
|
|
3343
|
+
}>;
|
|
3344
|
+
};
|
|
3345
|
+
get studio(): {
|
|
3346
|
+
globalContext(params?: {
|
|
3347
|
+
category?: string;
|
|
3348
|
+
limit?: number;
|
|
3349
|
+
}): Promise<{
|
|
3350
|
+
data: GlobalContextDocument[];
|
|
3351
|
+
}>;
|
|
3352
|
+
icps(params?: {
|
|
3353
|
+
status?: string;
|
|
3354
|
+
limit?: number;
|
|
3355
|
+
}): Promise<{
|
|
3356
|
+
data: ICP[];
|
|
3357
|
+
}>;
|
|
3358
|
+
personas(params?: {
|
|
3359
|
+
status?: string;
|
|
3360
|
+
limit?: number;
|
|
3361
|
+
}): Promise<{
|
|
3362
|
+
data: Persona[];
|
|
3363
|
+
}>;
|
|
3364
|
+
intelligenceData(params?: {
|
|
3365
|
+
source_type?: string;
|
|
3366
|
+
limit?: number;
|
|
3367
|
+
}): Promise<{
|
|
3368
|
+
data: IntelligenceData[];
|
|
3369
|
+
}>;
|
|
3370
|
+
researchReports(params?: {
|
|
3371
|
+
category?: string;
|
|
3372
|
+
limit?: number;
|
|
3373
|
+
}): Promise<{
|
|
3374
|
+
data: ResearchReport[];
|
|
3375
|
+
}>;
|
|
3376
|
+
};
|
|
3377
|
+
get meetings(): {
|
|
3378
|
+
list(params?: MeetingListParams): Promise<{
|
|
3379
|
+
data: MeetingSummary[];
|
|
3380
|
+
pagination?: {
|
|
3381
|
+
page: number;
|
|
3382
|
+
limit: number;
|
|
3383
|
+
total: number;
|
|
3384
|
+
has_next: boolean;
|
|
3385
|
+
};
|
|
3386
|
+
}>;
|
|
3387
|
+
get(meetingId: string): Promise<MeetingDetail>;
|
|
3388
|
+
};
|
|
1918
3389
|
get initialized(): boolean;
|
|
1919
3390
|
_assertInit(): void;
|
|
1920
3391
|
_assertKey(module: string): void;
|