@getnexorai/sdk 0.1.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 +281 -0
- package/dist/chat.cjs +962 -0
- package/dist/chat.cjs.map +1 -0
- package/dist/chat.d.cts +29 -0
- package/dist/chat.d.ts +29 -0
- package/dist/chat.js +3 -0
- package/dist/chat.js.map +1 -0
- package/dist/chunk-ZQT7QEXV.js +960 -0
- package/dist/chunk-ZQT7QEXV.js.map +1 -0
- package/dist/config-eTstZgSV.d.cts +440 -0
- package/dist/config-eTstZgSV.d.ts +440 -0
- package/dist/index.cjs +1423 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +87 -0
- package/dist/index.d.ts +87 -0
- package/dist/index.js +456 -0
- package/dist/index.js.map +1 -0
- package/dist/nexor.iife.js +426 -0
- package/dist/nexor.iife.js.map +1 -0
- package/package.json +58 -0
|
@@ -0,0 +1,440 @@
|
|
|
1
|
+
type UUID = string;
|
|
2
|
+
type ISODateString = string;
|
|
3
|
+
interface ClientOptions {
|
|
4
|
+
/** Your Nexor API key. Get one in the dashboard at https://app.getnexor.ai */
|
|
5
|
+
apiKey: string;
|
|
6
|
+
/** Override the API base URL. Defaults to https://api.getnexor.ai */
|
|
7
|
+
baseUrl?: string;
|
|
8
|
+
/** Per-request timeout in ms. Defaults to 30000. */
|
|
9
|
+
timeoutMs?: number;
|
|
10
|
+
/** Number of automatic retries on 5xx / network errors. Defaults to 2. */
|
|
11
|
+
maxRetries?: number;
|
|
12
|
+
/** Custom fetch implementation (e.g. for testing). Defaults to globalThis.fetch. */
|
|
13
|
+
fetch?: typeof fetch;
|
|
14
|
+
/** Optional user-agent suffix appended to the default. */
|
|
15
|
+
userAgentSuffix?: string;
|
|
16
|
+
}
|
|
17
|
+
interface RequestOptions {
|
|
18
|
+
/** AbortSignal for cancellation. */
|
|
19
|
+
signal?: AbortSignal;
|
|
20
|
+
/** Override per-request timeout. */
|
|
21
|
+
timeoutMs?: number;
|
|
22
|
+
/** Optional idempotency key (echoed back to server logs). */
|
|
23
|
+
idempotencyKey?: string;
|
|
24
|
+
}
|
|
25
|
+
interface ForceFirstMessage {
|
|
26
|
+
channel: "whatsapp" | "email";
|
|
27
|
+
content: string;
|
|
28
|
+
/** Required when channel === "email". */
|
|
29
|
+
subject?: string;
|
|
30
|
+
/** Override the default email sender. */
|
|
31
|
+
sender_id?: UUID;
|
|
32
|
+
}
|
|
33
|
+
interface CreateLeadInput {
|
|
34
|
+
first_name: string;
|
|
35
|
+
last_name?: string;
|
|
36
|
+
email?: string;
|
|
37
|
+
phone?: string;
|
|
38
|
+
source?: string;
|
|
39
|
+
company?: string;
|
|
40
|
+
title?: string;
|
|
41
|
+
city?: string;
|
|
42
|
+
date_of_birth?: ISODateString;
|
|
43
|
+
external_id?: string;
|
|
44
|
+
metadata?: Record<string, unknown>;
|
|
45
|
+
tags?: string[] | string;
|
|
46
|
+
workflow_id?: UUID;
|
|
47
|
+
campaign_id?: UUID;
|
|
48
|
+
force_first_message?: ForceFirstMessage;
|
|
49
|
+
/** Any extra fields are merged into metadata server-side. */
|
|
50
|
+
[extra: string]: unknown;
|
|
51
|
+
}
|
|
52
|
+
interface Lead {
|
|
53
|
+
id: UUID;
|
|
54
|
+
first_name: string;
|
|
55
|
+
last_name: string | null;
|
|
56
|
+
email: string | null;
|
|
57
|
+
phone: string | null;
|
|
58
|
+
source: string;
|
|
59
|
+
company: string | null;
|
|
60
|
+
title: string | null;
|
|
61
|
+
metadata: Record<string, unknown>;
|
|
62
|
+
created_at: ISODateString;
|
|
63
|
+
updated_at?: ISODateString;
|
|
64
|
+
campaign_id?: UUID | null;
|
|
65
|
+
tags?: unknown;
|
|
66
|
+
}
|
|
67
|
+
interface WorkflowRunStub {
|
|
68
|
+
id: UUID;
|
|
69
|
+
job_id?: string;
|
|
70
|
+
workflow?: unknown;
|
|
71
|
+
cadence?: unknown;
|
|
72
|
+
}
|
|
73
|
+
interface CreateLeadResponse {
|
|
74
|
+
success: true;
|
|
75
|
+
lead: Lead;
|
|
76
|
+
workflow_run?: WorkflowRunStub;
|
|
77
|
+
force_first_message?: {
|
|
78
|
+
sent: boolean;
|
|
79
|
+
channel: "whatsapp" | "email";
|
|
80
|
+
error?: string;
|
|
81
|
+
};
|
|
82
|
+
warning?: string;
|
|
83
|
+
}
|
|
84
|
+
interface BulkResultEntry {
|
|
85
|
+
success: boolean;
|
|
86
|
+
index: number;
|
|
87
|
+
lead?: Lead;
|
|
88
|
+
workflow_run?: WorkflowRunStub;
|
|
89
|
+
tags?: UUID[];
|
|
90
|
+
error?: string;
|
|
91
|
+
warning?: string;
|
|
92
|
+
}
|
|
93
|
+
interface CreateLeadBulkResponse {
|
|
94
|
+
success: boolean;
|
|
95
|
+
results: BulkResultEntry[];
|
|
96
|
+
summary: {
|
|
97
|
+
total: number;
|
|
98
|
+
created: number;
|
|
99
|
+
failed: number;
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
interface GetLeadResponse {
|
|
103
|
+
success: true;
|
|
104
|
+
lead: Lead & {
|
|
105
|
+
active_workflow_run: unknown | null;
|
|
106
|
+
};
|
|
107
|
+
variables: Record<string, {
|
|
108
|
+
value: unknown;
|
|
109
|
+
value_text: string | null;
|
|
110
|
+
confidence: number | null;
|
|
111
|
+
updated_at: ISODateString;
|
|
112
|
+
}>;
|
|
113
|
+
engagement: {
|
|
114
|
+
whatsapp: {
|
|
115
|
+
last_sent_at: ISODateString | null;
|
|
116
|
+
last_delivered_at: ISODateString | null;
|
|
117
|
+
last_read_at: ISODateString | null;
|
|
118
|
+
last_reply_at: ISODateString | null;
|
|
119
|
+
window_open: boolean;
|
|
120
|
+
};
|
|
121
|
+
email: {
|
|
122
|
+
last_sent_at: ISODateString | null;
|
|
123
|
+
last_delivered_at: ISODateString | null;
|
|
124
|
+
last_opened_at: ISODateString | null;
|
|
125
|
+
};
|
|
126
|
+
call: {
|
|
127
|
+
last_call_at: ISODateString | null;
|
|
128
|
+
last_successful_call_at: ISODateString | null;
|
|
129
|
+
total_calls: number;
|
|
130
|
+
};
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
interface LeadHistoryItem {
|
|
134
|
+
id: string;
|
|
135
|
+
type: string;
|
|
136
|
+
channel: string;
|
|
137
|
+
timestamp: ISODateString;
|
|
138
|
+
direction?: "inbound" | "outbound" | null;
|
|
139
|
+
content?: string;
|
|
140
|
+
[key: string]: unknown;
|
|
141
|
+
}
|
|
142
|
+
interface GetLeadHistoryResponse {
|
|
143
|
+
success: true;
|
|
144
|
+
lead: {
|
|
145
|
+
id: UUID;
|
|
146
|
+
first_name: string;
|
|
147
|
+
};
|
|
148
|
+
history: LeadHistoryItem[];
|
|
149
|
+
pagination: {
|
|
150
|
+
limit: number;
|
|
151
|
+
offset: number;
|
|
152
|
+
has_more: boolean;
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
interface GetLeadHistoryParams {
|
|
156
|
+
channel?: ("whatsapp" | "email" | "call") | Array<"whatsapp" | "email" | "call">;
|
|
157
|
+
limit?: number;
|
|
158
|
+
offset?: number;
|
|
159
|
+
}
|
|
160
|
+
interface SyncTagsInput {
|
|
161
|
+
/** Either lead_id or email is required. */
|
|
162
|
+
lead_id?: UUID;
|
|
163
|
+
email?: string;
|
|
164
|
+
/** Source-of-truth set; [] clears all tags. */
|
|
165
|
+
tags: string[];
|
|
166
|
+
}
|
|
167
|
+
interface SyncTagsResponse {
|
|
168
|
+
success: true;
|
|
169
|
+
lead_id: UUID;
|
|
170
|
+
tags: unknown;
|
|
171
|
+
added: unknown[];
|
|
172
|
+
removed: unknown[];
|
|
173
|
+
}
|
|
174
|
+
interface Workflow {
|
|
175
|
+
id: UUID;
|
|
176
|
+
name: string;
|
|
177
|
+
description: string | null;
|
|
178
|
+
goal_type: string | null;
|
|
179
|
+
cadence_enabled: boolean;
|
|
180
|
+
created_at: ISODateString;
|
|
181
|
+
}
|
|
182
|
+
interface Campaign {
|
|
183
|
+
id: UUID;
|
|
184
|
+
name: string;
|
|
185
|
+
description: string | null;
|
|
186
|
+
created_at: ISODateString;
|
|
187
|
+
}
|
|
188
|
+
interface WhatsAppTemplate {
|
|
189
|
+
id: UUID;
|
|
190
|
+
name: string;
|
|
191
|
+
language: string;
|
|
192
|
+
category: string;
|
|
193
|
+
status: string;
|
|
194
|
+
components: unknown;
|
|
195
|
+
variables: unknown;
|
|
196
|
+
}
|
|
197
|
+
interface ListTemplatesParams {
|
|
198
|
+
status?: string;
|
|
199
|
+
category?: string;
|
|
200
|
+
}
|
|
201
|
+
interface SendMessageInput {
|
|
202
|
+
lead_id: UUID;
|
|
203
|
+
workflow_id: UUID;
|
|
204
|
+
channel: "whatsapp" | "email" | "call";
|
|
205
|
+
/** WhatsApp / email text body. */
|
|
206
|
+
content?: string;
|
|
207
|
+
/** Email HTML body. */
|
|
208
|
+
html?: string;
|
|
209
|
+
/** Email subject. */
|
|
210
|
+
subject?: string;
|
|
211
|
+
/** WhatsApp template id (alternative to free-form content). */
|
|
212
|
+
template_id?: UUID;
|
|
213
|
+
/** WhatsApp template component overrides. */
|
|
214
|
+
components?: unknown;
|
|
215
|
+
/** Retell first-utterance text when channel === "call". */
|
|
216
|
+
begin_message?: string;
|
|
217
|
+
}
|
|
218
|
+
interface CreateMeetingInput {
|
|
219
|
+
lead_email: string;
|
|
220
|
+
title: string;
|
|
221
|
+
starts_at: ISODateString;
|
|
222
|
+
ends_at?: ISODateString;
|
|
223
|
+
duration_minutes?: number;
|
|
224
|
+
timezone?: string;
|
|
225
|
+
meeting_url?: string;
|
|
226
|
+
location_type?: string;
|
|
227
|
+
location_details?: string;
|
|
228
|
+
description?: string;
|
|
229
|
+
host_email?: string;
|
|
230
|
+
meeting_type_id?: UUID;
|
|
231
|
+
attendee_name?: string;
|
|
232
|
+
attendee_email?: string;
|
|
233
|
+
attendee_phone?: string;
|
|
234
|
+
additional_attendees?: Array<{
|
|
235
|
+
name?: string;
|
|
236
|
+
email: string;
|
|
237
|
+
}>;
|
|
238
|
+
external_calendar_provider?: string;
|
|
239
|
+
external_event_id?: string;
|
|
240
|
+
status?: string;
|
|
241
|
+
}
|
|
242
|
+
interface MeetingNotesInput {
|
|
243
|
+
lead_email?: string;
|
|
244
|
+
notes?: string;
|
|
245
|
+
manual_ai_summary?: string;
|
|
246
|
+
provider?: string;
|
|
247
|
+
external_meeting_id?: string;
|
|
248
|
+
calendar_event_id?: UUID;
|
|
249
|
+
external_calendar_provider?: string;
|
|
250
|
+
external_calendar_event_id?: string;
|
|
251
|
+
meeting_url?: string;
|
|
252
|
+
meeting_date?: ISODateString;
|
|
253
|
+
meeting_title?: string;
|
|
254
|
+
duration_seconds?: number;
|
|
255
|
+
organizer_email?: string;
|
|
256
|
+
transcript_text?: string;
|
|
257
|
+
summary?: string;
|
|
258
|
+
action_items?: string[];
|
|
259
|
+
questions?: string[];
|
|
260
|
+
keywords?: string[];
|
|
261
|
+
sentences?: unknown[];
|
|
262
|
+
status?: "completed" | "pending" | "failed";
|
|
263
|
+
}
|
|
264
|
+
interface AutomationInput {
|
|
265
|
+
workflow_id: UUID;
|
|
266
|
+
}
|
|
267
|
+
interface ResumeAutomationInput extends AutomationInput {
|
|
268
|
+
resume_cadence?: boolean;
|
|
269
|
+
}
|
|
270
|
+
interface IsPausedResponse {
|
|
271
|
+
success: true;
|
|
272
|
+
paused: boolean;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
/**
|
|
276
|
+
* Low-level Nexor API client.
|
|
277
|
+
*
|
|
278
|
+
* Most users should call `init()` / `createClient()` instead of instantiating
|
|
279
|
+
* this directly, but it's exported for advanced cases (DI, mocking).
|
|
280
|
+
*/
|
|
281
|
+
declare class NexorClient {
|
|
282
|
+
private cfg;
|
|
283
|
+
constructor(opts: ClientOptions);
|
|
284
|
+
/** Create a single lead, optionally assigning it to a workflow. */
|
|
285
|
+
createLead(input: CreateLeadInput, options?: RequestOptions): Promise<CreateLeadResponse>;
|
|
286
|
+
/** Create many leads in one request (max 1000). */
|
|
287
|
+
createLeadsBulk(inputs: CreateLeadInput[], options?: RequestOptions): Promise<CreateLeadBulkResponse>;
|
|
288
|
+
/** Update an existing lead. metadata is shallow-merged server-side. */
|
|
289
|
+
updateLead(leadId: UUID, updates: Partial<CreateLeadInput>, options?: RequestOptions): Promise<{
|
|
290
|
+
success: true;
|
|
291
|
+
lead: Lead;
|
|
292
|
+
}>;
|
|
293
|
+
/** Fetch a lead with its captured variables and per-channel engagement. */
|
|
294
|
+
getLead(leadId: UUID, options?: RequestOptions): Promise<GetLeadResponse>;
|
|
295
|
+
/** Full chronological history: messages, transcripts, activity. */
|
|
296
|
+
getLeadHistory(leadId: UUID, params?: GetLeadHistoryParams, options?: RequestOptions): Promise<GetLeadHistoryResponse>;
|
|
297
|
+
/** Has automation been paused (human takeover) for this lead? */
|
|
298
|
+
isLeadPaused(leadId: UUID, params?: {
|
|
299
|
+
workflow_id?: UUID;
|
|
300
|
+
}, options?: RequestOptions): Promise<IsPausedResponse>;
|
|
301
|
+
/** Pause automation (engage human takeover) on a specific workflow run. */
|
|
302
|
+
stopAutomation(leadId: UUID, input: AutomationInput, options?: RequestOptions): Promise<unknown>;
|
|
303
|
+
/** Resume automation; pass resume_cadence: true to restart scheduled touches. */
|
|
304
|
+
resumeAutomation(leadId: UUID, input: ResumeAutomationInput, options?: RequestOptions): Promise<unknown>;
|
|
305
|
+
/**
|
|
306
|
+
* Replace the tag set on a lead (identified by lead_id OR email).
|
|
307
|
+
* Tags missing from the input are unassigned; new tags are find-or-created.
|
|
308
|
+
*/
|
|
309
|
+
syncLeadTags(input: SyncTagsInput, options?: RequestOptions): Promise<SyncTagsResponse>;
|
|
310
|
+
/** All meetings on file for a lead (optionally filter by status). */
|
|
311
|
+
listLeadMeetings(leadId: UUID, params?: {
|
|
312
|
+
status?: string | string[];
|
|
313
|
+
}, options?: RequestOptions): Promise<unknown>;
|
|
314
|
+
/** Active workflows in your account. */
|
|
315
|
+
listWorkflows(options?: RequestOptions): Promise<{
|
|
316
|
+
success: true;
|
|
317
|
+
workflows: Workflow[];
|
|
318
|
+
}>;
|
|
319
|
+
/** Campaigns in your account. */
|
|
320
|
+
listCampaigns(options?: RequestOptions): Promise<{
|
|
321
|
+
success: true;
|
|
322
|
+
campaigns: Campaign[];
|
|
323
|
+
}>;
|
|
324
|
+
/** Approved WhatsApp templates. */
|
|
325
|
+
listTemplates(params?: ListTemplatesParams, options?: RequestOptions): Promise<{
|
|
326
|
+
success: true;
|
|
327
|
+
templates: WhatsAppTemplate[];
|
|
328
|
+
}>;
|
|
329
|
+
/** Send a one-off message (WhatsApp/email) or trigger a call. */
|
|
330
|
+
sendMessage(input: SendMessageInput, options?: RequestOptions): Promise<unknown>;
|
|
331
|
+
/** Log a booked meeting against an existing lead (matched by email). */
|
|
332
|
+
createMeeting(input: CreateMeetingInput, options?: RequestOptions): Promise<unknown>;
|
|
333
|
+
/** Push a note-taker transcript / summary / action items to a meeting. */
|
|
334
|
+
createMeetingNotes(input: MeetingNotesInput, options?: RequestOptions): Promise<unknown>;
|
|
335
|
+
/**
|
|
336
|
+
* Send a turn in a browser-embedded chat session. Backed by
|
|
337
|
+
* POST /api/public/chat on the Nexor API.
|
|
338
|
+
*
|
|
339
|
+
* Most users will not call this directly — `initChat()` handles it.
|
|
340
|
+
*/
|
|
341
|
+
chat(input: {
|
|
342
|
+
workflow_id: UUID;
|
|
343
|
+
session_id: string;
|
|
344
|
+
message: string;
|
|
345
|
+
system_prompt?: string;
|
|
346
|
+
client_prompt?: string;
|
|
347
|
+
lead?: {
|
|
348
|
+
first_name?: string;
|
|
349
|
+
last_name?: string;
|
|
350
|
+
email?: string;
|
|
351
|
+
phone?: string;
|
|
352
|
+
metadata?: Record<string, unknown>;
|
|
353
|
+
};
|
|
354
|
+
metadata?: Record<string, unknown>;
|
|
355
|
+
}, options?: RequestOptions): Promise<{
|
|
356
|
+
success: true;
|
|
357
|
+
reply: string;
|
|
358
|
+
session_id: string;
|
|
359
|
+
lead_id?: UUID;
|
|
360
|
+
workflow_run_id?: UUID;
|
|
361
|
+
}>;
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
/**
|
|
365
|
+
* Chat widget configuration types + defaults.
|
|
366
|
+
*
|
|
367
|
+
* Kept separate from the widget's runtime code so other modules (and the
|
|
368
|
+
* top-level `nexor.initChat()` re-export) can pull types without dragging in
|
|
369
|
+
* the DOM construction code.
|
|
370
|
+
*/
|
|
371
|
+
|
|
372
|
+
interface ChatLeadCapture {
|
|
373
|
+
/** Which fields to ask for before chatting. Defaults to ["first_name", "email"]. */
|
|
374
|
+
fields?: Array<"first_name" | "last_name" | "email" | "phone">;
|
|
375
|
+
/** "before" gates chat behind the form; "skip" never asks. Default "before". */
|
|
376
|
+
mode?: "before" | "skip";
|
|
377
|
+
/** Label rendered above the form. */
|
|
378
|
+
label?: string;
|
|
379
|
+
/** Submit button label. */
|
|
380
|
+
submitLabel?: string;
|
|
381
|
+
}
|
|
382
|
+
interface ChatInitOptions {
|
|
383
|
+
/** Workflow that handles this chat conversation. Required. */
|
|
384
|
+
workflowId: UUID;
|
|
385
|
+
title?: string;
|
|
386
|
+
subtitle?: string;
|
|
387
|
+
greeting?: string;
|
|
388
|
+
/** Shown when a turn fails or the server returns no reply. */
|
|
389
|
+
errorText?: string;
|
|
390
|
+
/** BCP-47 locale for timestamps (e.g. "es", "en-US"). Defaults to the browser. */
|
|
391
|
+
locale?: string;
|
|
392
|
+
/** Hex colour for bubble + accents. Defaults to #111827. */
|
|
393
|
+
accentColor?: string;
|
|
394
|
+
/** Text colour rendered on top of the accent. Defaults to white. */
|
|
395
|
+
accentTextColor?: string;
|
|
396
|
+
/** Show the "Powered by Nexor" footer. Defaults to true. */
|
|
397
|
+
showBranding?: boolean;
|
|
398
|
+
position?: "bottom-right" | "bottom-left";
|
|
399
|
+
/** Auto-open the panel on first load. Defaults to false. */
|
|
400
|
+
openOnLoad?: boolean;
|
|
401
|
+
/** Coalesce rapid-fire messages: wait this many ms of quiet, then send the
|
|
402
|
+
* buffered messages as one combined turn. Defaults to 700. 0 = per message. */
|
|
403
|
+
debounceMs?: number;
|
|
404
|
+
/** Append the widget to a custom element. Defaults to document.body. */
|
|
405
|
+
container?: HTMLElement;
|
|
406
|
+
systemPrompt?: string;
|
|
407
|
+
clientPrompt?: string;
|
|
408
|
+
/** Pre-known lead info (e.g. a logged-in user). Skips capture if complete. */
|
|
409
|
+
lead?: {
|
|
410
|
+
first_name?: string;
|
|
411
|
+
last_name?: string;
|
|
412
|
+
email?: string;
|
|
413
|
+
phone?: string;
|
|
414
|
+
metadata?: Record<string, unknown>;
|
|
415
|
+
};
|
|
416
|
+
capture?: ChatLeadCapture;
|
|
417
|
+
/** Arbitrary metadata passed with each turn (page URL, UTM, …). */
|
|
418
|
+
metadata?: Record<string, unknown>;
|
|
419
|
+
onOpen?: () => void;
|
|
420
|
+
onClose?: () => void;
|
|
421
|
+
onMessage?: (msg: {
|
|
422
|
+
role: "user" | "bot";
|
|
423
|
+
text: string;
|
|
424
|
+
}) => void;
|
|
425
|
+
onLeadCaptured?: (leadId: UUID) => void;
|
|
426
|
+
onError?: (err: Error) => void;
|
|
427
|
+
}
|
|
428
|
+
interface ChatHandle {
|
|
429
|
+
open(): void;
|
|
430
|
+
close(): void;
|
|
431
|
+
toggle(): void;
|
|
432
|
+
/** Programmatically send a user message. */
|
|
433
|
+
send(text: string): Promise<void>;
|
|
434
|
+
/** Tear down the widget and remove all DOM. */
|
|
435
|
+
destroy(): void;
|
|
436
|
+
/** Read the current session id (auto-generated on first open). */
|
|
437
|
+
getSessionId(): string;
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
export { type AutomationInput as A, type BulkResultEntry as B, type Campaign as C, type ForceFirstMessage as F, type GetLeadHistoryParams as G, type ISODateString as I, type Lead as L, type MeetingNotesInput as M, NexorClient as N, type RequestOptions as R, type SendMessageInput as S, type UUID as U, type WhatsAppTemplate as W, type ChatHandle as a, type ChatInitOptions as b, type ChatLeadCapture as c, type ClientOptions as d, type CreateLeadBulkResponse as e, type CreateLeadInput as f, type CreateLeadResponse as g, type CreateMeetingInput as h, type GetLeadHistoryResponse as i, type GetLeadResponse as j, type IsPausedResponse as k, type LeadHistoryItem as l, type ListTemplatesParams as m, type ResumeAutomationInput as n, type SyncTagsInput as o, type SyncTagsResponse as p, type Workflow as q, type WorkflowRunStub as r };
|