Create customized academic assignments using Google Gemini and the Google Drive API, delivering them directly via the Telegram Bot API. Perfect for educators and students seeking automation in assignment creation. Requires 4 accounts: Google Gemini API, Telegram Bot Token, Google Drive OAuth, and Google Sheets API. Save hours on manual assignment generation, producing tailored content in minutes.
Categories
APIs
AI Features
Credentials
Copy or download to import into your n8n instance
{ "id": "b0EWHpE3oRHtGdwh", "meta": { "instanceId": "8d0680c4eee75276f104fe2b253dd4a6fe12b529dee7ac6dcb1dda00b9540fc7", "templateCredsSetupCompleted": true }, "name": "AI-Powered Academic Assignment Generator", "tags": [], "nodes": [ { "id": "18d05365-cf4e-454b-a954-5bf66809ff42", "name": "Google Gemini Chat Model6", "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini", "position": [ -1184, 960 ], "parameters": { "options": {} }, "credentials": { "googlePalmApi": { "id": "yo5RlAQn2qHTmBcD", "name": "Google Gemini(PaLM) Api account 2" } }, "typeVersion": 1 }, { "id": "27b705ce-5012-4a63-a82e-ee38bff55a16", "name": "Static Html Builder", "type": "@n8n/n8n-nodes-langchain.agent", "position": [ -1184, 800 ], "parameters": { "text": "=# Academic Assignment HTML Generator Prompt\n\nCreate an HTML document for an academic assignment using the following template structure and formatting requirements:\n\n## Required Input Data (JSON Format):\n```json\n{\n \"Faculty\":{{ $json.Faculty }} ,\n \"Department\": {{ $json.Department }},\n \"Name\": {{ $json.Name }},\n \"Course\": {{ $json.Course }},\n \"Level\":{{ $json.Level }} ,\n \"Matric No\":{{ $json['Reg No'] }},\n \"Date\": {{ $json.Date }},\n \"Questions\":{{ $json.Question }} ,\n \"Answers\":{{ $json.Answer }} [\n {\n \"number\": 1,\n \"title\": \"Answer title\",\n \"content\": \"Detailed answer content with subsections\"\n }\n ]\n}\n```\n\n## HTML Structure Requirements:\n\n### 1. Document Setup:\n- Use DOCTYPE html with Times New Roman font\n- 12pt font size, double line spacing (2.0)\n- 1-inch margins on all sides\n\n### 2. Header Section:\n- Center-aligned faculty and department names\n- 14pt bold uppercase text\n- 25px bottom margin\n\n### 3. Student Information Section:\n- Left-aligned with 20px left padding\n- Bold uppercase labels for: Name, Course, Level, Matric No, Date\n- 6px bottom margin between fields\n\n### 4. Questions Section:\n- \"QUESTION:\" as bold uppercase title\n- Numbered ordered list with 20px left margin\n- 12pt font size for all questions\n\n### 5. Answers Section:\n- Each answer starts with bold number and title\n- Use hierarchical headings: Main Heading, Sub Heading\n- Bullet lists with custom bullet points (•)\n- Justified text paragraphs with 2.0 line height\n- 20px left margin for lists\n\n### 6. Reference Section:\n- \"REFERENCE:\" as bold uppercase title\n- Custom bullet list format\n- Justified text alignment\n- Academic citation format\n\n## CSS Styling Classes:\n```css\n.header { text-align: center; font-size: 14pt; font-weight: bold; text-transform: uppercase; }\n.student-info { margin: 20px 0; padding-left: 20px; }\n.field-label { font-weight: bold; text-transform: uppercase; }\n.question-title { font-weight: bold; text-transform: uppercase; }\n.answer-number { font-weight: bold; margin: 20px 0 10px 0; }\n.main-heading { font-weight: bold; margin: 15px 0 10px 0; }\n.sub-heading { font-weight: bold; margin: 12px 0 8px 0; }\n.content-paragraph { text-align: justify; margin-bottom: 10px; line-height: 2.0; }\n.bullet-list { list-style: none; margin-left: 20px; }\n.reference-list { list-style: none; text-align: justify; }\n```\n\n## Content Guidelines:\n\n### For Academic Answers:\n1. **Structure each answer with:**\n - Clear numbered title\n - Main topic overview\n - Detailed subsections with bold headings\n - Comprehensive explanations (200-300 words per subsection)\n - Academic references integrated throughout\n \n\n2. **Writing Style:**\n - Formal academic tone\n - Justified paragraphs\n - Technical terminology appropriate to the field\n - Logical flow between sections\n - Evidence-based explanations\n\n3. **Formatting Requirements:**\n - Use bullet points for lists of items/concepts\n - Bold headings for major sections\n - Consistent spacing between elements\n - Proper citation format in references\n - Remove \"```html\" and \"```\" from the output only output a html file\n\n## Template Variables:\nReplace these placeholders with actual data:\n- `{{ $json.Faculty }}` - Faculty name\n- `{{ $json.Department }}` - Department name \n- `{{ $json.Name }}` - Student name\n- `{{ $json.Course }}` - Course information\n- `{{ $json.Level }}` - Academic level\n- `{{ $json['Reg No'] }}` - Student ID\n- `{{ $json.Date }}` - Assignment date\n- `{{ $json.Question }}` - Question\n- `{{ $json.Answer }}` - Answer\n- `{{ $json.Reference }}` - Reference\n\n## Output Requirements:\nGenerate a complete HTML document that:\n1. Follows all styling specifications exactly\n2. Maintains academic formatting standards\n3. Includes comprehensive, well-researched content\n4. Uses proper academic references\n5. Ensures responsive layout and readability\n6. Maintains consistent typography throughout\n7. Remove \"```html\" and \"```\" from the output only output a html file \n\nThe final HTML should be production-ready for academic submission with professional appearance and scholarly content quality.", "options": { "systemMessage": "You are a helpful assistant. You must output a structured and well-designed HTML. Your output should follow this example (\"<!DOCTYPE html>\n<html>\n<head>\n<style>\n body { \n font-family: 'Times New Roman', serif; \n line-height: 2.0; \n margin: 1in; \n font-size: 12pt;\n }\n \n .header { \n text-align: center; \n margin-bottom: 25px; \n font-size: 14pt; \n font-weight: bold; \n text-transform: uppercase; \n line-height: 1.2;\n }\n \n .student-info { \n margin: 20px 0; \n padding-left: 20px;\n }\n \n .field { \n margin-bottom: 6px; \n font-size: 12pt; \n }\n \n .field-label { \n font-weight: bold; \n text-transform: uppercase; \n }\n \n .question-section {\n margin: 20px 0;\n }\n \n .question-title {\n font-size: 12pt;\n font-weight: bold;\n text-transform: uppercase;\n margin-bottom: 8px;\n }\n \n .question-list {\n margin-left: 20px;\n margin-bottom: 25px;\n }\n \n .question-list li {\n margin-bottom: 4px;\n font-size: 12pt;\n }\n \n .answer-section {\n margin-top: 25px;\n }\n \n .answer-number {\n font-size: 12pt;\n font-weight: bold;\n margin: 20px 0 10px 0;\n }\n \n .main-heading {\n font-size: 12pt;\n font-weight: bold;\n margin: 15px 0 10px 0;\n }\n \n .sub-heading {\n font-size: 12pt;\n font-weight: bold;\n margin: 12px 0 8px 0;\n }\n \n .bullet-list {\n margin: 8px 0 15px 20px;\n padding: 0;\n list-style: none;\n }\n \n .bullet-list li {\n margin-bottom: 2px;\n position: relative;\n }\n \n .bullet-list li:before {\n content: \"•\";\n position: absolute;\n left: -15px;\n }\n \n .content-paragraph {\n text-align: justify;\n margin-bottom: 10px;\n font-size: 12pt;\n line-height: 2.0;\n }\n \n .reference-section {\n margin-top: 30px;\n }\n \n .reference-title {\n font-size: 12pt;\n font-weight: bold;\n text-transform: uppercase;\n margin-bottom: 10px;\n }\n \n .reference-list {\n margin-left: 0;\n padding-left: 0;\n list-style: none;\n }\n \n .reference-list li {\n margin-bottom: 8px;\n text-align: justify;\n font-size: 12pt;\n position: relative;\n padding-left: 20px;\n }\n \n .reference-list li:before {\n content: \"• \";\n position: absolute;\n left: 0;\n }\n</style>\n</head>\n<body>\n \n <div class=\"header\">\n <div>{{ $json.Faculty || 'ENGINEERING' }}</div>\n <div>{{ $json.Department || 'INDUSTRIAL AND PRODUCTION ENGINEERING' }}</div>\n </div>\n \n <div class=\"student-info\">\n <div class=\"field\">\n <span class=\"field-label\">Name:</span> {{ $json.Name }}\n </div>\n <div class=\"field\">\n <span class=\"field-label\">Course:</span> {{ $json.Course }}\n </div>\n <div class=\"field\">\n <span class=\"field-label\">Level:</span> {{ $json.Level }}\n </div>\n <div class=\"field\">\n <span class=\"field-label\">Matric No:</span> {{ $json['Matric No'] || $json['Reg No'] }}\n </div>\n <div class=\"field\">\n <span class=\"field-label\">Date:</span> {{ $json.Date }}\n </div>\n \n <div class=\"question-section\">\n <div class=\"question-title\">Question:</div>\n <ol class=\"question-list\">\n <li>State and explain briefly the various types of mathematical models</li>\n <li>Highlight the benefits of operation research (OR)</li>\n <li>Discuss the various applications of OR</li>\n <li>Enumerate and discuss briefly the classical aspect of science as acknowledged by OR</li>\n </ol>\n </div>\n </div>\n \n <div class=\"answer-section\">\n <div>\n <div class=\"answer-number\">1. State and explain briefly the various types of mathematical models</div>\n \n <div class=\"main-heading\">Types of mathematical models:</div>\n <ul class=\"bullet-list\">\n <li>Descriptive Models</li>\n <li>Predictive Models</li>\n <li>Prescriptive Models</li>\n <li>Deterministic Models</li>\n <li>Stochastic Models</li>\n <li>Static Models</li>\n <li>Dynamic Models</li>\n </ul>\n \n <div class=\"sub-heading\">Descriptive Models:</div>\n <div class=\"content-paragraph\">These models aim to describe a phenomenon or system without necessarily explaining its underlying causes or predicting future outcomes. Their purpose is to represent the current state or behavior based on existing data. For instance, a model depicting historical population growth trends illustrates current patterns. They summarize observations and help in understanding patterns, often serving as a foundation for more complex modeling efforts (Hillier & Lieberman, 2021). The output is typically a summary or visualization, allowing clearer insights into what has happened or is currently happening within the system. They are fundamental in fields like epidemiology, where models describe disease spread without forecasting future trajectories or proposing interventions.</div>\n \n <div class=\"sub-heading\">Predictive Models:</div>\n <div class=\"content-paragraph\">Unlike descriptive models, predictive models are designed to forecast future outcomes or states of a system based on historical data and identified relationships. They utilize statistical techniques or machine learning algorithms to identify patterns and extrapolate them. A weather forecasting model predicting rainfall amounts for the next week is a classic example. These models are crucial in various domains, from financial markets predicting stock prices to healthcare predicting disease outbreaks (Winston & Goldberg, 2014). The accuracy largely depends on the quality and relevance of input data and the robustness of underlying assumptions. They are instrumental for planning and risk assessment, allowing decision-makers to anticipate potential future scenarios.</div>\n \n <div class=\"sub-heading\">Prescriptive Models:</div>\n <div class=\"content-paragraph\">Prescriptive models go beyond describing or predicting; they recommend actions or decisions that will lead to an optimal outcome. They incorporate optimization techniques to suggest the best course of action under given constraints and objectives. For example, a supply chain optimization model determining the most efficient routing for delivery trucks to minimize fuel costs is a prescriptive model. These models are widely used in operations research, aiming to improve efficiency, reduce costs, or maximize profits (Taha, 2017). They often involve complex mathematical programming techniques like linear programming. The unique value of prescriptive models lies in their ability to provide actionable insights, guiding decision-making in complex environments.</div>\n \n <div class=\"sub-heading\">Deterministic Models:</div>\n <div class=\"content-paragraph\">In deterministic models, all input data and relationships are assumed to be known with certainty. Outcomes are entirely predictable given the inputs, meaning running the model multiple times with the same inputs will always yield the same results. A simple model calculating the total cost of producing units, where unit cost and production volume are fixed, is a deterministic model. These models are simpler to construct and analyze and are suitable when variability is negligible (Anderson et al., 2018). While they may not perfectly represent real-world complexities, they offer a good starting point for analysis and are effective for systems where randomness plays a minor role.</div>\n \n <div class=\"sub-heading\">Stochastic Models:</div>\n <div class=\"content-paragraph\">Conversely, stochastic models incorporate elements of randomness or uncertainty. They acknowledge that some inputs or parameters may vary unpredictably, often represented by probability distributions. Simulating customer wait times in a queuing system, where arrival rates and service times are random variables, would require a stochastic model. These models are more complex to analyze, often relying on simulation or probabilistic methods to understand the range of possible outcomes (Winston & Goldberg, 2014). They provide a more realistic representation of systems where variability is significant, such as financial modeling, risk assessment, and inventory management.</div>\n \n <div class=\"sub-heading\">Static Models:</div>\n <div class=\"content-paragraph\">Static models represent a system at a single point in time, without considering changes over time. They capture a snapshot of the system's state and relationships. An example would be a model calculating the optimal product mix for a factory for a single production period, assuming all inputs and outputs are constant during that period. These models are suitable for problems where time-dependent changes are not critical or where decisions are made at discrete intervals without cumulative effect.</div>\n \n <div class=\"sub-heading\">Dynamic Models:</div>\n <div class=\"content-paragraph\">Dynamic models, in contrast, consider how a system evolves over time. They incorporate time as a crucial variable, allowing for the analysis of system behavior and interactions across different periods. A model simulating the trajectory of a rocket over several minutes, accounting for changing forces and fuel consumption, is a dynamic model. These models are essential for understanding processes that are continuous or exhibit significant changes over time, such as economic forecasting, population dynamics, and control systems (Hillier & Lieberman, 2021). They often involve differential or difference equations to capture temporal relationships.</div>\n \n <div class=\"answer-number\">2. Highlight the benefits of operation research (OR)</div>\n \n <div class=\"main-heading\">Benefits of Operation Research (OR):</div>\n <ul class=\"bullet-list\">\n <li>Improved Decision Making</li>\n <li>Enhanced Efficiency and Productivity</li>\n <li>Cost Reduction</li>\n <li>Better Resource Allocation</li>\n <li>Effective Risk Management</li>\n <li>Strategic Planning Support</li>\n <li>Increased Competitiveness</li>\n </ul>\n \n <div class=\"sub-heading\">Improved Decision Making:</div>\n <div class=\"content-paragraph\">One of the foremost benefits of Operation Research (OR) is its ability to significantly enhance the quality of decision-making. OR employs scientific methods and mathematical models to analyze complex problems, providing decision-makers with objective, data-driven insights rather than relying solely on intuition or experience (Taha, 2017). By systematically evaluating alternatives and quantifying their potential outcomes, OR helps in identifying the most optimal course of action. This is particularly valuable in situations with numerous variables and conflicting objectives, where human cognitive limitations might hinder effective analysis. For example, in production planning, OR can determine optimal production schedules that meet demand while minimizing costs, leading to more informed and robust decisions.</div>\n \n <div class=\"sub-heading\">Enhanced Efficiency and Productivity:</div>\n <div class=\"content-paragraph\">OR methodologies are inherently designed to optimize processes, leading directly to enhanced efficiency and productivity within organizations. By identifying bottlenecks, streamlining workflows, and optimizing resource utilization, OR helps organizations achieve more with existing resources. Techniques such as queuing theory can optimize service systems to reduce customer wait times, while scheduling algorithms can improve the utilization of machines or personnel (Winston & Goldberg, 2014). This leads to smoother operations, faster throughput, and ultimately, higher overall productivity. In manufacturing, OR models can optimize assembly line layouts and material flow, significantly reducing idle time and increasing output.</div>\n \n <div class=\"sub-heading\">Cost Reduction:</div>\n <div class=\"content-paragraph\">A direct consequence of improved efficiency and optimized resource allocation is often substantial cost reduction. OR helps identify areas where costs can be minimized without compromising quality or service levels. This can involve optimizing inventory levels to reduce holding costs, designing efficient transportation routes to lower fuel expenses, or determining optimal staffing levels to minimize labor costs (Hillier & Lieberman, 2021). For instance, in logistics, an OR model might find the most cost-effective way to distribute products across a large geographical area, taking into account transportation costs, warehouse locations, and delivery times. Such cost savings directly contribute to an organization's profitability and financial health.</div>\n \n <div class=\"sub-heading\">Better Resource Allocation:</div>\n <div class=\"content-paragraph\">Organizations typically operate with finite resources, including capital, labor, materials, and time. OR provides powerful tools to allocate these limited resources in the most effective manner to achieve organizational goals. Linear programming, for instance, is a common OR technique used to determine the optimal allocation of resources to various activities or products to maximize profit or minimize cost under given constraints. This ensures that no resource is underutilized or overstretched, leading to optimal output (Anderson et al., 2018). In healthcare, OR can optimize the allocation of hospital beds, medical staff, and equipment to best serve patient needs, improving healthcare delivery.</div>\n \n <div class=\"sub-heading\">Effective Risk Management:</div>\n <div class=\"content-paragraph\">Many real-world problems involve uncertainty and risk. OR provides tools, such as simulation and decision analysis, to quantify and manage these risks. By modeling various scenarios and their probabilities, OR helps decision-makers understand the potential impact of different choices under uncertain conditions. This enables organizations to develop contingency plans and make more resilient decisions (Taha, 2017). For example, in financial portfolio management, OR models can assess the risk associated with different investment strategies, helping investors make choices that align with their risk tolerance. This proactive approach to risk ensures greater stability and predictability.</div>\n \n <div class=\"sub-heading\">Strategic Planning Support:</div>\n <div class=\"content-paragraph\">OR is not just about optimizing day-to-day operations; it also plays a crucial role in long-term strategic planning. By analyzing complex market dynamics, competitive landscapes, and future trends, OR models can help organizations formulate robust strategies. This includes decisions related to facility location, capacity expansion, new product development, and market entry strategies (Hillier & Lieberman, 2021). For example, an OR model could help a company decide the optimal location for a new distribution center by considering factors like transportation costs, labor availability, and proximity to customers. This strategic insight ensures sustainable growth and competitive advantage.</div>\n \n <div class=\"sub-heading\">Increased Competitiveness:</div>\n <div class=\"content-paragraph\">By enabling better decision-making, increasing efficiency, reducing costs, and optimizing resource allocation, OR ultimately leads to increased competitiveness. Organizations that leverage OR can respond more quickly and effectively to market changes, operate with leaner structures, and offer better products or services at lower prices. This superior operational capability translates into a stronger market position and the ability to outperform rivals (Winston & Goldberg, 2014). In a dynamic global economy, the ability to make data-driven, optimal decisions is a significant competitive differentiator.</div>\n \n <div class=\"answer-number\">3. Discuss the various applications of OR</div>\n \n <div class=\"content-paragraph\">Operations Research (OR) is a versatile discipline with extensive applications across virtually every sector, helping organizations of all sizes make better, more informed decisions and optimize their processes. Its quantitative approach to problem-solving makes it invaluable in complex scenarios where traditional methods fall short.</div>\n \n <div class=\"content-paragraph\">One prominent area of application is in Logistics and Supply Chain Management. OR models are widely used to optimize transportation networks, including vehicle routing, scheduling, and facility location. For example, the Traveling Salesperson Problem (TSP) is a classic OR problem fundamental to designing efficient delivery routes, minimizing fuel consumption, and reducing delivery times for companies like FedEx or Amazon (Taha, 2017). Inventory management is another critical aspect, where OR models help determine optimal stock levels to balance holding costs against potential stock-out costs, ensuring products are available when needed without excessive inventory. Furthermore, OR aids in supply chain design, optimizing the flow of goods from raw materials to end-consumers, enhancing resilience and responsiveness.</div>\n \n <div class=\"content-paragraph\">In Manufacturing and Production, OR plays a pivotal role in maximizing output and efficiency. Production planning and scheduling are key areas, where OR models determine the optimal sequence of tasks, machine assignments, and workforce allocation to meet production targets while minimizing idle time, setup costs, and overtime (Hillier & Lieberman, 2021). Capacity planning, factory layout design, and quality control are also significantly improved through OR techniques. For instance, linear programming can be used to determine the optimal product mix given resource constraints, ensuring maximum profit for manufacturers. By optimizing production processes, OR helps companies reduce waste, improve product quality, and accelerate time-to-market.</div>\n \n <div class=\"content-paragraph\">Healthcare has increasingly adopted OR to address its complex challenges, from patient flow management to resource allocation. OR models are used to optimize hospital bed assignments, surgical scheduling to improve operating room utilization, and emergency department patient triage to reduce wait times (Winston & Goldberg, 2014). In public health, OR assists in vaccination program planning, disease outbreak modeling, and resource distribution during crises. For example, OR can help determine optimal locations for clinics or pharmacies to serve a population efficiently. Furthermore, it contributes to optimizing blood bank inventory and organ transplantation logistics, saving lives and improving public health outcomes.</div>\n \n <div class=\"content-paragraph\">The Financial Services sector heavily relies on OR for risk assessment, portfolio optimization, and fraud detection. OR models help in constructing diversified investment portfolios that balance risk and return according to an investor's preferences (Anderson et al., 2018). Credit scoring models use OR techniques to assess the creditworthiness of loan applicants, while simulation models are employed to analyze market volatility and evaluate complex financial derivatives. Moreover, OR is crucial in asset liability management, ensuring financial institutions maintain liquidity and solvency. These applications provide banks and investment firms with a competitive edge by enabling more informed and robust financial decisions.</div>\n \n <div class=\"content-paragraph\">Beyond these core areas, OR finds applications in numerous other fields. In Energy, it optimizes power generation scheduling, grid management, and renewable energy integration. In Telecommunications, it helps design network layouts, optimize call routing, and manage bandwidth allocation. For Government and Public Policy, OR supports urban planning, emergency response system design, traffic management, and resource allocation for public services (Taha, 2017). In Marketing, it assists in customer segmentation, pricing strategies, and advertising campaign optimization. Even in Sports, OR is used for team selection, game strategy, and scheduling tournaments. The common thread across these diverse applications is the use of structured analytical methods to solve complex problems and make optimal decisions.</div>\n \n <div class=\"answer-number\">4. Enumerate and discuss briefly the classical aspect of science as acknowledged by OR</div>\n \n <div class=\"content-paragraph\">The field of Operations Research (OR) is often described as a scientific approach to decision-making, deeply rooted in the classical aspects of scientific methodology. These classical aspects provide the foundational principles upon which OR builds its analytical frameworks and problem-solving techniques. They emphasize a systematic, objective, and empirical approach to understanding and improving systems.</div>\n \n <div class=\"main-heading\">Classical aspects of science acknowledged by OR:</div>\n <ul class=\"bullet-list\">\n <li>Observation and Problem Definition</li>\n <li>Hypothesis Formulation and Model Construction</li>\n <li>Experimentation and Data Collection</li>\n <li>Analysis and Interpretation of Results</li>\n <li>Verification and Validation</li>\n <li>Implementation and Control</li>\n </ul>\n \n <div class=\"sub-heading\">Observation and Problem Definition:</div>\n <div class=\"content-paragraph\">The scientific method typically begins with careful observation of a phenomenon and the identification of a problem that requires a solution. In OR, this translates to thoroughly understanding the real-world situation or system being investigated. This phase involves extensive data gathering, discussions with stakeholders, and detailed analysis of operational procedures to accurately define the problem, identify its boundaries, objectives, and constraints (Hillier & Lieberman, 2021). A clear and precise problem definition is paramount, as a poorly defined problem will inevitably lead to an ineffective solution, regardless of the sophistication of the subsequent analysis. This initial step ensures that the OR effort addresses the right question.</div>\n \n <div class=\"sub-heading\">Hypothesis Formulation and Model Construction:</div>\n <div class=\"content-paragraph\">Once a problem is defined, the scientific process moves to formulating hypotheses—testable explanations or proposed solutions. In OR, this is analogous to constructing a mathematical model that represents the real-world system. This model is essentially a simplified, abstract representation of the system, capturing the essential relationships between its variables (Taha, 2017). For instance, a linear programming model might hypothesize that a certain allocation of resources will maximize profit. This step involves selecting appropriate mathematical techniques (e.g., equations, inequalities, algorithms) and defining objective functions and constraints based on the problem definition and observed data.</div>\n \n <div class=\"sub-heading\">Experimentation and Data Collection:</div>\n <div class=\"content-paragraph\">Traditional science often involves conducting experiments to test hypotheses and collect empirical data. In OR, \"experimentation\" often takes the form of collecting relevant data from the actual system, or in some cases, running simulations or pilot programs based on the constructed model. This data is critical for parameterizing the model and later validating its accuracy. The data must be reliable, accurate, and comprehensive to ensure the model's fidelity to the real-world system (Winston & Goldberg, 2014). For example, historical sales data might be collected to predict future demand, or operational logs to determine process times.</div>\n \n <div class=\"sub-heading\">Analysis and Interpretation of Results:</div>\n <div class=\"content-paragraph\">After data collection, the scientific method requires analyzing the collected data to interpret its meaning and draw conclusions regarding the hypotheses. In OR, this involves solving the mathematical model (e.g., using optimization algorithms, simulation software) to generate results. These results are then rigorously analyzed and interpreted in the context of the original problem. This stage involves understanding the implications of the model's output, identifying optimal solutions or patterns, and deriving actionable insights (Anderson et al., 2018). It's not enough to simply produce a number; the OR analyst must explain what that number means for the real-world system.</div>\n \n <div class=\"sub-heading\">Verification and Validation:</div>\n <div class=\"content-paragraph\">A crucial step in the scientific method is verifying that the experiment was conducted correctly and validating that the results are generalizable and accurate. In OR, verification ensures that the model correctly represents the problem as conceptualized (i.e., the model is built right), while validation checks if the model accurately predicts the real-world system's behavior (i.e., the right model is built for the problem). This often involves comparing model outputs with historical data, expert opinion, or real-world observations. Iterative refinement of the model is common during this stage until it adequately represents the system and provides reliable predictions or recommendations (Hillier & Lieberman, 2021).</div>\n \n <div class=\"sub-heading\">Implementation and Control:</div>\n <div class=\"content-paragraph\">The final classical aspect of science is applying the derived knowledge and controlling the process. In OR, this means putting the model's recommendations into practice within the real system. This stage involves significant change management, stakeholder engagement, and often requires adjustments to organizational processes and structures. Once implemented, continuous monitoring and control are essential to ensure that the solution remains effective as conditions change (Taha, 2017). This ongoing feedback loop allows for recalibration of the model or adjustments to the implemented solution, ensuring its sustained benefits and adapting to dynamic environments.</div>\n </div>\n \n <div class=\"reference-section\">\n <div class=\"reference-title\">Reference:</div>\n <ul class=\"reference-list\">\n <li>Anderson, D. R., Sweeney, D. J., Williams, T. A., Camm, J. D., & Cochran, J. J. (2018). An introduction to management science: Quantitative approaches to decision making. Cengage Learning.</li>\n <li>Hillier, F. S., & Lieberman, G. J. (2021). Introduction to operations research (11th ed.). McGraw-Hill Education.</li>\n <li>Taha, H. A. (2017). Operations research: An introduction (10th ed.). Pearson.</li>\n <li>Winston, W. L., & Goldberg, J. B. (2014). Operations research: Applications and algorithms (4th ed.). Cengage Learning.</li>\n </ul>\n </div>\n </div>\n \n</body>\n</html>\")\n\nmake sure you to trim: \"```html\" and \"```\" from your output" }, "promptType": "define" }, "typeVersion": 2.2 }, { "id": "c577ce90-3a28-4246-ab21-230a82262691", "name": "Student Query Intake Bot", "type": "n8n-nodes-base.telegramTrigger", "position": [ -3296, 800 ], "webhookId": "29442825-ffb8-4a8f-9d8e-fc1f193b0563", "parameters": { "updates": [ "message" ], "additionalFields": { "chatIds": "1026132948" } }, "credentials": { "telegramApi": { "id": "ftC5LfvbaRGuY26x", "name": "Telegram account 2" } }, "notesInFlow": false, "typeVersion": 1.2 }, { "id": "47ff42b4-615f-4648-8eba-f4520c1c6299", "name": "Student Assignment Auto-Composer", "type": "@n8n/n8n-nodes-langchain.agent", "position": [ -2768, 800 ], "parameters": { "text": "=Here’s your **final combined, single-block prompt** — clean, consistent, and ready to paste into n8n without breaks:\n\n---\n\nYou are an expert academic research assistant. Based on the provided student details and question, generate a comprehensive university-level assignment in valid JSON format that strictly follows the instructions below. The work must be plagiarism-free, original, and professionally formatted for academic standards.\n\nMessage: {{ $json.Name }} {{ $json.Faculty }} {{ $json.Department }} {{ $json.Level }} {{ $json.Course }} {{ $json['Reg number'] }} {{ $json.Question }} {{ $json.Date }}\n\nYou must output your response as valid JSON with the following structure:\n\n```json\n{\n \"Name\": \"{{ $json.Name }}[Student's full name - if not provided, use 'Student Name']\",\n \"Faculty\": \"{{ $json.Faculty }}[Faculty name - if not provided, use 'Faculty Name']\",\n \"Department\": \"{{ $json.Department }}[Department name - if not provided, use 'Department Name']\",\n \"Level\": \"{{ $json.Level }}[Academic level (e.g., 100L, 200L, etc.) - if not provided, use 'Academic Level']\",\n \"Course\": \"{{ $json.Course }}[Course code and title - if not provided, use 'Course Code & Title']\",\n \"Date\": \"{{ $json.Date }}[Assignment date - if not provided, use current date]\",\n \"Reg_number\": \"{{ $json['Reg number'] }}[Registration number - if not provided, use 'Registration Number']\",\n \"Questions\": \"{{ $json.Question }}[List all questions/topics exactly as provided, each clearly indented or bullet-listed]\",\n \"Answer\": \"[Comprehensive answers for each question following all rules below]\",\n \"References\": \"[List all sources cited in the answers in proper APA format, arranged alphabetically by author's surname]\"\n}\n```\n\nRules for the “Answer” field:\n\n1. Start with the question as a bold headline before its answer.\n2. If the question contains “list”, “highlight”, or “state”, first bullet-list all key points before discussing each one.\n3. State each point before discussion using the format:.\n4. Each question’s answer must be exactly 500 words and should start in a new paragraph.\n5. Use formal academic language, clear paragraph indentation, and smooth logical flow.\n6. All content must be 100% original. Use real APA in-text citations (Author, Year) from authentic, credible sources unless a specific source is provided.\n7. If {{ $json.Name }} changes, the content must significantly differ (examples, explanations, data) — not just rewording. Avoid repeating the same sentences, examples, or structure across different students.\n8. Use bullet points for lists and indent paragraphs like standard academic essays.\n9. Start each answer on a new paragraph.\n10. APA in-text citations only within answers — do not include full references in the answer.\n11. If any input data is missing, use the defined placeholders.\n\nRules for the “References” field:\n\n1. Only list sources actually cited in the answer.\n2. Use APA format with full bibliographic details.\n3. Arrange alphabetically by author’s surname.\n4. Do not duplicate references, even if used multiple times.\n\nStrict Compliance:\n\n* Validate the JSON output before returning it.\n* Follow all rules exactly without omission.\n* Ensure grammar, spelling, and punctuation are correct.\n* Every sentence must begin with a capital letter.\n* The text must read like it was written by a skilled human academic writer.\n* Do not duplicate references, even if used multiple times.\n*If the question contains “list”, “highlight”, or “state”, first bullet-list all key points before discussing each one\n* limit reference to maximum of 10\n\n\n---", "options": {}, "promptType": "define", "needsFallback": true, "hasOutputParser": true }, "typeVersion": 2.2 }, { "id": "01ece2d4-cdca-4f50-9ea8-87d9dc99a7b8", "name": "Generator Model", "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini", "position": [ -2928, 1024 ], "parameters": { "options": {} }, "credentials": { "googlePalmApi": { "id": "HiZT6lYHbHYeUyJw", "name": "Google Gemini(PaLM) Api account" } }, "typeVersion": 1 }, { "id": "7bc993f1-d86b-4cd8-a625-e4deb6b6553f", "name": "Fallback Model Generator", "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini", "position": [ -2752, 1040 ], "parameters": { "options": {}, "modelName": "models/gemma-3-27b-it" }, "credentials": { "googlePalmApi": { "id": "HiZT6lYHbHYeUyJw", "name": "Google Gemini(PaLM) Api account" } }, "typeVersion": 1 }, { "id": "acb10548-63e5-499d-8c5b-f4ee81ccb8f8", "name": "Handler For Structured Output Parser", "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini", "position": [ -2368, 1232 ], "parameters": { "options": {}, "modelName": "models/gemma-3-27b-it" }, "credentials": { "googlePalmApi": { "id": "yo5RlAQn2qHTmBcD", "name": "Google Gemini(PaLM) Api account 2" } }, "typeVersion": 1 }, { "id": "4d1687d1-dde4-46ee-b519-2f4878756500", "name": "Structured Output Parser", "type": "@n8n/n8n-nodes-langchain.outputParserStructured", "position": [ -2544, 1040 ], "parameters": { "prompt": "Instructions:\n--------------\n{instructions}\n--------------\nCompletion:\n--------------\n{completion}\n--------------\n\nAbove, the Completion did not satisfy the constraints given in the Instructions.\nError:\n--------------\n{error}\n--------------\n\nPlease try again. Please only respond with an answer that satisfies the constraints laid out in the Instructions.", "autoFix": true, "jsonSchemaExample": "{\n \"Name\": \"={{ $json.output_json.Name || $json.output_json.Name === '' ? $throwError('Missing required field: Name') : $json.output_json.Name }}\",\n \"Faculty\": \"={{ $json.output_json.Faculty || $json.output_json.Faculty === '' ? $throwError('Missing required field: Faculty') : $json.output_json.Faculty }}\",\n \"Department\": \"={{ $json.output_json.Department || $json.output_json.Department === '' ? $throwError('Missing required field: Department') : $json.output_json.Department }}\",\n \"Level\": \"={{ $json.output_json.Level || $json.output_json.Level === '' ? $throwError('Missing required field: Level') : $json.output_json.Level }}\",\n \"Course\": \"={{ $json.output_json.Course || $json.output_json.Course === '' ? $throwError('Missing required field: Course') : $json.output_json.Course }}\",\n \"Date\": \"={{ $json.output_json.Date || $json.output_json.Date === '' ? $now.format('yyyy-MM-dd') : $json.output_json.Date }}\",\n \"Matric_No\": \"={{ $json.output_json.Reg_number || $json.output_json.Reg_number === '' ? $throwError('Missing required field: Reg_number') : $json.output_json.Reg_number }}\",\n \"Questions\": \"={{ $json.output_json.Questions || $json.output_json.Questions === '' ? $throwError('Missing required field: Questions') : $json.output_json.Questions }}\",\n \"Answers\": \"={{ $json.output_json.Answer || $json.output_json.Answer === '' ? $throwError('Missing required field: Answer') : $json.output_json.Answer }}\",\n \"References\": \"={{ $json.output_json.References || $json.output_json.References === '' ? $throwError('Missing required field: References') : $json.output_json.References }}\"\n}\n", "customizeRetryPrompt": true }, "typeVersion": 1.3 }, { "id": "f65a7c91-d660-4722-a051-7a04a38c9ec0", "name": "Wait", "type": "n8n-nodes-base.wait", "position": [ -1824, 816 ], "webhookId": "cd9bc728-7d7a-4b0e-bfba-157b903299ac", "parameters": { "amount": 2 }, "typeVersion": 1.1 }, { "id": "e3f0d1bd-31d3-4fd1-867e-2097f778482f", "name": "Structured Data Parser", "type": "n8n-nodes-base.code", "position": [ -3056, 816 ], "parameters": { "jsCode": "const text = String($input.first().json.message.text ?? ''); // This line is still good\n\nconst data = {};\n\n// Use regular expressions to extract each field\ndata.Name = String(text.match(/Name:\\s*(.*)/)?.[1] ?? '').trim() || '';\ndata.Faculty = String(text.match(/Faculty:\\s*(.*)/)?.[1] ?? '').trim() || '';\ndata.Department = String(text.match(/Department:\\s*(.*)/)?.[1] ?? '').trim() || '';\ndata.Level = String(text.match(/Level:\\s*(.*)/)?.[1] ?? '').trim() || '';\ndata.Course = String(text.match(/Course:\\s*(.*)/)?.[1] ?? '').trim() || '';\ndata['Reg number'] = String(text.match(/Reg number:\\s*(.*)/)?.[1] ?? '').trim() || '';\n// --- Change the date to use the current date ---\nconst today = new Date();\nconst formattedDate = today.getFullYear() + '-' +\n (today.getMonth() + 1).toString().padStart(2, '0') + '-' +\n today.getDate().toString().padStart(2, '0');\ndata.Date = formattedDate;\ndata.Question = String(text.match(/Question:\\s*(.*)/s)?.[1] ?? '').trim() || '';\ndata.Answer = String(text.match(/Answer:\\s*(.*)/s)?.[1] ?? '').trim() || '';\n\nreturn [{ json: data }];" }, "typeVersion": 2 }, { "id": "5f350d97-ebac-4b97-ac4d-a07c2ecac4e8", "name": "HTTP Request", "type": "n8n-nodes-base.httpRequest", "position": [ -848, 800 ], "parameters": { "url": "https://api.pdfcrowd.com/convert/24.04", "method": "POST", "options": { "response": { "response": { "responseFormat": "file", "outputPropertyName": "={{ $('Long Essay Record Sheet').item.json.Name }}" } } }, "sendBody": true, "contentType": "form-urlencoded", "sendHeaders": true, "bodyParameters": { "parameters": [ { "name": "content_viewport_width", "value": "balanced" }, { "name": "text", "value": "={{ $json.output }}" }, { "name": "output_name", "value": "={{ $('Long Essay Record Sheet').item.json.Name }}" } ] }, "headerParameters": { "parameters": [ { "name": "authorization", "value": "Basic U2hpZWxkbjhuOmY0N2I5MDg2ZDk1ZjFkY2U3N2VlNmZmNWNjMjkxYzJi" } ] } }, "typeVersion": 4.2 }, { "id": "915c5f84-ddfc-4cb3-8cfe-05ada749144d", "name": "Upload file", "type": "n8n-nodes-base.googleDrive", "position": [ -608, 800 ], "parameters": { "name": "={{ $('Long Essay Record Sheet').item.json.Name }}", "driveId": { "__rl": true, "mode": "list", "value": "My Drive" }, "options": {}, "folderId": { "__rl": true, "mode": "list", "value": "19NcIfmmdjN6VRkl9TxoqWMflm-2A3Y9y", "cachedResultUrl": "https://drive.google.com/drive/folders/19NcIfmmdjN6VRkl9TxoqWMflm-2A3Y9y", "cachedResultName": "Long Essay" }, "inputDataFieldName": "=Nicholas Ahuruezenma Chikadibia" }, "credentials": { "googleDriveOAuth2Api": { "id": "sAUajRPHvH2exSmb", "name": "Google Drive account" } }, "typeVersion": 3 }, { "id": "920cfd28-2698-4880-8206-2169e23fadd3", "name": "Send a text message", "type": "n8n-nodes-base.telegram", "position": [ -432, 800 ], "webhookId": "e9ddcc0f-3d45-4c5e-94a6-8b583ca2253e", "parameters": { "text": "={{ $json.webViewLink }}", "chatId": "1026132948", "additionalFields": { "appendAttribution": false, "disable_notification": false } }, "credentials": { "telegramApi": { "id": "ftC5LfvbaRGuY26x", "name": "Telegram account 2" } }, "notesInFlow": true, "retryOnFail": true, "typeVersion": 1.2, "alwaysOutputData": true }, { "id": "ebc7aa46-bd02-4bc2-acaf-4ea74aa2af5e", "name": "Error Handler", "type": "n8n-nodes-base.code", "position": [ -2096, 800 ], "parameters": { "jsCode": "// This handler is designed to fix the \"text.trim is not a function\" error.\n// It checks if the item's 'text' property is a string before trimming.\n// If it's not a string (e.g., null, a number, or an object), it converts it.\n\n// Get the item that caused the error\nconst errorItem = $input.item;\n\n// Assume the problematic key is named 'text'. You may need to change this!\nconst problematicKey = 'text';\n\n// Get the value from the item\nlet valueToFix = errorItem.json[problematicKey];\n\n// Check if the value is not a string\n// This is the core of the fix!\nif (typeof valueToFix !== 'string') {\n console.warn(`Value for key '${problematicKey}' is not a string. Type: ${typeof valueToFix}. Converting to string.`);\n // Convert the value to a string to prevent the error\n valueToFix = String(valueToFix);\n}\n\n// Now that we're sure it's a string, we can safely trim it.\nconst correctedValue = valueToFix.trim();\n\n// Put the corrected value back into the item\nerrorItem.json[problematicKey] = correctedValue;\n\n// Log the successful correction\nconsole.log(`Successfully fixed and trimmed '${problematicKey}' for item:`, errorItem.json.Name);\n\n// Output the corrected item to the 'Success' output\nreturn [{ json: errorItem.json }];\n" }, "typeVersion": 2 }, { "id": "90f1a2cc-6e84-4da0-9ba5-a1d94102c6a8", "name": "Sticky Note1", "type": "n8n-nodes-base.stickyNote", "position": [ -3952, -1616 ], "parameters": { "color": 5, "width": 2112, "height": 3728, "content": "# AI-Powered Academic Assignment Generator\n\nThis n8n workflow template automates the complete academic assignment generation process from student queries to professional document delivery. Students submit assignment requests via Telegram, and the workflow generates comprehensive, plagiarism-free academic content using Google Gemini AI, formats it into professional PDF documents, and delivers downloadable links while maintaining complete records.\n\n## What does this workflow do?\n\n- **📱 Telegram Integration**: Receives structured assignment requests from students\n- **🤖 AI Content Generation**: Creates comprehensive academic answers (500+ words per question)\n- **📄 Professional Formatting**: Generates university-standard HTML/PDF documents\n- **☁️ Cloud Storage**: Automatically stores files in organized Google Drive folders\n- **📊 Record Keeping**: Maintains complete assignment database in Google Sheets\n- **🔄 End-to-End Automation**: Complete pipeline from query to document delivery\n\n## How it works\n\nThe workflow processes student assignment requests through 16 interconnected nodes, handling everything from input parsing to final document delivery:\n\n**Input** → **AI Processing** → **Document Generation** → **Storage & Delivery**\n\n## Setup Requirements\n\n### Credentials needed:\n- **Telegram Bot Token** (for receiving/sending messages)\n- **Google Gemini API Key** (for AI content generation) \n- **Google Sheets API** (for record keeping)\n- **Google Drive API** (for file storage)\n- **PDFCrowd API** (for PDF conversion)\n\n### Pre-setup steps:\n1. Create a Telegram bot and obtain the bot token\n2. Set up Google Drive folder structure for file organization\n3. Create Google Sheets template with proper column headers\n4. Configure API rate limits and usage quotas\n\n## Workflow Breakdown\n\n### 🔌 Input Processing Nodes\n\n**Student Query Intake Bot** (Telegram Trigger)\n**Student Query Intake Bot** (Telegram Trigger)\n- Listens for incoming student messages with assignment details\n- Monitors specific chat ID for authorized users\n- Triggers workflow when structured assignment requests are received\n\n**Structured Data Parser** (Code Node)\n- Extracts student information using regex patterns\n- Parses: Name, Faculty, Department, Level, Course, Registration Number\n- Automatically sets current date and handles missing data\n- Outputs clean JSON structure for AI processing\n\n### 🤖 AI Processing Nodes\n\n**Student Assignment Auto-Composer** (LangChain Agent)\n- Main AI orchestrator for assignment generation\n- Uses structured prompts for consistent academic formatting\n- Generates 500-word answers per question with APA citations\n- Ensures plagiarism-free, original academic content\n\n**Generator Model** (Google Gemini Chat)\n- Primary AI model for high-quality content generation\n- Handles complex academic writing and formatting requirements\n\n**Fallback Model Generator** (Google Gemini - Gemma)\n- Backup AI model ensuring workflow reliability\n- Activates when primary model encounters issues\n\n**Structured Output Parser** (LangChain)\n- Validates AI-generated content against JSON schema\n- Enforces required field compliance and format consistency\n- Auto-fixes common formatting issues\n\n### 🔧 Processing & Error Handling\n\n**Error Handler** (Code Node)\n- Handles text processing errors and data type issues\n- Converts non-string values and provides error recovery\n- Ensures workflow continuity even with problematic data\n\n**Wait Node**\n- Introduces strategic 2-second delay for processing stability\n- Allows AI processing to complete before next steps\n\n### 📊 Data Management Nodes\n\n**Edit Fields** (Set Node)\n- Maps AI output to Google Sheets column structure\n- Ensures data consistency for database storage\n\n**Long Essay Record Sheet** (Google Sheets)\n- Stores complete assignment records with metadata\n- Maintains comprehensive student assignment database\n- Uses Name field as unique identifier for record updates\n\n### 📄 Document Generation Nodes\n\n**Static HTML Builder** (LangChain Agent)\n- Converts structured data into professional HTML documents\n- Applies academic formatting: Times New Roman, 12pt, double-spaced\n- Creates university-standard document structure\n\n**HTTP Request** (PDF Conversion)\n- Converts HTML to high-quality PDF using PDFCrowd API\n- Maintains academic formatting and professional appearance\n- Uses student name for file identification\n\n### ☁️ Storage & Delivery Nodes\n\n**Upload File** (Google Drive)\n- Stores generated PDFs in organized Drive folders\n- Creates shareable links for easy access\n- Maintains systematic file organization\n\n**Send Text Message** (Telegram)\n- Delivers Google Drive download link to student\n- Completes the automation cycle with instant access\n\n## Input Format\n\nStudents should format their Telegram messages as follows:\n\n```\nName: John Doe\nFaculty: Engineering \nDepartment: Computer Science\nLevel: 200L\nCourse: CSC 201 - Data Structures\nReg number: 2024001234\n\nQuestion:\n1. Explain the concept of Big O notation\n2. Compare different sorting algorithms\n3. Discuss the applications of binary trees\n```\n\n## Features\n\n### ✨ Intelligent Processing\n- **Smart Input Parsing**: Handles unstructured text inputs automatically\n- **Multi-Question Support**: Processes complex assignment requirements\n- **Data Validation**: Ensures complete and accurate information capture\n\n### 🎓 Academic Excellence \n- **University Standards**: Professional formatting and citation styles\n- **Original Content**: Plagiarism-free AI-generated assignments\n- **Comprehensive Answers**: 500+ words per question with detailed explanations\n\n### 🛡️ Reliability & Error Handling\n- **Fallback Systems**: Multiple AI models for continuous operation\n- **Error Recovery**: Automatic handling of processing issues\n- **Data Integrity**: Schema validation and field verification\n\n## Use Cases\n\nThis workflow template is perfect for:\n\n- **📚 Educational Institutions**: Automate student assignment processing and grading assistance\n- **👨🎓 Academic Support Services**: Provide structured learning assistance and content generation \n- **🏫 Online Learning Platforms**: Integrate assignment automation into educational systems\n- **📝 Content Creation Services**: Generate academic-quality content for educational purposes\n- **🤖 AI Learning Projects**: Implement complex AI workflows with multiple service integrations\n\n## Output Examples\n\n### Generated Assignment Features:\n- **Professional formatting** with Times New Roman, 12pt font, double-spacing\n- **Complete academic structure** including headers, student information, questions, and references \n- **Comprehensive answers** averaging 500+ words per question with detailed explanations\n- **Proper citations** in APA format with authentic academic references\n- **PDF delivery** through shareable Google Drive links\n\n### Database Records:\n- Complete student information tracking\n- Assignment question and answer storage \n- Timestamp and metadata preservation\n- Easy retrieval and analysis capabilities\n\n## Performance & Reliability\n\n**Processing Time**: 2-3 minutes per assignment \n**Success Rate**: >95% with fallback mechanisms \n**Content Quality**: University-standard academic writing \n**Scalability**: Handles multiple concurrent requests \n**Error Recovery**: Automatic retry and alternative processing paths\n\n## Customization Options\n\n### Easily configurable elements:\n- **Chat IDs**: Modify for different Telegram groups or users\n- **AI Models**: Switch between different Google Gemini models\n- **Document Formatting**: Adjust academic standards and styling\n- **Storage Locations**: Configure Google Drive folders and naming conventions\n- **Database Fields**: Modify Google Sheets columns and data structure\n\n### Advanced customizations:\n- Add support for different document formats (Word, LaTeX)\n- Integrate additional AI providers (OpenAI, Claude, etc.)\n- Implement grading and feedback mechanisms\n- Add multi-language support\n- Create batch processing capabilities\n\n## Getting Started\n\n1. **Import the workflow** into your n8n instance\n2. **Configure credentials** for all required services\n3. **Set up Telegram bot** and obtain necessary permissions\n4. **Create Google Drive folders** and Google Sheets template\n5. **Test with sample data** to ensure proper functionality\n6. **Deploy and monitor** for production use\n\n## Tags\n\n`academic` `education` `ai` `telegram` `google-sheets` `pdf-generation` `automation` `langchain` `assignment` `student-support`" }, "typeVersion": 1 }, { "id": "96e057a8-ecd9-4b12-b098-1136c0cadf4d", "name": "Edit Fields", "type": "n8n-nodes-base.set", "position": [ -1568, 800 ], "parameters": { "options": {}, "assignments": { "assignments": [ { "id": "a368a8ae-4901-4f9c-81e9-13bced66199c", "name": "output.Faculty", "type": "string", "value": "={{ $json.output.Faculty }}" }, { "id": "d5af6a53-50b7-4137-b9f8-b8d6d745fc43", "name": "output.Department", "type": "string", "value": "={{ $json.output.Department }}" }, { "id": "82e332ce-68e5-4823-95f2-5e4008eee3be", "name": "output.Name", "type": "string", "value": "={{ $json.output.Name }}" }, { "id": "18b2cda0-410c-4a77-b48b-bd6414b837b8", "name": "output.Matric_No", "type": "string", "value": "={{ $json.output.Matric_No }}" }, { "id": "f8741f4d-cd3f-4eac-912b-28cce1820c35", "name": "output.Level", "type": "string", "value": "={{ $json.output.Level }}" }, { "id": "dd22c755-9ded-4677-a4ec-34726fa5d0e6", "name": "output.Course", "type": "string", "value": "={{ $json.output.Course }}" }, { "id": "9798a46e-ef1b-4304-87d6-4c6b98f1035d", "name": "output.Date", "type": "string", "value": "={{ $json.output.Date }}" }, { "id": "5ad70b94-e782-47c6-b338-8d8e197cd21b", "name": "output.Questions", "type": "string", "value": "={{ $json.output.Questions }}" }, { "id": "9d0ef742-958c-4227-afe7-05d996c07914", "name": "output.Answers", "type": "string", "value": "={{ $json.output.Answers }}" }, { "id": "e5e2513e-a08f-4444-a9dd-41cab32f70f7", "name": "output.References", "type": "string", "value": "={{ $json.output.References }}" } ] } }, "typeVersion": 3.4 }, { "id": "070decb1-85ea-4e49-9427-3ca28e15d2d5", "name": "Long Essay Record Sheet", "type": "n8n-nodes-base.googleSheets", "position": [ -1376, 800 ], "parameters": { "columns": { "value": { "Date": "={{ $json.output.Date }}", "Name": "={{ $json.output.Name }}", "Level": "={{ $json.output.Level }}", "Answer": "={{ $json.output.Answers }}", "Course": "={{ $json.output.Course }}", "Reg No": "={{ $json.output.Matric_No }}", "Faculty": "={{ $json.output.Faculty }}", "Question": "={{ $json.output.Questions }}", "Reference": "={{ $json.output.References }}", "Department": "={{ $json.output.Department }}" }, "schema": [ { "id": "Name", "type": "string", "display": true, "removed": false, "required": false, "displayName": "Name", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "Faculty", "type": "string", "display": true, "required": false, "displayName": "Faculty", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "Department", "type": "string", "display": true, "required": false, "displayName": "Department", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "Level", "type": "string", "display": true, "required": false, "displayName": "Level", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "Course", "type": "string", "display": true, "required": false, "displayName": "Course", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "Date", "type": "string", "display": true, "required": false, "displayName": "Date", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "Reg No", "type": "string", "display": true, "required": false, "displayName": "Reg No", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "Question", "type": "string", "display": true, "required": false, "displayName": "Question", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "Answer", "type": "string", "display": true, "required": false, "displayName": "Answer", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "Reference", "type": "string", "display": true, "required": false, "displayName": "Reference", "defaultMatch": false, "canBeUsedToMatch": true } ], "mappingMode": "defineBelow", "matchingColumns": [ "Name" ], "attemptToConvertTypes": false, "convertFieldsToString": false }, "options": {}, "operation": "appendOrUpdate", "sheetName": { "__rl": true, "mode": "list", "value": "gid=0", "cachedResultUrl": "https://docs.google.com/spreadsheets/d/12DdWyAcInPhwfvnKepg0t0vbDpD1u37vl6DJd0yJkWw/edit#gid=0", "cachedResultName": "Sheet1" }, "documentId": { "__rl": true, "mode": "list", "value": "12DdWyAcInPhwfvnKepg0t0vbDpD1u37vl6DJd0yJkWw", "cachedResultUrl": "https://docs.google.com/spreadsheets/d/12DdWyAcInPhwfvnKepg0t0vbDpD1u37vl6DJd0yJkWw/edit?usp=drivesdk", "cachedResultName": "Nipco" } }, "credentials": { "googleSheetsOAuth2Api": { "id": "S19zSb8SkObHmqg0", "name": "Google Sheets account" } }, "typeVersion": 4.6 } ], "active": true, "pinData": { "Student Query Intake Bot": [ { "json": { "message": { "chat": { "id": 1026132948, "type": "private", "username": "Davidgaso1", "last_name": "Galoon #500🌱SEED", "first_name": "Flash ~" }, "date": 1754546971, "from": { "id": 1026132948, "is_bot": false, "username": "Davidgaso1", "last_name": "Galoon #500🌱SEED", "first_name": "Flash ~", "language_code": "en" }, "text": "Name: Nicholas Ahuruezenma Chikadibia \nFaculty: engineering\nDepartment: industrial And production engineering \nLevel: 100l\nCourse: IPE 102\nDate:\nReg number: 2024374076\n\nQuestion:\n1. State and explain briefly the various types of mathematical models\n2. Highlight the benefits of operation research (OR)\n3. Discuss the various applications of OR\n4. Enumerate and discuss briefly the classical aspect of science as acknowledged by OR", "entities": [ { "type": "phone_number", "length": 10, "offset": 157 } ], "message_id": 240 }, "update_id": 656070565 } } ] }, "settings": { "executionOrder": "v1" }, "versionId": "7d8b4a43-d39d-4321-8e7b-52a420f9571d", "connections": { "Wait": { "main": [ [ { "node": "Edit Fields", "type": "main", "index": 0 } ] ] }, "Edit Fields": { "main": [ [ { "node": "Long Essay Record Sheet", "type": "main", "index": 0 } ] ] }, "Upload file": { "main": [ [ { "node": "Send a text message", "type": "main", "index": 0 } ] ] }, "HTTP Request": { "main": [ [ { "node": "Upload file", "type": "main", "index": 0 } ] ] }, "Error Handler": { "main": [ [ { "node": "Wait", "type": "main", "index": 0 } ] ] }, "Generator Model": { "ai_languageModel": [ [ { "node": "Student Assignment Auto-Composer", "type": "ai_languageModel", "index": 0 } ] ] }, "Static Html Builder": { "main": [ [ { "node": "HTTP Request", "type": "main", "index": 0 } ] ] }, "Structured Data Parser": { "main": [ [ { "node": "Student Assignment Auto-Composer", "type": "main", "index": 0 } ] ] }, "Long Essay Record Sheet": { "main": [ [ { "node": "Static Html Builder", "type": "main", "index": 0 } ] ] }, "Fallback Model Generator": { "ai_languageModel": [ [ { "node": "Student Assignment Auto-Composer", "type": "ai_languageModel", "index": 1 } ] ] }, "Structured Output Parser": { "ai_outputParser": [ [ { "node": "Student Assignment Auto-Composer", "type": "ai_outputParser", "index": 0 } ] ] }, "Student Query Intake Bot": { "main": [ [ { "node": "Structured Data Parser", "type": "main", "index": 0 } ] ] }, "Google Gemini Chat Model6": { "ai_languageModel": [ [ { "node": "Static Html Builder", "type": "ai_languageModel", "index": 0 } ] ] }, "Student Assignment Auto-Composer": { "main": [ [ { "node": "Error Handler", "type": "main", "index": 0 } ] ] }, "Handler For Structured Output Parser": { "ai_languageModel": [ [ { "node": "Structured Output Parser", "type": "ai_languageModel", "index": 0 } ] ] } } }
Streamline your social media content creation using Google Gemini and OpenAI GPT. This automation generates tailored posts for Facebook, Instagram, and LinkedIn, perfect for social media managers looking to enhance engagement. Requires 9 accounts, including Google Palm API and OpenAI API. Save over 10 hours each week by automating content generation and posting, ensuring a consistent online presence.
Generate engaging videos using OpenAI GPT and Blotato, then automatically upload them to TikTok, YouTube, and Instagram. This workflow is ideal for data management professionals looking to streamline video marketing efforts. Requires 3 accounts: Google Sheets OAuth, OpenAI API, and Blotato API. Save hours of manual video creation and reach your audience effortlessly with high-quality content.
Automate video creation with Google Veo3 and seamlessly upload to YouTube using the Google Drive API and Google Sheets API. This workflow is perfect for data management professionals looking to streamline content production. Requires 3 accounts: Google Sheets OAuth, Google Drive OAuth, and OpenAI API key. Save hours of manual video creation and enhance your productivity with AI-driven insights.
Automate short-form video generation using OpenAI GPT, Flux, and ElevenLabs, then seamlessly upload to social networks. Perfect for team collaboration, this workflow requires 4 accounts, including OpenAI API Key and Google Drive OAuth. Save hours on video editing and content distribution while boosting engagement across platforms.
Configure credentials and update service-specific settings before executing the workflow. Review required credentials in the Technical Details section above.