Inscription automatisée aux cours
Ceci est unTicket Management, AI Summarizationworkflow d'automatisation du domainecontenant 16 nœuds.Utilise principalement des nœuds comme Set, GmailTool, FormTrigger, GoogleDrive, GoogleSheets. Automatisation de l'évaluation des inscriptions aux cours avec AI, Gmail et Google Sheets
- •Compte Google et informations d'identification Gmail API
- •Informations d'identification Google Drive API
- •Informations d'identification Google Sheets API
- •Clé API OpenAI
- •Clé API Pinecone
Nœuds utilisés (16)
Catégorie
{
"id": "zXNpe4L6H7ECAhDC",
"meta": {
"instanceId": "bbb2977e328381be47d4ff8a327c05d2d20577a0a434b57bef3780be6c5ece76",
"templateCredsSetupCompleted": true
},
"name": "Automatic Course Registration",
"tags": [],
"nodes": [
{
"id": "912fb0fd-fef4-4feb-8112-6418581342b8",
"name": "À la soumission du formulaire",
"type": "n8n-nodes-base.formTrigger",
"position": [
176,
-272
],
"webhookId": "4adb8084-7430-4673-b1fe-bf24965bf7ef",
"parameters": {
"options": {
"customCss": ":root {\n\t/* Typography */\n\t--font-family: 'Inter', 'Segoe UI', 'Roboto', -apple-system, BlinkMacSystemFont, sans-serif;\n\t--font-weight-light: 300;\n\t--font-weight-normal: 400;\n\t--font-weight-medium: 500;\n\t--font-weight-semibold: 600;\n\t--font-weight-bold: 700;\n\t\n\t/* Font Sizes */\n\t--font-size-xs: 12px;\n\t--font-size-sm: 13px;\n\t--font-size-base: 14px;\n\t--font-size-md: 15px;\n\t--font-size-lg: 16px;\n\t--font-size-xl: 18px;\n\t--font-size-2xl: 20px;\n\t--font-size-3xl: 24px;\n\t--font-size-4xl: 28px;\n\t--font-size-5xl: 32px;\n\t\n\t/* Specific Element Font Sizes */\n\t--font-size-body: var(--font-size-base);\n\t--font-size-label: var(--font-size-md);\n\t--font-size-input: var(--font-size-base);\n\t--font-size-header: var(--font-size-4xl);\n\t--font-size-subheader: var(--font-size-lg);\n\t--font-size-paragraph: var(--font-size-base);\n\t--font-size-link: var(--font-size-sm);\n\t--font-size-error: var(--font-size-sm);\n\t--font-size-test-notice: var(--font-size-sm);\n\t\n\t/* HTML Heading Sizes */\n\t--font-size-html-h1: var(--font-size-5xl);\n\t--font-size-html-h2: var(--font-size-3xl);\n\t--font-size-html-h3: var(--font-size-xl);\n\t--font-size-html-h4: var(--font-size-lg);\n\t--font-size-html-h5: var(--font-size-base);\n\t--font-size-html-h6: var(--font-size-sm);\n\n\t/* Color Palette - Professional Tech Theme */\n\t--color-primary: #2563eb; /* Blue - Primary brand */\n\t--color-primary-hover: #1d4ed8; /* Darker blue on hover */\n\t--color-primary-light: #dbeafe; /* Light blue background */\n\t--color-secondary: #059669; /* Green - Success/Tech */\n\t--color-accent: #7c3aed; /* Purple - Automation theme */\n\t--color-warning: #d97706; /* Orange - Warning */\n\t--color-error: #dc2626; /* Red - Error states */\n\t\n\t/* Neutral Colors */\n\t--color-background: #fafbfc;\n\t--color-surface: #ffffff;\n\t--color-surface-elevated: #ffffff;\n\t\n\t/* Text Colors */\n\t--color-text-primary: #111827;\n\t--color-text-secondary: #4b5563;\n\t--color-text-tertiary: #6b7280;\n\t--color-text-placeholder: #9ca3af;\n\t--color-text-disabled: #d1d5db;\n\t\n\t/* Border Colors */\n\t--color-border-light: #e5e7eb;\n\t--color-border-medium: #d1d5db;\n\t--color-border-focus: var(--color-primary);\n\t--color-border-error: var(--color-error);\n\t\n\t/* Component Specific Colors */\n\t--color-card-bg: var(--color-surface);\n\t--color-card-border: var(--color-border-light);\n\t--color-card-shadow: rgba(59, 130, 246, 0.08);\n\t\n\t--color-header: var(--color-text-primary);\n\t--color-header-subtext: var(--color-text-secondary);\n\t--color-label: var(--color-text-secondary);\n\t--color-input-border: var(--color-border-light);\n\t--color-input-text: var(--color-text-primary);\n\t--color-focus-border: var(--color-primary);\n\t\n\t--color-submit-btn-bg: var(--color-primary);\n\t--color-submit-btn-text: #ffffff;\n\t--color-submit-btn-hover: var(--color-primary-hover);\n\t\n\t--color-link: var(--color-primary);\n\t--color-required: var(--color-error);\n\t--color-clear-button-bg: var(--color-text-tertiary);\n\t--color-html-text: var(--color-text-secondary);\n\t--color-html-link: var(--color-primary);\n\t\n\t/* Test Notice Colors */\n\t--color-test-notice-text: var(--color-warning);\n\t--color-test-notice-bg: #fef3c7;\n\t--color-test-notice-border: #fcd34d;\n\n\t/* Border Radii - Modern Rounded Design */\n\t--border-radius-xs: 4px;\n\t--border-radius-sm: 6px;\n\t--border-radius-md: 8px;\n\t--border-radius-lg: 12px;\n\t--border-radius-xl: 16px;\n\t--border-radius-2xl: 20px;\n\t--border-radius-full: 50%;\n\t\n\t/* Component Specific Radii */\n\t--border-radius-card: var(--border-radius-xl);\n\t--border-radius-input: var(--border-radius-md);\n\t--border-radius-clear-btn: var(--border-radius-full);\n\t--card-border-radius: var(--border-radius-card);\n\n\t/* Spacing System - 8px Base Grid */\n\t--space-1: 4px;\n\t--space-2: 8px;\n\t--space-3: 12px;\n\t--space-4: 16px;\n\t--space-5: 20px;\n\t--space-6: 24px;\n\t--space-8: 32px;\n\t--space-10: 40px;\n\t--space-12: 48px;\n\t--space-16: 64px;\n\t--space-20: 80px;\n\t\n\t/* Component Specific Spacing */\n\t--padding-container-top: var(--space-8);\n\t--padding-card: var(--space-6);\n\t--padding-test-notice-vertical: var(--space-3);\n\t--padding-test-notice-horizontal: var(--space-4);\n\t--margin-bottom-card: var(--space-4);\n\t--padding-form-input: var(--space-3);\n\t--card-padding: var(--space-6);\n\t--card-margin-bottom: var(--space-4);\n\n\t/* Dimensions */\n\t--container-width: 520px;\n\t--container-max-width: 90vw;\n\t--submit-btn-height: 52px;\n\t--checkbox-size: 20px;\n\t--input-height: 48px;\n\n\t/* Shadows - Layered Design */\n\t--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, 0.05);\n\t--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);\n\t--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);\n\t--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);\n\t--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);\n\t\n\t/* Component Specific Shadows */\n\t--box-shadow-card: var(--shadow-lg);\n\t--box-shadow-input-focus: 0 0 0 3px rgba(37, 99, 235, 0.1);\n\t--box-shadow-button-hover: var(--shadow-md);\n\n\t/* Transitions */\n\t--transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);\n\t--transition-normal: 250ms cubic-bezier(0.4, 0, 0.2, 1);\n\t--transition-slow: 350ms cubic-bezier(0.4, 0, 0.2, 1);\n\n\t/* Z-Index Scale */\n\t--z-dropdown: 1000;\n\t--z-sticky: 1020;\n\t--z-fixed: 1030;\n\t--z-modal-backdrop: 1040;\n\t--z-modal: 1050;\n\t--z-popover: 1060;\n\t--z-tooltip: 1070;\n\n\t/* Opacity Values */\n\t--opacity-placeholder: 0.6;\n\t--opacity-disabled: 0.5;\n\t--opacity-hover: 0.8;\n\n\t/* Breakpoints for Responsive Design */\n\t--breakpoint-sm: 640px;\n\t--breakpoint-md: 768px;\n\t--breakpoint-lg: 1024px;\n\t--breakpoint-xl: 1280px;\n}\n\n/* Enhanced Global Styles */\n* {\n\tbox-sizing: border-box;\n}\n\nbody {\n\tfont-family: var(--font-family);\n\tbackground: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);\n\tmargin: 0;\n\tpadding: 0;\n\tmin-height: 100vh;\n\tline-height: 1.6;\n\tcolor: var(--color-text-primary);\n\t-webkit-font-smoothing: antialiased;\n\t-moz-osx-font-smoothing: grayscale;\n}\n\n/* Container Enhancements */\n.form-container {\n\tmax-width: var(--container-width);\n\twidth: var(--container-max-width);\n\tmargin: 0 auto;\n\tpadding: var(--padding-container-top) var(--space-4);\n}\n\n/* Card Styling */\n.form-card {\n\tbackground: var(--color-card-bg);\n\tborder: 1px solid var(--color-card-border);\n\tborder-radius: var(--card-border-radius);\n\tbox-shadow: var(--box-shadow-card);\n\tpadding: var(--card-padding);\n\tmargin-bottom: var(--card-margin-bottom);\n\tposition: relative;\n\toverflow: hidden;\n}\n\n.form-card::before {\n\tcontent: '';\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\theight: 4px;\n\tbackground: linear-gradient(90deg, var(--color-primary), var(--color-secondary), var(--color-accent));\n}\n\n/* Header Styling */\n.form-header {\n\ttext-align: center;\n\tmargin-bottom: var(--space-8);\n}\n\n.form-title {\n\tfont-size: var(--font-size-header);\n\tfont-weight: var(--font-weight-bold);\n\tcolor: var(--color-header);\n\tmargin: 0 0 var(--space-3) 0;\n\tbackground: linear-gradient(135deg, var(--color-primary), var(--color-accent));\n\t-webkit-background-clip: text;\n\t-webkit-text-fill-color: transparent;\n\tbackground-clip: text;\n}\n\n.form-description {\n\tfont-size: var(--font-size-base);\n\tcolor: var(--color-text-secondary);\n\tmargin: 0;\n\tline-height: 1.7;\n\ttext-align: left;\n\tbackground: rgba(249, 250, 251, 0.8);\n\tpadding: var(--space-6);\n\tborder-radius: var(--border-radius-lg);\n\tborder: 1px solid var(--color-border-light);\n\tbackdrop-filter: blur(10px);\n\tposition: relative;\n\toverflow: hidden;\n}\n\n.form-description::before {\n\tcontent: '';\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\theight: 3px;\n\tbackground: linear-gradient(90deg, var(--color-primary) 0%, var(--color-secondary) 50%, var(--color-accent) 100%);\n}\n\n.form-description h4 {\n\tfont-size: var(--font-size-lg);\n\tfont-weight: var(--font-weight-semibold);\n\tcolor: var(--color-text-primary);\n\tmargin: 0 0 var(--space-3) 0;\n\tdisplay: flex;\n\talign-items: center;\n\tgap: var(--space-2);\n}\n\n.form-description h4::before {\n\tcontent: attr(data-icon);\n\tfont-size: var(--font-size-xl);\n\tline-height: 1;\n}\n\n.form-description ul {\n\tlist-style: none;\n\tpadding: 0;\n\tmargin: 0 0 var(--space-4) 0;\n}\n\n.form-description li {\n\tmargin-bottom: var(--space-2);\n\tpadding-left: var(--space-6);\n\tposition: relative;\n\tfont-size: var(--font-size-sm);\n\tline-height: 1.6;\n}\n\n.form-description li::before {\n\tcontent: '▶';\n\tposition: absolute;\n\tleft: 0;\n\ttop: 0;\n\tcolor: var(--color-primary);\n\tfont-size: var(--font-size-xs);\n\ttransform: scale(0.8);\n}\n\n.form-description strong {\n\tcolor: var(--color-text-primary);\n\tfont-weight: var(--font-weight-semibold);\n}\n\n.form-description a {\n\tcolor: var(--color-primary);\n\ttext-decoration: none;\n\tfont-weight: var(--font-weight-medium);\n\tborder-bottom: 1px solid transparent;\n\ttransition: all var(--transition-fast);\n}\n\n.form-description a:hover {\n\tborder-bottom-color: var(--color-primary);\n\tcolor: var(--color-primary-hover);\n}\n\n.form-description .highlight-box {\n\tbackground: linear-gradient(135deg, var(--color-primary-light), rgba(124, 58, 237, 0.1));\n\tpadding: var(--space-4);\n\tborder-radius: var(--border-radius-md);\n\tmargin: var(--space-4) 0;\n\tborder-left: 4px solid var(--color-primary);\n}\n\n.form-description .highlight-box strong {\n\tcolor: var(--color-primary);\n}\n\n/* Course Details Section Styling */\n.course-section {\n\tmargin-bottom: var(--space-5);\n\tpadding: var(--space-4);\n\tbackground: rgba(255, 255, 255, 0.6);\n\tborder-radius: var(--border-radius-md);\n\tborder: 1px solid rgba(37, 99, 235, 0.1);\n}\n\n.course-section:last-child {\n\tmargin-bottom: 0;\n}\n\n.section-title {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: var(--space-2);\n\tfont-size: var(--font-size-md);\n\tfont-weight: var(--font-weight-semibold);\n\tcolor: var(--color-text-primary);\n\tmargin-bottom: var(--space-3);\n\tpadding-bottom: var(--space-2);\n\tborder-bottom: 2px solid var(--color-primary-light);\n}\n\n.section-icon {\n\tfont-size: var(--font-size-lg);\n\tcolor: var(--color-primary);\n}\n\n/* Payment Structure Styling */\n.payment-grid {\n\tdisplay: grid;\n\tgrid-template-columns: 1fr 1fr;\n\tgap: var(--space-4);\n\tmargin: var(--space-3) 0;\n}\n\n@media (max-width: 640px) {\n\t.payment-grid {\n\t\tgrid-template-columns: 1fr;\n\t}\n}\n\n.payment-option {\n\tbackground: rgba(5, 150, 105, 0.05);\n\tpadding: var(--space-3);\n\tborder-radius: var(--border-radius-sm);\n\tborder-left: 3px solid var(--color-secondary);\n\tfont-size: var(--font-size-sm);\n}\n\n.payment-option.split-payment {\n\tbackground: rgba(124, 58, 237, 0.05);\n\tborder-left-color: var(--color-accent);\n}\n\n/* Mentorship CTA Styling */\n.mentorship-cta {\n\tbackground: linear-gradient(135deg, var(--color-accent), var(--color-primary));\n\tcolor: white;\n\tpadding: var(--space-4);\n\tborder-radius: var(--border-radius-lg);\n\ttext-align: center;\n\tmargin-top: var(--space-4);\n\tposition: relative;\n\toverflow: hidden;\n}\n\n.mentorship-cta::before {\n\tcontent: '';\n\tposition: absolute;\n\ttop: -50%;\n\tleft: -50%;\n\twidth: 200%;\n\theight: 200%;\n\tbackground: linear-gradient(45deg, transparent, rgba(255,255,255,0.1), transparent);\n\ttransform: rotate(45deg);\n\tanimation: shimmer 3s infinite;\n}\n\n@keyframes shimmer {\n\t0% { transform: translateX(-100%) translateY(-100%) rotate(45deg); }\n\t100% { transform: translateX(100%) translateY(100%) rotate(45deg); }\n}\n\n.mentorship-cta strong {\n\tcolor: white;\n\tfont-size: var(--font-size-md);\n}\n\n.mentorship-cta a {\n\tcolor: rgba(255, 255, 255, 0.9);\n\tfont-weight: var(--font-weight-medium);\n\tborder-bottom: 1px solid rgba(255, 255, 255, 0.3);\n\ttransition: all var(--transition-fast);\n}\n\n.mentorship-cta a:hover {\n\tcolor: white;\n\tborder-bottom-color: white;\n}\n\n/* Dark mode adjustments for description */\n@media (prefers-color-scheme: dark) {\n\t.form-description {\n\t\tbackground: rgba(30, 41, 59, 0.8);\n\t\tborder-color: var(--color-border-light);\n\t}\n\t\n\t.course-section {\n\t\tbackground: rgba(51, 65, 85, 0.6);\n\t\tborder-color: rgba(148, 163, 184, 0.1);\n\t}\n\t\n\t.payment-option {\n\t\tbackground: rgba(5, 150, 105, 0.1);\n\t}\n\t\n\t.payment-option.split-payment {\n\t\tbackground: rgba(124, 58, 237, 0.1);\n\t}\n}\n\n/* Form Field Styling */\n.form-field {\n\tmargin-bottom: var(--space-6);\n}\n\n.form-label {\n\tdisplay: block;\n\tfont-size: var(--font-size-label);\n\tfont-weight: var(--font-weight-medium);\n\tcolor: var(--color-label);\n\tmargin-bottom: var(--space-2);\n\tposition: relative;\n}\n\n.form-label.required::after {\n\tcontent: '*';\n\tcolor: var(--color-required);\n\tmargin-left: var(--space-1);\n\tfont-weight: var(--font-weight-bold);\n}\n\n/* Input Styling */\n.form-input,\n.form-select,\n.form-textarea {\n\twidth: 100%;\n\theight: var(--input-height);\n\tpadding: var(--padding-form-input) var(--space-4);\n\tfont-size: var(--font-size-input);\n\tfont-family: var(--font-family);\n\tcolor: var(--color-input-text);\n\tbackground: var(--color-surface);\n\tborder: 2px solid var(--color-input-border);\n\tborder-radius: var(--border-radius-input);\n\ttransition: all var(--transition-fast);\n\toutline: none;\n}\n\n.form-textarea {\n\theight: auto;\n\tmin-height: 120px;\n\tresize: vertical;\n\tpadding-top: var(--space-3);\n\tpadding-bottom: var(--space-3);\n}\n\n.form-input:focus,\n.form-select:focus,\n.form-textarea:focus {\n\tborder-color: var(--color-focus-border);\n\tbox-shadow: var(--box-shadow-input-focus);\n\ttransform: translateY(-1px);\n}\n\n.form-input::placeholder,\n.form-textarea::placeholder {\n\tcolor: var(--color-text-placeholder);\n\topacity: var(--opacity-placeholder);\n}\n\n.form-input:hover,\n.form-select:hover,\n.form-textarea:hover {\n\tborder-color: var(--color-border-medium);\n}\n\n/* Select Styling */\n.form-select {\n\tbackground-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e\");\n\tbackground-position: right var(--space-3) center;\n\tbackground-repeat: no-repeat;\n\tbackground-size: 16px;\n\tpadding-right: var(--space-10);\n\tcursor: pointer;\n}\n\n/* Checkbox and Radio Styling */\n.form-checkbox,\n.form-radio {\n\twidth: var(--checkbox-size);\n\theight: var(--checkbox-size);\n\tmargin-right: var(--space-3);\n\taccent-color: var(--color-primary);\n\tcursor: pointer;\n}\n\n.form-checkbox-label,\n.form-radio-label {\n\tdisplay: flex;\n\talign-items: flex-start;\n\tcursor: pointer;\n\tfont-size: var(--font-size-base);\n\tline-height: 1.5;\n\tmargin-bottom: var(--space-3);\n}\n\n/* Multiple Choice Styling */\n.form-multiple-choice {\n\tdisplay: grid;\n\tgap: var(--space-3);\n}\n\n/* Submit Button Styling */\n.form-submit {\n\twidth: 100%;\n\theight: var(--submit-btn-height);\n\tpadding: 0 var(--space-6);\n\tfont-size: var(--font-size-lg);\n\tfont-weight: var(--font-weight-semibold);\n\tcolor: var(--color-submit-btn-text);\n\tbackground: var(--color-submit-btn-bg);\n\tborder: none;\n\tborder-radius: var(--border-radius-input);\n\tcursor: pointer;\n\ttransition: all var(--transition-normal);\n\tposition: relative;\n\toverflow: hidden;\n\ttext-transform: uppercase;\n\tletter-spacing: 0.5px;\n}\n\n.form-submit::before {\n\tcontent: '';\n\tposition: absolute;\n\ttop: 0;\n\tleft: -100%;\n\twidth: 100%;\n\theight: 100%;\n\tbackground: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);\n\ttransition: left var(--transition-slow);\n}\n\n.form-submit:hover {\n\tbackground: var(--color-submit-btn-hover);\n\tbox-shadow: var(--box-shadow-button-hover);\n\ttransform: translateY(-2px);\n}\n\n.form-submit:hover::before {\n\tleft: 100%;\n}\n\n.form-submit:active {\n\ttransform: translateY(0);\n\tbox-shadow: var(--shadow-sm);\n}\n\n/* Error Styling */\n.form-error {\n\tcolor: var(--color-error);\n\tfont-size: var(--font-size-error);\n\tmargin-top: var(--space-1);\n\tdisplay: flex;\n\talign-items: center;\n\tgap: var(--space-1);\n}\n\n.form-error::before {\n\tcontent: '⚠';\n\tfont-size: var(--font-size-sm);\n}\n\n.form-input.error,\n.form-select.error,\n.form-textarea.error {\n\tborder-color: var(--color-border-error);\n\tbox-shadow: 0 0 0 3px rgba(220, 38, 38, 0.1);\n}\n\n/* Test Notice Styling */\n.test-notice {\n\tbackground: var(--color-test-notice-bg);\n\tcolor: var(--color-test-notice-text);\n\tborder: 1px solid var(--color-test-notice-border);\n\tborder-radius: var(--border-radius-md);\n\tpadding: var(--padding-test-notice-vertical) var(--padding-test-notice-horizontal);\n\tmargin-bottom: var(--space-6);\n\tfont-size: var(--font-size-test-notice);\n\tdisplay: flex;\n\talign-items: center;\n\tgap: var(--space-2);\n}\n\n.test-notice::before {\n\tcontent: 'ℹ';\n\tfont-weight: var(--font-weight-bold);\n\tfont-size: var(--font-size-base);\n}\n\n/* Progress Indicator */\n.form-progress {\n\theight: 4px;\n\tbackground: var(--color-border-light);\n\tborder-radius: var(--border-radius-sm);\n\tmargin-bottom: var(--space-6);\n\toverflow: hidden;\n}\n\n.form-progress-bar {\n\theight: 100%;\n\tbackground: linear-gradient(90deg, var(--color-primary), var(--color-secondary));\n\tborder-radius: var(--border-radius-sm);\n\ttransition: width var(--transition-slow);\n\twidth: 0%;\n}\n\n/* Loading State */\n.form-loading {\n\topacity: var(--opacity-disabled);\n\tpointer-events: none;\n\tposition: relative;\n}\n\n.form-loading::after {\n\tcontent: '';\n\tposition: absolute;\n\ttop: 50%;\n\tleft: 50%;\n\twidth: 20px;\n\theight: 20px;\n\tmargin: -10px 0 0 -10px;\n\tborder: 2px solid var(--color-primary);\n\tborder-top-color: transparent;\n\tborder-radius: var(--border-radius-full);\n\tanimation: spin 1s linear infinite;\n}\n\n@keyframes spin {\n\tto {\n\t\ttransform: rotate(360deg);\n\t}\n}\n\n/* Responsive Design */\n@media (max-width: 640px) {\n\t:root {\n\t\t--container-width: 100%;\n\t\t--padding-container-top: var(--space-4);\n\t\t--card-padding: var(--space-4);\n\t\t--font-size-header: var(--font-size-3xl);\n\t}\n\t\n\t.form-container {\n\t\tpadding: var(--space-4) var(--space-3);\n\t}\n\t\n\t.form-submit {\n\t\theight: 48px;\n\t\tfont-size: var(--font-size-base);\n\t}\n}\n\n/* Dark Mode Support */\n@media (prefers-color-scheme: dark) {\n\t:root {\n\t\t--color-background: #0f172a;\n\t\t--color-surface: #1e293b;\n\t\t--color-surface-elevated: #334155;\n\t\t--color-text-primary: #f8fafc;\n\t\t--color-text-secondary: #cbd5e1;\n\t\t--color-text-tertiary: #94a3b8;\n\t\t--color-text-placeholder: #64748b;\n\t\t--color-border-light: #334155;\n\t\t--color-border-medium: #475569;\n\t\t--color-card-border: #334155;\n\t\t--color-card-shadow: rgba(0, 0, 0, 0.3);\n\t}\n\t\n\tbody {\n\t\tbackground: linear-gradient(135deg, #0f172a 0%, #1e293b 100%);\n\t}\n}\n\n/* Accessibility Improvements */\n@media (prefers-reduced-motion: reduce) {\n\t* {\n\t\tanimation-duration: 0.01ms !important;\n\t\tanimation-iteration-count: 1 !important;\n\t\ttransition-duration: 0.01ms !important;\n\t}\n}\n\n.sr-only {\n\tposition: absolute;\n\twidth: 1px;\n\theight: 1px;\n\tpadding: 0;\n\tmargin: -1px;\n\toverflow: hidden;\n\tclip: rect(0, 0, 0, 0);\n\twhite-space: nowrap;\n\tborder: 0;\n}",
"appendAttribution": false
},
"formTitle": "API testing and Automation Mastery Program - Enrollment Form",
"formFields": {
"values": [
{
"html": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"/>\n <style>\n body {\n font-family: 'Segoe UI', sans-serif;\n background-color: #f7f9fc;\n margin: 0;\n padding: 30px;\n line-height: 1.6;\n color: #333;\n }\n\n .container {\n max-width: 900px;\n margin: auto;\n background: #ffffff;\n padding: 40px;\n border-radius: 10px;\n box-shadow: 0 0 12px rgba(0, 0, 0, 0.06);\n }\n\n h1 {\n text-align: center;\n color: #0056b3;\n }\n\n h2 {\n color: #003366;\n margin-top: 30px;\n margin-bottom: 10px;\n border-bottom: 1px solid #ddd;\n padding-bottom: 5px;\n }\n\n ul {\n padding-left: 20px;\n }\n\n ul li {\n margin-bottom: 10px;\n }\n\n a {\n color: #007bff;\n text-decoration: none;\n }\n\n a:hover {\n text-decoration: underline;\n }\n\n .highlight {\n background-color: #e9f5ff;\n padding: 10px 15px;\n border-left: 4px solid #007bff;\n margin-top: 20px;\n border-radius: 5px;\n }\n\n .footer {\n margin-top: 40px;\n text-align: center;\n font-size: 0.9em;\n color: #555;\n }\n </style>\n</head>\n<body>\n <div class=\"container\">\n <h1>API Testing & Automation Training Enrollment</h1>\n\n <p>Please complete the form below to enroll in our comprehensive hands-on training program focused on <strong>API Testing & Automation using Postman and RestAssured</strong>.</p>\n\n <h2>📚 Course Overview</h2>\n <ul>\n <li><strong>Schedule:</strong> 3 days per week</li>\n <li><strong>Sessions:</strong> 2 recorded Zoom sessions daily (1.5 hours each)</li>\n <li><strong>Total Weekly Time:</strong> ~5+ hours/week</li>\n <li><strong>Content Focus:</strong> Demo projects only (no real-world projects)</li>\n <li><strong>Certification:</strong> <em>No certificate</em> – focus is on practical skills</li>\n </ul>\n\n <h2>🧠 Course Content</h2>\n <ul>\n <li>🔹 Introduction to APIs & API Testing Fundamentals</li>\n <li>🔹 API Testing and Automation using <strong>Postman</strong></li>\n <li>🔹 API Test Automation using <strong>Newman</strong> (Postman CLI Runner)</li>\n <li>🔹 API Testing and Automation using <strong>RestAssured</strong> (Java)</li>\n <li>🔹 Data-driven Testing & Environment Variables</li>\n <li>🔹 API Testing with <strong>Cucumber</strong> (BDD Framework)</li>\n <li>🔹 CI/CD Integration for API Automation (GitHub Actions, Jenkins, etc.)</li>\n <li>🔹 Generating Professional Reports</li>\n <li>🔹 Version Control with <strong>Git & GitHub</strong></li>\n </ul>\n\n <h2>💳 Payment Structure</h2>\n <ul>\n <li><strong>API, Performance, Database & Security Courses:</strong> Full payment upon completion</li>\n <li><strong>Web, Mobile & AI Automation Courses:</strong>\n <ul>\n <li>50% after the first month</li>\n <li>Remaining 50% at course completion</li>\n </ul>\n </li>\n <li><strong>Risk-Free:</strong> Cancel anytime within the first month – no fees</li>\n </ul>\n\n <h2>✅ Requirements for Enrollment</h2>\n <ul>\n <li>\n Must have <strong>basic knowledge of any programming language</strong> (preferably Java)\n </li>\n <li>\n If you don’t have this background, please watch the first 60 videos of this\n <a href=\"https://www.youtube.com/playlist?list=PL28DDB2DCF87BEE43\" target=\"_blank\">\n YouTube Programming Basics Playlist\n </a>\n before enrolling.\n </li>\n <li>Completion of <strong>all assigned projects</strong> and tasks by deadlines</li>\n <li>Active participation in sessions and assignments</li>\n <li>Failure to meet requirements may affect future course access</li>\n </ul>\n\n <h2>🎁 Free Mentorship</h2>\n <p>Have questions or need personalized guidance? Connect on LinkedIn:</p>\n <p><a href=\"https://www.linkedin.com/in/shady-ahmed97/\" target=\"_blank\">Shady Ahmed – LinkedIn</a></p>\n\n <h2>⏳ Course Duration</h2>\n <p><strong>2 to 3 months</strong> depending on pace and availability.</p>\n\n <div class=\"highlight\">\n <strong>💬 Ready to get started?</strong> Fill out the form below to begin your journey into professional API automation.\n </div>\n\n <div class=\"footer\">\n © 2025 Shady Ahmed | Testing Automation Instructor\n </div>\n </div>\n <br><br>\n</body>\n</html>",
"fieldType": "html",
"elementName": "form-desc"
},
{
"fieldLabel": "Full Name",
"placeholder": "Enter your full name",
"requiredField": true
},
{
"fieldType": "email",
"fieldLabel": "Email Address",
"placeholder": "your.email@example.com",
"requiredField": true
},
{
"fieldLabel": "WhatsApp Number",
"placeholder": "+201234567890",
"requiredField": true
},
{
"fieldType": "dropdown",
"fieldLabel": "Do you have basics of any programming language?",
"fieldOptions": {
"values": [
{
"option": "Yes"
},
{
"option": "No"
}
]
},
"requiredField": true
},
{
"fieldType": "checkbox",
"fieldLabel": "I commit to 3 days per week for 2-3 months",
"fieldOptions": {
"values": [
{
"option": "Agree"
},
{
"option": "Not Agree"
}
]
},
"requiredField": true,
"limitSelection": "exact"
},
{
"fieldType": "dropdown",
"fieldLabel": "Terms and Conditions",
"fieldOptions": {
"values": [
{
"option": "I agree to follow all deadlines and complete assigned tasks/projects"
},
{
"option": "I don't agree"
}
]
},
"requiredField": true
}
]
}
},
"typeVersion": 2.3
},
{
"id": "1d13a6b7-9cfd-40d0-8c91-53f203a8feb7",
"name": "Note autocollante",
"type": "n8n-nodes-base.stickyNote",
"position": [
128,
-304
],
"parameters": {
"height": 336,
"content": "### Student Enrollment\n\n\n\n\n\n\n\n\n\n\nThis workflow starts **automatically** when a new student submits the enrollment form for the training program.\n"
},
"typeVersion": 1
},
{
"id": "6c60192e-98d6-492d-83ec-08ebb6ee3a63",
"name": "Combiner les données utilisateur",
"type": "n8n-nodes-base.set",
"position": [
432,
-272
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "a4b4f135-34bd-4bc2-ba72-f2cb9a3b949d",
"name": "user_context",
"type": "string",
"value": "={{ $json['Full Name'] }}, {{ $json['Email Address'] }}, {{ $json['WhatsApp Number'] }}, {{ $json['Do you have basics of any programming language?'] }}, {{ $json['Terms and Conditions'] }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "d80d0ad8-779d-4c61-a78b-e655b18c7879",
"name": "Agent IA",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1280,
-272
],
"parameters": {
"text": "=**Role**\nact as software testing instructor assistant to evaluate students answers then make output of JSON object include if accepted to course or not if user anser with yes and agree for terms and conditions and commit to follow all deadlines and complete assigned tasks/projects then will be accepted otherwise will not be accpted\nfor example \n{\n\"accepted\": true\n}\n\n{{ $('Combine User Data').item.json.user_context }}\n",
"options": {},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 2.2
},
{
"id": "2175cf5a-a984-437d-a636-2ad403ed175d",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1136,
144
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini",
"cachedResultName": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "CXEjPKMAyq5p5Jjm",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "3c2a315b-c88c-49f8-b9b6-1bd9139286bc",
"name": "Analyseur de sortie structurée",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1296,
144
],
"parameters": {
"jsonSchemaExample": "{\n\t\"accepted\": true\n}"
},
"typeVersion": 1.3
},
{
"id": "922f1c54-bf54-47dc-845f-f824749fc09a",
"name": "Télécharger le fichier",
"type": "n8n-nodes-base.googleDrive",
"position": [
624,
-272
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "list",
"value": "1HxM_NWizFnOhf4jk-7BQRpTvfd9xQuFNfGrH5hiqTxA",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1HxM_NWizFnOhf4jk-7BQRpTvfd9xQuFNfGrH5hiqTxA/edit?usp=drivesdk",
"cachedResultName": "Course Enrollment"
},
"options": {},
"operation": "download"
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "zvPCbUMwmjWtNM0a",
"name": "Google Drive account 2"
}
},
"typeVersion": 3
},
{
"id": "86cb7c06-c364-40d9-a147-ddb37f84c981",
"name": "Pinecone Vector Store",
"type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
"position": [
880,
-272
],
"parameters": {
"mode": "insert",
"options": {
"pineconeNamespace": "course_enrollment"
},
"pineconeIndex": {
"__rl": true,
"mode": "list",
"value": "course-enrollment",
"cachedResultName": "course-enrollment"
}
},
"credentials": {
"pineconeApi": {
"id": "ZRuijEjAOJkoX2hV",
"name": "PineconeApi account"
}
},
"typeVersion": 1.3
},
{
"id": "cbd60d6a-773c-4aca-8ac6-5927cb5b9259",
"name": "Embeddings Google Gemini",
"type": "@n8n/n8n-nodes-langchain.embeddingsGoogleGemini",
"position": [
672,
160
],
"parameters": {},
"credentials": {
"googlePalmApi": {
"id": "VhlEL4kZCaqxUKQd",
"name": "Google Gemini(PaLM) Api account"
}
},
"typeVersion": 1
},
{
"id": "0a217b14-1ecb-42ac-9e33-a5d193465010",
"name": "Chargeur de données par défaut",
"type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
"position": [
832,
160
],
"parameters": {
"options": {}
},
"typeVersion": 1.1
},
{
"id": "b3122baf-ca34-4f58-b4b9-4c01acf20f3c",
"name": "Agent IA1",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1632,
-272
],
"parameters": {
"text": "=**Role**\nact as mail agent to send message to mail address with his enrollment status with my course if accpted or not based on the accpted result below if true mean accepted other mean not accepted\n {{ $json.output.accepted }}\n- also use this data of the registered user to format professional email for accepted and rejected.\n{{ $('Combine User Data').item.json.user_context }}\n- - if student \"accepted\" value is false then guide him in the email to check first 60 videos from this youtube playlist \nhttps://www.youtube.com/playlist?list=PL28DDB2DCF87BEE43\n- confirm sending only one email based on accepted result true or false below\n{{ $json.output.accepted }}\n- confirm to use html template on System Message",
"options": {
"systemMessage": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"/>\n <style>\n body {\n font-family: 'Segoe UI', sans-serif;\n background-color: #f4f6f9;\n padding: 30px;\n color: #333;\n }\n\n .container {\n max-width: 800px;\n background: #fff;\n margin: auto;\n padding: 40px;\n border-radius: 12px;\n box-shadow: 0 0 15px rgba(0,0,0,0.05);\n }\n\n h1 {\n color: #0056b3;\n margin-bottom: 10px;\n }\n\n .status {\n padding: 15px;\n border-radius: 5px;\n font-size: 1.1rem;\n margin-bottom: 20px;\n }\n\n .accepted {\n background-color: #e6ffed;\n border-left: 5px solid #28a745;\n color: #155724;\n }\n\n .rejected {\n background-color: #fff3f3;\n border-left: 5px solid #dc3545;\n color: #721c24;\n }\n\n .details {\n margin-top: 20px;\n }\n\n .details h2 {\n color: #333;\n margin-bottom: 10px;\n }\n\n .details p {\n margin: 5px 0;\n }\n\n .summary {\n margin-top: 30px;\n padding: 15px;\n background: #f0f8ff;\n border-left: 5px solid #007bff;\n }\n\n strong {\n color: #000;\n }\n\n .signature {\n margin-top: 40px;\n font-style: italic;\n color: #333;\n border-top: 1px solid #ddd;\n padding-top: 20px;\n text-align: right;\n font-size: 1rem;\n }\n </style>\n</head>\n<body>\n <div class=\"container\">\n <h1>📨 Enrollment Status Notification</h1>\n\n {{#if $json.output.accepted}}\n <div class=\"status accepted\">\n ✅ <strong>{{ $('Combine User Data').item.json.user_context.name }}</strong> has been <strong>accepted</strong> into the course.\n </div>\n {{else}}\n <div class=\"status rejected\">\n ❌ <strong>{{ $('Combine User Data').item.json.user_context.name }}</strong> was <strong>not accepted</strong> into the course at this time.\n </div>\n {{/if}}\n\n <div class=\"details\">\n <h2>📄 Student Details</h2>\n <p><strong>Name:</strong> {{ $('Combine User Data').item.json.user_context.name }}</p>\n <p><strong>Email:</strong> {{ $('Combine User Data').item.json.user_context.email }}</p>\n <p><strong>WhatsApp:</strong> {{ $('Combine User Data').item.json.user_context.whatsapp }}</p>\n <p><strong>Programming Basics:</strong> {{ $('Combine User Data').item.json.user_context.has_basics }}</p>\n <p><strong>Availability:</strong> {{ $('Combine User Data').item.json.user_context.availability }}</p>\n </div>\n\n <div class=\"summary\">\n <h3>📬 Email Summary</h3>\n <ul>\n {{#if $json.output.accepted}}\n <li><strong>Acceptance Email:</strong> Sent successfully to {{ $('Combine User Data').item.json.user_context.email }}</li>\n {{else}}\n <li><strong>Rejection Email:</strong> Sent to {{ $('Combine User Data').item.json.user_context.email }}</li>\n {{/if}}\n <li>Notification processed automatically based on form input.</li>\n </ul>\n </div>\n\n <div class=\"signature\">\n Best regards,<br>\n <strong>Shady Ahmed</strong><br>\n Automation Instructor\n </div>\n </div>\n</body>\n</html>"
},
"promptType": "define"
},
"typeVersion": 2.2
},
{
"id": "12297e0d-48a3-4a7b-a511-922a1f97b004",
"name": "OpenAI Chat Model1",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1504,
144
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini",
"cachedResultName": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "CXEjPKMAyq5p5Jjm",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "34f98f22-8839-43cc-a4e2-df4b28828bff",
"name": "Envoyer un message dans Gmail",
"type": "n8n-nodes-base.gmailTool",
"position": [
1968,
144
],
"webhookId": "dec56e5e-50e9-48f0-95f5-5118f5ccb2eb",
"parameters": {
"sendTo": "={{ $('On form submission').item.json['Email Address'] }}",
"message": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message', ``, 'string') }}",
"options": {
"appendAttribution": false
},
"subject": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Subject', ``, 'string') }}"
},
"credentials": {
"gmailOAuth2": {
"id": "JfSof8X3kWXePnXK",
"name": "Gmail account"
}
},
"typeVersion": 2.1
},
{
"id": "dbf537a6-8c5c-460b-8d76-695eb2ab79fb",
"name": "Ajouter une ligne dans la feuille",
"type": "n8n-nodes-base.googleSheets",
"position": [
1984,
-272
],
"parameters": {
"columns": {
"value": {
"Name": "={{ $('On form submission').item.json['Full Name'] }}",
"Time": "={{ $('On form submission').item.json.submittedAt }}",
"Email": "={{ $('On form submission').item.json['Email Address'] }}",
"Accepted": "={{ $('AI Agent').item.json.output.accepted }}",
"WhatsApp": "={{ $('On form submission').item.json['WhatsApp Number'] }}",
"Have Basics of Programming": "={{ $('On form submission').item.json['Do you have basics of any programming language?'] }}",
"Agree to Terms and Conditions": "={{ $('On form submission').item.json['Terms and Conditions'] }}"
},
"schema": [
{
"id": "Name",
"type": "string",
"display": true,
"required": false,
"displayName": "Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email",
"type": "string",
"display": true,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "WhatsApp",
"type": "string",
"display": true,
"required": false,
"displayName": "WhatsApp",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Have Basics of Programming",
"type": "string",
"display": true,
"required": false,
"displayName": "Have Basics of Programming",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Agree to Terms and Conditions",
"type": "string",
"display": true,
"required": false,
"displayName": "Agree to Terms and Conditions",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Accepted",
"type": "string",
"display": true,
"required": false,
"displayName": "Accepted",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Time",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Time",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1HxM_NWizFnOhf4jk-7BQRpTvfd9xQuFNfGrH5hiqTxA/edit#gid=0",
"cachedResultName": "API"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1HxM_NWizFnOhf4jk-7BQRpTvfd9xQuFNfGrH5hiqTxA",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1HxM_NWizFnOhf4jk-7BQRpTvfd9xQuFNfGrH5hiqTxA/edit?usp=drivesdk",
"cachedResultName": "Course Enrollment"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "lCnwBHjgpXXtRTYx",
"name": "Google Sheets account 2"
}
},
"typeVersion": 4.7
},
{
"id": "9fb77584-d69e-4e5e-8550-3ce40e72684e",
"name": "Pinecone Vector Store1",
"type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
"position": [
1632,
144
],
"parameters": {
"mode": "retrieve-as-tool",
"topK": 5,
"options": {},
"pineconeIndex": {
"__rl": true,
"mode": "list",
"value": "course-enrollment",
"cachedResultName": "course-enrollment"
},
"toolDescription": "=retreive data based on this email: {{ $('On form submission').item.json['Email Address'] }}"
},
"credentials": {
"pineconeApi": {
"id": "ZRuijEjAOJkoX2hV",
"name": "PineconeApi account"
}
},
"typeVersion": 1.3
},
{
"id": "efb9c765-3141-4264-ba4c-433756c685e8",
"name": "Embeddings Google Gemini1",
"type": "@n8n/n8n-nodes-langchain.embeddingsGoogleGemini",
"position": [
1712,
304
],
"parameters": {},
"credentials": {
"googlePalmApi": {
"id": "VhlEL4kZCaqxUKQd",
"name": "Google Gemini(PaLM) Api account"
}
},
"typeVersion": 1
}
],
"active": true,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "b24a262a-d576-4b24-837e-b375b45404cd",
"connections": {
"d80d0ad8-779d-4c61-a78b-e655b18c7879": {
"main": [
[
{
"node": "b3122baf-ca34-4f58-b4b9-4c01acf20f3c",
"type": "main",
"index": 0
}
]
]
},
"b3122baf-ca34-4f58-b4b9-4c01acf20f3c": {
"main": [
[
{
"node": "dbf537a6-8c5c-460b-8d76-695eb2ab79fb",
"type": "main",
"index": 0
}
]
]
},
"922f1c54-bf54-47dc-845f-f824749fc09a": {
"main": [
[
{
"node": "86cb7c06-c364-40d9-a147-ddb37f84c981",
"type": "main",
"index": 0
}
]
]
},
"6c60192e-98d6-492d-83ec-08ebb6ee3a63": {
"main": [
[
{
"node": "922f1c54-bf54-47dc-845f-f824749fc09a",
"type": "main",
"index": 0
}
]
]
},
"2175cf5a-a984-437d-a636-2ad403ed175d": {
"ai_languageModel": [
[
{
"node": "d80d0ad8-779d-4c61-a78b-e655b18c7879",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"912fb0fd-fef4-4feb-8112-6418581342b8": {
"main": [
[
{
"node": "6c60192e-98d6-492d-83ec-08ebb6ee3a63",
"type": "main",
"index": 0
}
]
]
},
"12297e0d-48a3-4a7b-a511-922a1f97b004": {
"ai_languageModel": [
[
{
"node": "b3122baf-ca34-4f58-b4b9-4c01acf20f3c",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"0a217b14-1ecb-42ac-9e33-a5d193465010": {
"ai_document": [
[
{
"node": "86cb7c06-c364-40d9-a147-ddb37f84c981",
"type": "ai_document",
"index": 0
}
]
]
},
"86cb7c06-c364-40d9-a147-ddb37f84c981": {
"main": [
[
{
"node": "d80d0ad8-779d-4c61-a78b-e655b18c7879",
"type": "main",
"index": 0
}
]
],
"ai_tool": [
[]
]
},
"9fb77584-d69e-4e5e-8550-3ce40e72684e": {
"ai_tool": [
[
{
"node": "b3122baf-ca34-4f58-b4b9-4c01acf20f3c",
"type": "ai_tool",
"index": 0
}
]
]
},
"34f98f22-8839-43cc-a4e2-df4b28828bff": {
"ai_tool": [
[
{
"node": "b3122baf-ca34-4f58-b4b9-4c01acf20f3c",
"type": "ai_tool",
"index": 0
}
]
]
},
"cbd60d6a-773c-4aca-8ac6-5927cb5b9259": {
"ai_embedding": [
[
{
"node": "86cb7c06-c364-40d9-a147-ddb37f84c981",
"type": "ai_embedding",
"index": 0
}
]
]
},
"3c2a315b-c88c-49f8-b9b6-1bd9139286bc": {
"ai_outputParser": [
[
{
"node": "d80d0ad8-779d-4c61-a78b-e655b18c7879",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"efb9c765-3141-4264-ba4c-433756c685e8": {
"ai_embedding": [
[
{
"node": "9fb77584-d69e-4e5e-8550-3ce40e72684e",
"type": "ai_embedding",
"index": 0
}
]
]
}
}
}Comment utiliser ce workflow ?
Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.
Dans quelles scénarios ce workflow est-il adapté ?
Avancé - Gestion des tickets, Résumé IA
Est-ce payant ?
Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.
Workflows recommandés
Shady Ahmed
@shadyPartager ce workflow