This workflow corresponds to n8n.io template #8567 โ we link there as the canonical source.
This workflow follows the Agent โ Documentdefaultdataloader recipe pattern โ see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide โ
{
"id": "zXNpe4L6H7ECAhDC",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "Automatic Course Registration",
"tags": [],
"nodes": [
{
"id": "912fb0fd-fef4-4feb-8112-6418581342b8",
"name": "On form submission",
"type": "n8n-nodes-base.formTrigger",
"position": [
176,
-272
],
"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: '\u25b6';\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: '\u26a0';\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: '\u2139';\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>\ud83d\udcda 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> \u2013 focus is on practical skills</li>\n </ul>\n\n <h2>\ud83e\udde0 Course Content</h2>\n <ul>\n <li>\ud83d\udd39 Introduction to APIs & API Testing Fundamentals</li>\n <li>\ud83d\udd39 API Testing and Automation using <strong>Postman</strong></li>\n <li>\ud83d\udd39 API Test Automation using <strong>Newman</strong> (Postman CLI Runner)</li>\n <li>\ud83d\udd39 API Testing and Automation using <strong>RestAssured</strong> (Java)</li>\n <li>\ud83d\udd39 Data-driven Testing & Environment Variables</li>\n <li>\ud83d\udd39 API Testing with <strong>Cucumber</strong> (BDD Framework)</li>\n <li>\ud83d\udd39 CI/CD Integration for API Automation (GitHub Actions, Jenkins, etc.)</li>\n <li>\ud83d\udd39 Generating Professional Reports</li>\n <li>\ud83d\udd39 Version Control with <strong>Git & GitHub</strong></li>\n </ul>\n\n <h2>\ud83d\udcb3 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-YOUR_OPENAI_KEY_HERE:</strong> Cancel anytime within the first month \u2013 no fees</li>\n </ul>\n\n <h2>\u2705 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\u2019t 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>\ud83c\udf81 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 \u2013 LinkedIn</a></p>\n\n <h2>\u23f3 Course Duration</h2>\n <p><strong>2 to 3 months</strong> depending on pace and availability.</p>\n\n <div class=\"highlight\">\n <strong>\ud83d\udcac 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": "user@example.com",
"requiredField": true
},
{
"fieldLabel": "WhatsApp Number",
"placeholder": "+1234567890",
"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": "Sticky Note",
"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": "Combine User Data",
"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": "AI Agent",
"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": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "3c2a315b-c88c-49f8-b9b6-1bd9139286bc",
"name": "Structured Output Parser",
"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": "Download file",
"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": {
"name": "<your credential>"
}
},
"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": {
"name": "<your credential>"
}
},
"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": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "0a217b14-1ecb-42ac-9e33-a5d193465010",
"name": "Default Data Loader",
"type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
"position": [
832,
160
],
"parameters": {
"options": {}
},
"typeVersion": 1.1
},
{
"id": "b3122baf-ca34-4f58-b4b9-4c01acf20f3c",
"name": "AI Agent1",
"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>\ud83d\udce8 Enrollment Status Notification</h1>\n\n {{#if $json.output.accepted}}\n <div class=\"status accepted\">\n \u2705 <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 \u274c <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>\ud83d\udcc4 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>\ud83d\udcec 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": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "34f98f22-8839-43cc-a4e2-df4b28828bff",
"name": "Send a message in Gmail",
"type": "n8n-nodes-base.gmailTool",
"position": [
1968,
144
],
"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": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "dbf537a6-8c5c-460b-8d76-695eb2ab79fb",
"name": "Append row in sheet",
"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": {
"name": "<your credential>"
}
},
"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": {
"name": "<your credential>"
}
},
"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": {
"name": "<your credential>"
}
},
"typeVersion": 1
}
],
"active": true,
"settings": {
"executionOrder": "v1"
},
"versionId": "b24a262a-d576-4b24-837e-b375b45404cd",
"connections": {
"AI Agent": {
"main": [
[
{
"node": "AI Agent1",
"type": "main",
"index": 0
}
]
]
},
"AI Agent1": {
"main": [
[
{
"node": "Append row in sheet",
"type": "main",
"index": 0
}
]
]
},
"Download file": {
"main": [
[
{
"node": "Pinecone Vector Store",
"type": "main",
"index": 0
}
]
]
},
"Combine User Data": {
"main": [
[
{
"node": "Download file",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"On form submission": {
"main": [
[
{
"node": "Combine User Data",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model1": {
"ai_languageModel": [
[
{
"node": "AI Agent1",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Default Data Loader": {
"ai_document": [
[
{
"node": "Pinecone Vector Store",
"type": "ai_document",
"index": 0
}
]
]
},
"Pinecone Vector Store": {
"main": [
[
{
"node": "AI Agent",
"type": "main",
"index": 0
}
]
],
"ai_tool": [
[]
]
},
"Pinecone Vector Store1": {
"ai_tool": [
[
{
"node": "AI Agent1",
"type": "ai_tool",
"index": 0
}
]
]
},
"Send a message in Gmail": {
"ai_tool": [
[
{
"node": "AI Agent1",
"type": "ai_tool",
"index": 0
}
]
]
},
"Embeddings Google Gemini": {
"ai_embedding": [
[
{
"node": "Pinecone Vector Store",
"type": "ai_embedding",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "AI Agent",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Embeddings Google Gemini1": {
"ai_embedding": [
[
{
"node": "Pinecone Vector Store1",
"type": "ai_embedding",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing โ you'll add your own.
gmailOAuth2googleDriveOAuth2ApigooglePalmApigoogleSheetsOAuth2ApiopenAiApipineconeApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
๐ Description
Source: https://n8n.io/workflows/8567/ โ original creator credit. Request a take-down โ
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This advanced n8n workflow automates the full lead enrichment, qualification, and personalized outreach process tailored specifically for the B2B real estate sector. Integrating top platforms like Api
This n8n template automatically classifies incoming emails (Sales, Support, Internal, Finance, Promotions) and routes them to a dedicated OpenAI LLM Agent for processing. Depending on the category, th
Automate Outreach Prospect automates finding, enriching, and messaging potential partners (like restaurants, malls, and bars) using Apify Google Maps scraping, Perplexity enrichment, OpenAI LLMs, Goog
This simple philosophy changes the way we think about automated sales agents. Context changes everything. In this 4-part workflow, we start by creating a knowledge base that will act as context across
Streamline client onboarding and lay the groundwork for future Retrieval-Augmented Generation (RAG) capabilities by automatically transforming Slack messages into structured data using GPT-4o, Google