refactor: Add Onboarding call prompts (#3682)

*  Implemented initial onboarding call prompt logic

*  Added onboarding call prompt feature environment variable

*  Implemented onboarding session signup modal

* 📈 Added initial telemetry for the onboarding call prompt

* ✔️ Fixing linter error in server.ts

* 💄 Updating onboaring call prompt and modal wording and styling

*  Implemented initial version of fake doors feature

*  Added parameters to onboarding call prompt request

*  Finished implementing fake doors in settings

* 🔨 Updating onboarding call prompt fetching logic (fetching before timeout starts)

* 👌 Updating onboarding call prompt and fake door components based on the front-end review feedback

*  Updated fake doors so they support UI location specification. Added credentials UI fake doors.

*  Added checkbox to the signup form, improved N8NCheckbox formatting to better handle overflow

* 💄 Moving seignup checkbox label text to i18n file, updating checkbox component css to force text wrap

*  Update API calls to work with the new workflow request and response formats

* 👌 Updating fake door front-end based on the review feedback

* 👌 Updating onboarding call prompt and fake doors UI based in the product feedback

*   Updated onboarding call prompts front-end to work with new endpoints and added new telemetry events

* 🐛 Fixing onboarding call prompts not appearing in first user sessions

* ️ add createdAt to PublicUser

* 👌 Updating onboarding call prompts front-end to work with the latest back-end and addressing latest product review

*  Improving error handling when submitting user emails on signup

* 💄 Updating info text on Logging feature page

* 💄 Updating first onboarding call prompt timeout to 5 minutes

* 💄 Fixing `N8nCheckbox` component font overflow

Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com>
This commit is contained in:
Milorad FIlipović
2022-07-27 16:28:13 +02:00
committed by GitHub
parent 553b14a13c
commit 3ebfa45570
28 changed files with 676 additions and 12 deletions

View File

@@ -24,6 +24,7 @@ import {
WorkflowExecuteMode,
PublicInstalledPackage,
} from 'n8n-workflow';
import { FAKE_DOOR_FEATURES } from './constants';
export * from 'n8n-design-system/src/types';
@@ -542,6 +543,7 @@ export interface IUserResponse {
globalRole?: {
name: IRole;
id: string;
createdAt: Date;
};
personalizationAnswers?: IPersonalizationSurveyAnswersV1 | IPersonalizationSurveyAnswersV2 | null;
isPending: boolean;
@@ -552,6 +554,7 @@ export interface IUser extends IUserResponse {
isPendingUser: boolean;
isOwner: boolean;
fullName?: string;
createdAt?: Date;
}
export interface IVersionNotificationSettings {
@@ -701,6 +704,7 @@ export interface IN8nUISettings {
latestVersion: number;
path: string;
};
onboardingCallPromptEnabled: boolean;
}
export interface IWorkflowSettings extends IWorkflowSettingsWorkflow {
@@ -917,6 +921,7 @@ export interface IUiState {
mappingTelemetry: {[key: string]: string | number | boolean};
};
mainPanelPosition: number;
fakeDoorFeatures: IFakeDoor[];
draggable: {
isDragging: boolean;
type: string;
@@ -928,6 +933,19 @@ export interface IUiState {
export type ILogLevel = 'info' | 'debug' | 'warn' | 'error' | 'verbose';
export type IFakeDoor = {
id: FAKE_DOOR_FEATURES,
featureName: string,
icon?: string,
infoText?: string,
actionBoxTitle: string,
actionBoxDescription: string,
linkURL: string,
uiLocations: IFakeDoorLocation[],
};
export type IFakeDoorLocation = 'settings' | 'credentialsModal';
export interface ISettingsState {
settings: IN8nUISettings;
promptsData: IN8nPrompts;
@@ -938,6 +956,7 @@ export interface ISettingsState {
latestVersion: number;
path: string;
};
onboardingCallPromptEnabled: boolean;
}
export interface ITemplateState {
@@ -1006,6 +1025,16 @@ export interface IInviteResponse {
error?: string;
}
export interface IOnboardingCallPromptResponse {
nextPrompt: IOnboardingCallPrompt;
}
export interface IOnboardingCallPrompt {
title: string;
body: string;
index: number;
}
export interface ITab {
value: string | number;
label?: string;