@bcrumbs.net/inbox 0.0.59 → 0.0.60
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/assets/en/inbox.json +1 -1
- package/index.cjs.js +181 -117
- package/index.esm.js +181 -117
- package/package.json +1 -1
- package/src/app/ai/components/Crumby/ChatView.d.ts +12 -0
- package/src/app/ai/components/Crumby/CrumbyComposer.d.ts +3 -0
- package/src/app/ai/components/Crumby/CrumbySendAction.d.ts +4 -0
- package/src/app/ai/components/Crumby/CrumbyWidget.d.ts +2 -0
- package/src/app/ai/components/Crumby/index.d.ts +1 -2
- package/src/app/auth/components/password-page/AuthPasswordPageLayout.d.ts +7 -0
- package/src/app/auth/components/password-page/ForgetPasswordFormView.d.ts +20 -0
- package/src/app/auth/components/password-page/PasswordFormView.d.ts +22 -0
- package/src/app/auth/components/password-page/PasswordSuccessView.d.ts +8 -0
- package/src/app/auth/pages/Forget.d.ts +0 -3
- package/src/app/layout/constants/index.d.ts +2 -1
- package/src/app/onboarding/components/OnboardingStepDetail.d.ts +10 -0
- package/src/app/onboarding/components/OnboardingView.d.ts +19 -0
- package/src/app/onboarding/components/onboardingStepGuide.d.ts +11 -0
- package/src/app/onboarding/components/useOnboardingChecklist.d.ts +30 -0
- package/src/app/onboarding/utils/onboardingChecklistStorage.d.ts +15 -2
- package/src/assets/locales/translations.d.ts +44 -1
- package/src/graphql.autogenerated.d.ts +46 -3
- package/src/graphql.billing.autogenerated.d.ts +2 -0
- package/src/utils/localStorage.d.ts +1 -0
- package/src/app/onboarding/components/OnboardingChecklistWidget.d.ts +0 -3
package/package.json
CHANGED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type FC } from 'react';
|
|
2
|
+
export type ChatViewProps = {
|
|
3
|
+
rtl: boolean;
|
|
4
|
+
onClose: () => void;
|
|
5
|
+
/** When set, shows a back arrow that returns to the onboarding checklist (still in progress). */
|
|
6
|
+
onBack?: () => void;
|
|
7
|
+
/** Text carried over from the onboarding input; sent once on mount, then consumed. */
|
|
8
|
+
pendingMessage?: string | null;
|
|
9
|
+
onPendingConsumed?: () => void;
|
|
10
|
+
};
|
|
11
|
+
/** Chat mode of the unified widget: Crumby header, thread, action chips, composer. */
|
|
12
|
+
export declare const ChatView: FC<ChatViewProps>;
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export default CrumbyChat;
|
|
1
|
+
export { default } from './CrumbyWidget';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
type AuthPasswordPageLayoutProps = {
|
|
3
|
+
children: ReactNode;
|
|
4
|
+
backgroundImage?: string;
|
|
5
|
+
};
|
|
6
|
+
export declare function AuthPasswordPageLayout({ children, backgroundImage }: AuthPasswordPageLayoutProps): import("@emotion/react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
type ForgetPasswordFormViewProps = {
|
|
2
|
+
title: string;
|
|
3
|
+
subtitle: string;
|
|
4
|
+
emailLabel: string;
|
|
5
|
+
emailPlaceholder: string;
|
|
6
|
+
emailValue: string;
|
|
7
|
+
emailError?: string;
|
|
8
|
+
submitLabel: string;
|
|
9
|
+
footerText: string;
|
|
10
|
+
footerLinkText: string;
|
|
11
|
+
footerLinkTo: string;
|
|
12
|
+
showFooterLink?: boolean;
|
|
13
|
+
submitDisabled?: boolean;
|
|
14
|
+
loading?: boolean;
|
|
15
|
+
onBack?: () => void;
|
|
16
|
+
onEmailChange: (value: string) => void;
|
|
17
|
+
onSubmit: () => void;
|
|
18
|
+
};
|
|
19
|
+
export declare function ForgetPasswordFormView({ title, subtitle, emailLabel, emailPlaceholder, emailValue, emailError, submitLabel, footerText, footerLinkText, footerLinkTo, showFooterLink, submitDisabled, loading, onBack, onEmailChange, onSubmit, }: ForgetPasswordFormViewProps): import("@emotion/react/jsx-runtime").JSX.Element;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export type PasswordFieldConfig = {
|
|
2
|
+
label: string;
|
|
3
|
+
placeholder: string;
|
|
4
|
+
value: string;
|
|
5
|
+
error?: string;
|
|
6
|
+
visibility: 'password' | 'text';
|
|
7
|
+
onChange: (value: string) => void;
|
|
8
|
+
onToggleVisibility: () => void;
|
|
9
|
+
};
|
|
10
|
+
type PasswordFormViewProps = {
|
|
11
|
+
title: string;
|
|
12
|
+
subtitle: string;
|
|
13
|
+
submitLabel: string;
|
|
14
|
+
passwordField: PasswordFieldConfig;
|
|
15
|
+
confirmPasswordField: PasswordFieldConfig;
|
|
16
|
+
submitDisabled?: boolean;
|
|
17
|
+
loading?: boolean;
|
|
18
|
+
onBack?: () => void;
|
|
19
|
+
onSubmit: () => void;
|
|
20
|
+
};
|
|
21
|
+
export declare function PasswordFormView({ title, subtitle, submitLabel, passwordField, confirmPasswordField, submitDisabled, loading, onBack, onSubmit, }: PasswordFormViewProps): import("@emotion/react/jsx-runtime").JSX.Element;
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
type PasswordSuccessViewProps = {
|
|
2
|
+
title: string;
|
|
3
|
+
subtitle: string;
|
|
4
|
+
actionLabel?: string;
|
|
5
|
+
onAction?: () => void;
|
|
6
|
+
};
|
|
7
|
+
export declare function PasswordSuccessView({ title, subtitle, actionLabel, onAction }: PasswordSuccessViewProps): import("@emotion/react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -37,7 +37,7 @@ export declare const BCMainNavigation: {
|
|
|
37
37
|
})[];
|
|
38
38
|
}[];
|
|
39
39
|
tags: string[];
|
|
40
|
-
requiredPermissions
|
|
40
|
+
requiredPermissions: Permission[];
|
|
41
41
|
} | {
|
|
42
42
|
label: string;
|
|
43
43
|
title: string;
|
|
@@ -56,6 +56,7 @@ export declare const BCMainNavigation: {
|
|
|
56
56
|
link: string;
|
|
57
57
|
action: string;
|
|
58
58
|
tags: string[];
|
|
59
|
+
requiredPermissions: Permission[];
|
|
59
60
|
}[];
|
|
60
61
|
};
|
|
61
62
|
export declare const MOBILE_DIMENSION = 767;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type OnboardingChecklistStepId } from '../utils/onboardingChecklistStorage';
|
|
2
|
+
export type OnboardingStepDetailProps = {
|
|
3
|
+
stepId: OnboardingChecklistStepId;
|
|
4
|
+
/** Right-to-left layout (flips the back arrow direction). */
|
|
5
|
+
rtl: boolean;
|
|
6
|
+
onBack: () => void;
|
|
7
|
+
onClose: () => void;
|
|
8
|
+
};
|
|
9
|
+
/** Single-step guide: instructions (Step 1/Step 2…) plus optional screenshots. */
|
|
10
|
+
export declare function OnboardingStepDetail({ stepId, rtl, onBack, onClose }: OnboardingStepDetailProps): import("@emotion/react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type OnboardingChecklistState, type OnboardingChecklistStepId } from '../utils/onboardingChecklistStorage';
|
|
2
|
+
export type OnboardingViewProps = {
|
|
3
|
+
applicableStepIds: OnboardingChecklistStepId[];
|
|
4
|
+
checklistState: OnboardingChecklistState | null;
|
|
5
|
+
completedCount: number;
|
|
6
|
+
celebrateStepId: OnboardingChecklistStepId | null;
|
|
7
|
+
/** Show the "Ask crumby…" input (hidden when Crumby chat is unavailable). */
|
|
8
|
+
showInput: boolean;
|
|
9
|
+
rtl: boolean;
|
|
10
|
+
toggleStep: (stepId: OnboardingChecklistStepId) => void;
|
|
11
|
+
onOpenStep: (stepId: OnboardingChecklistStepId) => void;
|
|
12
|
+
onClose: () => void;
|
|
13
|
+
/** Submit text from the input — switches the panel to chat and sends it. */
|
|
14
|
+
onSendToChat: (text: string) => void;
|
|
15
|
+
/** Finish onboarding (all steps done) and open the chat. */
|
|
16
|
+
onFinish: () => void;
|
|
17
|
+
};
|
|
18
|
+
/** Onboarding mode of the unified widget: welcome header, setup checklist, AI input. */
|
|
19
|
+
export declare function OnboardingView({ applicableStepIds, checklistState, completedCount, celebrateStepId, showInput, rtl, toggleStep, onOpenStep, onClose, onSendToChat, onFinish, }: OnboardingViewProps): import("@emotion/react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type OnboardingChecklistStepId } from '../utils/onboardingChecklistStorage';
|
|
2
|
+
export type OnboardingStepGuide = {
|
|
3
|
+
/** Optional illustrative screenshots shown under the step instructions. */
|
|
4
|
+
images?: string[];
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Per-step visual guide config. Instruction copy lives in i18n
|
|
8
|
+
* (`onboardingChecklist.guide.steps.*`); this only adds optional screenshots.
|
|
9
|
+
* Steps without images render text-only — add entries here as designs ship.
|
|
10
|
+
*/
|
|
11
|
+
export declare const ONBOARDING_STEP_GUIDE: Partial<Record<OnboardingChecklistStepId, OnboardingStepGuide>>;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type OnboardingChecklistState, type OnboardingChecklistStepId } from '../utils/onboardingChecklistStorage';
|
|
2
|
+
export type UseOnboardingChecklist = {
|
|
3
|
+
/** Steps relevant for the current plan (drops Crumby steps when AI is disabled). */
|
|
4
|
+
applicableStepIds: OnboardingChecklistStepId[];
|
|
5
|
+
/** Parsed checklist, or null when there is no active checklist for this user. */
|
|
6
|
+
checklistState: OnboardingChecklistState | null;
|
|
7
|
+
/** Number of applicable steps the user has completed. */
|
|
8
|
+
completedCount: number;
|
|
9
|
+
/** True while there is a non-expired checklist with at least one applicable step still open. */
|
|
10
|
+
isActive: boolean;
|
|
11
|
+
/** Step currently playing the completion sweep, or null. */
|
|
12
|
+
celebrateStepId: OnboardingChecklistStepId | null;
|
|
13
|
+
/** One-shot request to auto-open the widget on onboarding (set right after sign-in). */
|
|
14
|
+
shouldAutoOpen: boolean;
|
|
15
|
+
/** Toggle a step's completed flag (manual checkbox). */
|
|
16
|
+
toggleStep: (stepId: OnboardingChecklistStepId) => void;
|
|
17
|
+
/** Clears the one-shot auto-open request once the widget has acted on it. */
|
|
18
|
+
consumeAutoOpen: () => void;
|
|
19
|
+
/** Run when the widget panel closes: clears the completed checklist from storage. */
|
|
20
|
+
onPanelClosed: () => void;
|
|
21
|
+
/** Finish onboarding now (Get started button): clears the checklist for this workspace. */
|
|
22
|
+
dismissChecklist: () => void;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Owns the onboarding-checklist state previously held inside OnboardingChecklistWidget:
|
|
26
|
+
* load/parse/TTL, applicable steps for the current plan, completion celebration, the
|
|
27
|
+
* cross-tab updated event, and the post-sign-in auto-open signal. The presentation is
|
|
28
|
+
* delegated to the unified Crumby widget.
|
|
29
|
+
*/
|
|
30
|
+
export declare function useOnboardingChecklist(): UseOnboardingChecklist;
|
|
@@ -11,7 +11,19 @@ export declare const ONBOARDING_CHECKLIST_STEP_IDS: OnboardingChecklistStepId[];
|
|
|
11
11
|
export declare const ONBOARDING_CHECKLIST_CRUMBY_STEP_IDS: OnboardingChecklistStepId[];
|
|
12
12
|
export declare function getApplicableOnboardingChecklistStepIds(isCrumbyEnabled: boolean): OnboardingChecklistStepId[];
|
|
13
13
|
export declare function isOnboardingChecklistCompleteForCrumbySetting(state: OnboardingChecklistState, isCrumbyEnabled: boolean): boolean;
|
|
14
|
-
export declare function getOnboardingChecklistStorageKey(userId: string | number): string;
|
|
14
|
+
export declare function getOnboardingChecklistStorageKey(userId: string | number, workspaceId?: string | number | null): string;
|
|
15
|
+
/** Pre-workspace-scoping key: showcase_onboarding_checklist_{userId} */
|
|
16
|
+
export declare function getLegacyOnboardingChecklistStorageKey(userId: string | number): string;
|
|
17
|
+
/**
|
|
18
|
+
* Load checklist for user + workspace. Migrates legacy user-only (and empty-workspace) keys once.
|
|
19
|
+
* Returns null when workspace context is not available.
|
|
20
|
+
*/
|
|
21
|
+
export declare function loadOnboardingChecklistState(userId: string | number, workspaceId?: string | number | null): OnboardingChecklistState | null;
|
|
22
|
+
/**
|
|
23
|
+
* Pending key is keyed by user only (NOT workspace): it is a one-shot "user just signed in"
|
|
24
|
+
* signal set at login, before the workspace context is available. The widget consumes it on
|
|
25
|
+
* first load and creates the checklist scoped to whichever workspace the user landed in.
|
|
26
|
+
*/
|
|
15
27
|
export declare function getOnboardingChecklistPendingKey(userId: string | number): string;
|
|
16
28
|
/** One-shot: open checklist popover after sign-in (session tab only). */
|
|
17
29
|
export declare const ONBOARDING_CHECKLIST_SESSION_AUTOPEN_KEY = "showcase_onboarding_checklist_session_autopen";
|
|
@@ -30,10 +42,11 @@ export declare function notifyOnboardingChecklistAfterSignIn(userId: string | nu
|
|
|
30
42
|
* Use this to cheaply skip heavy work (e.g. scanning all inbox messages) when the step is already done
|
|
31
43
|
* or there is no active checklist.
|
|
32
44
|
*/
|
|
33
|
-
export declare function getActiveOnboardingChecklistState(userId: string | number | null | undefined): OnboardingChecklistState | null;
|
|
45
|
+
export declare function getActiveOnboardingChecklistState(userId: string | number | null | undefined, workspaceId?: string | number | null): OnboardingChecklistState | null;
|
|
34
46
|
export type MarkOnboardingChecklistStepOptions = {
|
|
35
47
|
/** When already loaded (e.g. after a gate check), avoids a second localStorage read. */
|
|
36
48
|
knownActiveState?: OnboardingChecklistState;
|
|
49
|
+
workspaceId?: string | number | null;
|
|
37
50
|
};
|
|
38
51
|
/**
|
|
39
52
|
* Marks a checklist step done when the user performs the real action (persists + notifies widget).
|
|
@@ -45,6 +45,7 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
|
|
|
45
45
|
continue: string;
|
|
46
46
|
dontHaveAnAccount: string;
|
|
47
47
|
signupNow: string;
|
|
48
|
+
signUp: string;
|
|
48
49
|
returnToLogin: string;
|
|
49
50
|
passwordResetSuccess: string;
|
|
50
51
|
passwordResetFaildDesc: string;
|
|
@@ -64,6 +65,14 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
|
|
|
64
65
|
currentPassword: string;
|
|
65
66
|
newPassword: string;
|
|
66
67
|
confirmPassword: string;
|
|
68
|
+
createSecurePasswordTitle: string;
|
|
69
|
+
createSecurePasswordDesc: string;
|
|
70
|
+
createSecurePasswordSubtitle: string;
|
|
71
|
+
newPasswordPlaceholder: string;
|
|
72
|
+
confirmPasswordPlaceholder: string;
|
|
73
|
+
resetPasswordButton: string;
|
|
74
|
+
passwordChangedTitle: string;
|
|
75
|
+
passwordChangedDesc: string;
|
|
67
76
|
facebook: string;
|
|
68
77
|
google: string;
|
|
69
78
|
};
|
|
@@ -143,6 +152,7 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
|
|
|
143
152
|
profileMgmt: string;
|
|
144
153
|
profile: string;
|
|
145
154
|
password: string;
|
|
155
|
+
changePassword: string;
|
|
146
156
|
updatingEmailNote: string;
|
|
147
157
|
help: string;
|
|
148
158
|
feedback: string;
|
|
@@ -191,6 +201,9 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
|
|
|
191
201
|
hychartWorkspace: string;
|
|
192
202
|
inboxWorkspace: string;
|
|
193
203
|
userRole: string;
|
|
204
|
+
usersTableName: string;
|
|
205
|
+
usersTableEmail: string;
|
|
206
|
+
usersTableRole: string;
|
|
194
207
|
ownerRole: string;
|
|
195
208
|
adminRole: string;
|
|
196
209
|
managerRole: string;
|
|
@@ -603,7 +616,7 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
|
|
|
603
616
|
deliverySuccess: string;
|
|
604
617
|
successfullySent: string;
|
|
605
618
|
avgChatTime: string;
|
|
606
|
-
|
|
619
|
+
newClients: string;
|
|
607
620
|
newClientsInPeriod: string;
|
|
608
621
|
closed: string;
|
|
609
622
|
uniqueClosed: string;
|
|
@@ -714,6 +727,10 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
|
|
|
714
727
|
testAi: string;
|
|
715
728
|
};
|
|
716
729
|
};
|
|
730
|
+
welcomeTitle: string;
|
|
731
|
+
brand: string;
|
|
732
|
+
askCrumbyPlaceholder: string;
|
|
733
|
+
getStartedButton: string;
|
|
717
734
|
};
|
|
718
735
|
id: string;
|
|
719
736
|
save: string;
|
|
@@ -880,6 +897,7 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
|
|
|
880
897
|
exportFailed: string;
|
|
881
898
|
noContactsToExport: string;
|
|
882
899
|
selectedLifecycle: string;
|
|
900
|
+
archived: string;
|
|
883
901
|
};
|
|
884
902
|
management: {
|
|
885
903
|
title: string;
|
|
@@ -948,6 +966,8 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
|
|
|
948
966
|
apiKeyLabelPlaceholder: string;
|
|
949
967
|
noUsersForLinkedAgentTitle: string;
|
|
950
968
|
noUsersForLinkedAgentDescription: string;
|
|
969
|
+
greetingMessage: string;
|
|
970
|
+
greetingMessagePlaceholder: string;
|
|
951
971
|
};
|
|
952
972
|
ai: {
|
|
953
973
|
title: string;
|
|
@@ -1063,6 +1083,7 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
|
|
|
1063
1083
|
selectStartWith: string;
|
|
1064
1084
|
selectAiAgent: string;
|
|
1065
1085
|
selectAgent: string;
|
|
1086
|
+
selectAgents: string;
|
|
1066
1087
|
deleteConfirmTitle: string;
|
|
1067
1088
|
deleteConfirmMessage: string;
|
|
1068
1089
|
botToken: string;
|
|
@@ -1131,6 +1152,22 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
|
|
|
1131
1152
|
};
|
|
1132
1153
|
assistant: {
|
|
1133
1154
|
welcomeMessage: string;
|
|
1155
|
+
title: string;
|
|
1156
|
+
greetingPrimary: string;
|
|
1157
|
+
greetingSecondary: string;
|
|
1158
|
+
suggestions: {
|
|
1159
|
+
createBroadcast: string;
|
|
1160
|
+
connectChannel: string;
|
|
1161
|
+
inviteTeamMember: string;
|
|
1162
|
+
analyzePerformance: string;
|
|
1163
|
+
};
|
|
1164
|
+
suggestionPrompts: {
|
|
1165
|
+
createBroadcast: string;
|
|
1166
|
+
connectChannel: string;
|
|
1167
|
+
inviteTeamMember: string;
|
|
1168
|
+
analyzePerformance: string;
|
|
1169
|
+
};
|
|
1170
|
+
composerPlaceholder: string;
|
|
1134
1171
|
};
|
|
1135
1172
|
file: {
|
|
1136
1173
|
filesSubTitle: string;
|
|
@@ -1240,6 +1277,11 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
|
|
|
1240
1277
|
cardTitle: string;
|
|
1241
1278
|
saved: string;
|
|
1242
1279
|
maxCharacters: string;
|
|
1280
|
+
instructionsVersion: {
|
|
1281
|
+
cardTitle: string;
|
|
1282
|
+
description: string;
|
|
1283
|
+
option: string;
|
|
1284
|
+
};
|
|
1243
1285
|
contextPrompt: {
|
|
1244
1286
|
label: string;
|
|
1245
1287
|
description: string;
|
|
@@ -1294,4 +1336,5 @@ export declare const convertLanguageJsonToObject: (json: any, objToConvertTo?: C
|
|
|
1294
1336
|
archive_confirmation: string;
|
|
1295
1337
|
unarchive_confirmation: string;
|
|
1296
1338
|
};
|
|
1339
|
+
send: string;
|
|
1297
1340
|
}>, current?: string) => void;
|
|
@@ -87,6 +87,7 @@ export type Ai = {
|
|
|
87
87
|
id: Scalars['ID']['output'];
|
|
88
88
|
integrationProperties?: Maybe<IntegrationProperties>;
|
|
89
89
|
name: Scalars['String']['output'];
|
|
90
|
+
subType?: Maybe<AiSubType>;
|
|
90
91
|
type: AiType;
|
|
91
92
|
workspaceId: Scalars['Int']['output'];
|
|
92
93
|
};
|
|
@@ -94,6 +95,7 @@ export type AiCreateInput = {
|
|
|
94
95
|
configuration?: InputMaybe<ConfigurationsInput>;
|
|
95
96
|
integrationProperties: Scalars['JSON']['input'];
|
|
96
97
|
name: Scalars['String']['input'];
|
|
98
|
+
subType?: InputMaybe<AiSubType>;
|
|
97
99
|
type: AiType;
|
|
98
100
|
workspaceId: Scalars['Int']['input'];
|
|
99
101
|
};
|
|
@@ -110,8 +112,15 @@ export type AiPatchInput = {
|
|
|
110
112
|
id: Scalars['ID']['input'];
|
|
111
113
|
integrationProperties?: InputMaybe<Scalars['JSON']['input']>;
|
|
112
114
|
name?: InputMaybe<Scalars['String']['input']>;
|
|
115
|
+
subType?: InputMaybe<AiSubType>;
|
|
113
116
|
workspaceId: Scalars['Int']['input'];
|
|
114
117
|
};
|
|
118
|
+
export declare const AiSubType: {
|
|
119
|
+
readonly PROFILE: "profile";
|
|
120
|
+
readonly QA: "qa";
|
|
121
|
+
readonly RATING: "rating";
|
|
122
|
+
};
|
|
123
|
+
export type AiSubType = typeof AiSubType[keyof typeof AiSubType];
|
|
115
124
|
export declare const AiType: {
|
|
116
125
|
readonly BC_AI: "bc_ai";
|
|
117
126
|
readonly BC_FLOW: "bc_flow";
|
|
@@ -122,6 +131,7 @@ export declare const AiType: {
|
|
|
122
131
|
export type AiType = typeof AiType[keyof typeof AiType];
|
|
123
132
|
export type AIsInput = {
|
|
124
133
|
name?: InputMaybe<Scalars['String']['input']>;
|
|
134
|
+
subType?: InputMaybe<AiSubType>;
|
|
125
135
|
type?: InputMaybe<AiType>;
|
|
126
136
|
workspaceId: Scalars['Int']['input'];
|
|
127
137
|
};
|
|
@@ -139,6 +149,8 @@ export type Agent = {
|
|
|
139
149
|
createdAt: Scalars['DateTime']['output'];
|
|
140
150
|
/** The email of the agent. It is the same as the email of the invited user to the workspace. */
|
|
141
151
|
email: Scalars['String']['output'];
|
|
152
|
+
/** An optional message automatically sent to the customer at the start of every new conversation assigned to this agent. */
|
|
153
|
+
greetingMessage?: Maybe<Scalars['String']['output']>;
|
|
142
154
|
id: Scalars['ID']['output'];
|
|
143
155
|
/** The name of the agent. */
|
|
144
156
|
name: Scalars['String']['output'];
|
|
@@ -195,6 +207,8 @@ export type AgentInput = {
|
|
|
195
207
|
export type AgentPatchInput = {
|
|
196
208
|
/** When false, this agent is excluded from automatic assignment. */
|
|
197
209
|
assignable: Scalars['Boolean']['input'];
|
|
210
|
+
/** An optional message automatically sent to the customer at the start of every new conversation assigned to this agent. Pass null to clear. */
|
|
211
|
+
greetingMessage?: InputMaybe<Scalars['String']['input']>;
|
|
198
212
|
id: Scalars['ID']['input'];
|
|
199
213
|
/** The name of the agent. */
|
|
200
214
|
name: Scalars['String']['input'];
|
|
@@ -935,6 +949,7 @@ export type Configurations = {
|
|
|
935
949
|
emptyResponseFallbackMessage?: Maybe<Scalars['String']['output']>;
|
|
936
950
|
endEnabled?: Maybe<Scalars['Boolean']['output']>;
|
|
937
951
|
handoverEnabled?: Maybe<Scalars['Boolean']['output']>;
|
|
952
|
+
instructionsVersion?: Maybe<Scalars['String']['output']>;
|
|
938
953
|
personaPrompt?: Maybe<Scalars['String']['output']>;
|
|
939
954
|
rolePrompt?: Maybe<Scalars['String']['output']>;
|
|
940
955
|
};
|
|
@@ -952,6 +967,7 @@ export type ConfigurationsInput = {
|
|
|
952
967
|
emptyResponseFallbackMessage?: InputMaybe<Scalars['String']['input']>;
|
|
953
968
|
endEnabled?: InputMaybe<Scalars['Boolean']['input']>;
|
|
954
969
|
handoverEnabled?: InputMaybe<Scalars['Boolean']['input']>;
|
|
970
|
+
instructionsVersion?: InputMaybe<Scalars['String']['input']>;
|
|
955
971
|
personaPrompt?: InputMaybe<Scalars['String']['input']>;
|
|
956
972
|
rolePrompt?: InputMaybe<Scalars['String']['input']>;
|
|
957
973
|
};
|
|
@@ -1999,7 +2015,10 @@ export type Mutation = {
|
|
|
1999
2015
|
* (It can be used also for OTP messages)
|
|
2000
2016
|
*/
|
|
2001
2017
|
sendNotificationAndWait: Message;
|
|
2002
|
-
/**
|
|
2018
|
+
/**
|
|
2019
|
+
* Start a conversation. Agents without MANAGE_CONVS may start conversations;
|
|
2020
|
+
* the new conversation is assigned to the starting agent when applicable.
|
|
2021
|
+
*/
|
|
2003
2022
|
startConv: Conversation;
|
|
2004
2023
|
/** Tag a client. You should have the MANAGE_CLIENTS permission to tag a client. */
|
|
2005
2024
|
tagClient: Client;
|
|
@@ -2329,7 +2348,7 @@ export type Query = {
|
|
|
2329
2348
|
*/
|
|
2330
2349
|
isWorkspaceNameAvailable: Scalars['Boolean']['output'];
|
|
2331
2350
|
me: UserRole;
|
|
2332
|
-
/** Get messages with optional filters. */
|
|
2351
|
+
/** Get messages with optional filters. If you don't have the MANAGE_CONVS permission, it will return only messages for conversations assigned to you. */
|
|
2333
2352
|
messages: MessagesPayload;
|
|
2334
2353
|
/** Get the count of open conversations that have recent client messages (conversations that need a response). */
|
|
2335
2354
|
openConversationsNeedResponseCount: Scalars['Int']['output'];
|
|
@@ -2342,7 +2361,10 @@ export type Query = {
|
|
|
2342
2361
|
tokenUsageLogs: TokenUsageLogsPayload;
|
|
2343
2362
|
/** Get total token usage between two dates. */
|
|
2344
2363
|
tokenUsageTotal: TokenUsageTotal;
|
|
2345
|
-
/**
|
|
2364
|
+
/**
|
|
2365
|
+
* Get the upload signature which can be used to upload a file to the cloud storage.
|
|
2366
|
+
* Requires MANAGE_WORKSPACE permission. Blob path must be scoped to the workspace.
|
|
2367
|
+
*/
|
|
2346
2368
|
uploadSignature: UploadSignatureResult;
|
|
2347
2369
|
usersRoles: UsersRolesPayload;
|
|
2348
2370
|
/** Validate a bulk import contacts CSV file before importing. Returns validation errors for each row. You should have the MANAGE_CLIENTS permission to validate files. */
|
|
@@ -2640,6 +2662,8 @@ export type StartByCountryCodeConfig = {
|
|
|
2640
2662
|
__typename?: 'StartByCountryCodeConfig';
|
|
2641
2663
|
/** The assignee id. */
|
|
2642
2664
|
assigneeId: Scalars['ID']['output'];
|
|
2665
|
+
/** Multiple assignee ids for agent pool distribution. */
|
|
2666
|
+
assigneeIds?: Maybe<Array<Scalars['ID']['output']>>;
|
|
2643
2667
|
/** The country code. */
|
|
2644
2668
|
code: Scalars['String']['output'];
|
|
2645
2669
|
};
|
|
@@ -3050,6 +3074,7 @@ export type AiFragment = {
|
|
|
3050
3074
|
id: string;
|
|
3051
3075
|
name: string;
|
|
3052
3076
|
type: AiType;
|
|
3077
|
+
subType?: AiSubType | null;
|
|
3053
3078
|
createdAt: any;
|
|
3054
3079
|
deletedAt?: any | null;
|
|
3055
3080
|
integrationProperties?: {
|
|
@@ -3060,6 +3085,7 @@ export type AiFragment = {
|
|
|
3060
3085
|
} | null;
|
|
3061
3086
|
configuration?: {
|
|
3062
3087
|
__typename?: 'Configurations';
|
|
3088
|
+
instructionsVersion?: string | null;
|
|
3063
3089
|
askForName?: boolean | null;
|
|
3064
3090
|
askForSurname?: boolean | null;
|
|
3065
3091
|
askForEmail?: boolean | null;
|
|
@@ -3096,6 +3122,7 @@ export type AiQuery = {
|
|
|
3096
3122
|
id: string;
|
|
3097
3123
|
name: string;
|
|
3098
3124
|
type: AiType;
|
|
3125
|
+
subType?: AiSubType | null;
|
|
3099
3126
|
createdAt: any;
|
|
3100
3127
|
deletedAt?: any | null;
|
|
3101
3128
|
integrationProperties?: {
|
|
@@ -3106,6 +3133,7 @@ export type AiQuery = {
|
|
|
3106
3133
|
} | null;
|
|
3107
3134
|
configuration?: {
|
|
3108
3135
|
__typename?: 'Configurations';
|
|
3136
|
+
instructionsVersion?: string | null;
|
|
3109
3137
|
askForName?: boolean | null;
|
|
3110
3138
|
askForSurname?: boolean | null;
|
|
3111
3139
|
askForEmail?: boolean | null;
|
|
@@ -3145,6 +3173,7 @@ export type AisQuery = {
|
|
|
3145
3173
|
id: string;
|
|
3146
3174
|
name: string;
|
|
3147
3175
|
type: AiType;
|
|
3176
|
+
subType?: AiSubType | null;
|
|
3148
3177
|
createdAt: any;
|
|
3149
3178
|
deletedAt?: any | null;
|
|
3150
3179
|
integrationProperties?: {
|
|
@@ -3155,6 +3184,7 @@ export type AisQuery = {
|
|
|
3155
3184
|
} | null;
|
|
3156
3185
|
configuration?: {
|
|
3157
3186
|
__typename?: 'Configurations';
|
|
3187
|
+
instructionsVersion?: string | null;
|
|
3158
3188
|
askForName?: boolean | null;
|
|
3159
3189
|
askForSurname?: boolean | null;
|
|
3160
3190
|
askForEmail?: boolean | null;
|
|
@@ -3193,6 +3223,7 @@ export type CreateAiMutation = {
|
|
|
3193
3223
|
id: string;
|
|
3194
3224
|
name: string;
|
|
3195
3225
|
type: AiType;
|
|
3226
|
+
subType?: AiSubType | null;
|
|
3196
3227
|
createdAt: any;
|
|
3197
3228
|
deletedAt?: any | null;
|
|
3198
3229
|
integrationProperties?: {
|
|
@@ -3203,6 +3234,7 @@ export type CreateAiMutation = {
|
|
|
3203
3234
|
} | null;
|
|
3204
3235
|
configuration?: {
|
|
3205
3236
|
__typename?: 'Configurations';
|
|
3237
|
+
instructionsVersion?: string | null;
|
|
3206
3238
|
askForName?: boolean | null;
|
|
3207
3239
|
askForSurname?: boolean | null;
|
|
3208
3240
|
askForEmail?: boolean | null;
|
|
@@ -3255,6 +3287,7 @@ export type DeleteAiMutation = {
|
|
|
3255
3287
|
id: string;
|
|
3256
3288
|
name: string;
|
|
3257
3289
|
type: AiType;
|
|
3290
|
+
subType?: AiSubType | null;
|
|
3258
3291
|
createdAt: any;
|
|
3259
3292
|
deletedAt?: any | null;
|
|
3260
3293
|
integrationProperties?: {
|
|
@@ -3265,6 +3298,7 @@ export type DeleteAiMutation = {
|
|
|
3265
3298
|
} | null;
|
|
3266
3299
|
configuration?: {
|
|
3267
3300
|
__typename?: 'Configurations';
|
|
3301
|
+
instructionsVersion?: string | null;
|
|
3268
3302
|
askForName?: boolean | null;
|
|
3269
3303
|
askForSurname?: boolean | null;
|
|
3270
3304
|
askForEmail?: boolean | null;
|
|
@@ -3317,6 +3351,7 @@ export type PatchAiMutation = {
|
|
|
3317
3351
|
id: string;
|
|
3318
3352
|
name: string;
|
|
3319
3353
|
type: AiType;
|
|
3354
|
+
subType?: AiSubType | null;
|
|
3320
3355
|
createdAt: any;
|
|
3321
3356
|
deletedAt?: any | null;
|
|
3322
3357
|
integrationProperties?: {
|
|
@@ -3327,6 +3362,7 @@ export type PatchAiMutation = {
|
|
|
3327
3362
|
} | null;
|
|
3328
3363
|
configuration?: {
|
|
3329
3364
|
__typename?: 'Configurations';
|
|
3365
|
+
instructionsVersion?: string | null;
|
|
3330
3366
|
askForName?: boolean | null;
|
|
3331
3367
|
askForSurname?: boolean | null;
|
|
3332
3368
|
askForEmail?: boolean | null;
|
|
@@ -4077,6 +4113,7 @@ export type AgentFragment = {
|
|
|
4077
4113
|
email: string;
|
|
4078
4114
|
avatar?: string | null;
|
|
4079
4115
|
assignable: boolean;
|
|
4116
|
+
greetingMessage?: string | null;
|
|
4080
4117
|
createdAt: any;
|
|
4081
4118
|
};
|
|
4082
4119
|
export type ConversationFragment = {
|
|
@@ -4233,6 +4270,7 @@ export type AgentQuery = {
|
|
|
4233
4270
|
email: string;
|
|
4234
4271
|
avatar?: string | null;
|
|
4235
4272
|
assignable: boolean;
|
|
4273
|
+
greetingMessage?: string | null;
|
|
4236
4274
|
createdAt: any;
|
|
4237
4275
|
};
|
|
4238
4276
|
};
|
|
@@ -4254,6 +4292,7 @@ export type AgentsQuery = {
|
|
|
4254
4292
|
email: string;
|
|
4255
4293
|
avatar?: string | null;
|
|
4256
4294
|
assignable: boolean;
|
|
4295
|
+
greetingMessage?: string | null;
|
|
4257
4296
|
createdAt: any;
|
|
4258
4297
|
}> | null;
|
|
4259
4298
|
pageInfo?: {
|
|
@@ -4535,6 +4574,7 @@ export type CreateAgentMutation = {
|
|
|
4535
4574
|
email: string;
|
|
4536
4575
|
avatar?: string | null;
|
|
4537
4576
|
assignable: boolean;
|
|
4577
|
+
greetingMessage?: string | null;
|
|
4538
4578
|
createdAt: any;
|
|
4539
4579
|
};
|
|
4540
4580
|
};
|
|
@@ -4553,6 +4593,7 @@ export type DeleteAgentMutation = {
|
|
|
4553
4593
|
email: string;
|
|
4554
4594
|
avatar?: string | null;
|
|
4555
4595
|
assignable: boolean;
|
|
4596
|
+
greetingMessage?: string | null;
|
|
4556
4597
|
createdAt: any;
|
|
4557
4598
|
};
|
|
4558
4599
|
};
|
|
@@ -4756,6 +4797,7 @@ export type PatchAgentMutation = {
|
|
|
4756
4797
|
email: string;
|
|
4757
4798
|
avatar?: string | null;
|
|
4758
4799
|
assignable: boolean;
|
|
4800
|
+
greetingMessage?: string | null;
|
|
4759
4801
|
createdAt: any;
|
|
4760
4802
|
};
|
|
4761
4803
|
};
|
|
@@ -5642,6 +5684,7 @@ export type CreateAgentWithApiKeyMutation = {
|
|
|
5642
5684
|
email: string;
|
|
5643
5685
|
avatar?: string | null;
|
|
5644
5686
|
assignable: boolean;
|
|
5687
|
+
greetingMessage?: string | null;
|
|
5645
5688
|
createdAt: any;
|
|
5646
5689
|
};
|
|
5647
5690
|
apiKey: {
|
|
@@ -639,6 +639,7 @@ export type SubscriptionPlan = {
|
|
|
639
639
|
paymentMethodId?: Maybe<Scalars['Int']['output']>;
|
|
640
640
|
plan?: Maybe<Plan>;
|
|
641
641
|
planId: Scalars['Int']['output'];
|
|
642
|
+
polarSubscriptionId?: Maybe<Scalars['String']['output']>;
|
|
642
643
|
promoType?: Maybe<Scalars['String']['output']>;
|
|
643
644
|
promoValue?: Maybe<Scalars['Float']['output']>;
|
|
644
645
|
reactivationDate?: Maybe<Scalars['DateTime']['output']>;
|
|
@@ -1027,6 +1028,7 @@ export type SubscriptionQuery = {
|
|
|
1027
1028
|
workspaceId: number;
|
|
1028
1029
|
status?: SubscriptionStatus | null;
|
|
1029
1030
|
stripeCustomerId?: string | null;
|
|
1031
|
+
polarSubscriptionId?: string | null;
|
|
1030
1032
|
freeCredits: number;
|
|
1031
1033
|
planId: number;
|
|
1032
1034
|
term: Term;
|
|
@@ -4,6 +4,7 @@ export declare const LOCAL_STORAGE_ITEMS: {
|
|
|
4
4
|
SELECTED_CLIENT_ID: string;
|
|
5
5
|
SELECTED_CONV_FILTER: string;
|
|
6
6
|
};
|
|
7
|
+
export declare const SHOWCASE_LOCAL_STORAGE_CHANGED_EVENT = "showcase-local-storage-changed";
|
|
7
8
|
declare const _default: {
|
|
8
9
|
get(key: string): any;
|
|
9
10
|
set(key: string, value: unknown): void;
|