{"meta":{"instanceId":"workflow-ca4dec31","versionId":"1.0.0","createdAt":"2025-09-29T07:07:42.096775","updatedAt":"2025-09-29T07:07:42.096789","owner":"n8n-user","license":"MIT","category":"automation","status":"active","priority":"high","environment":"production"},"nodes":[{"id":"trigger-ad41a943","name":"Manual Trigger","type":"n8n-nodes-base.manualTrigger","typeVersion":1,"position":[100,100],"parameters":{}},{"id":"ed5363cf-1fb6-4662-b12c-073b2b3a3576","name":"When chat message received","type":"n8n-nodes-base.noOp","position":[-240,140],"webhookId":"ebe97b63-ae4b-40e7-9738-b7cf7ffbc8b6","parameters":{"options":{}},"typeVersion":1,"notes":"This chatTrigger node performs automated tasks as part of the workflow."},{"id":"e47a166f-3e70-433e-ad0d-2100309cac92","name":"Google Gemini Chat Model","type":"n8n-nodes-base.noOp","position":[-60,500],"parameters":{"options":{"topP":1},"modelName":"models/gemini-2.0-flash-lite"},"credentials":{"googlePalmApi":{"id":"Xp5T9q3YYxBIw2nd","name":"Google Gemini(PaLM) Api account✅"}},"typeVersion":1,"notes":"This lmChatGoogleGemini node performs automated tasks as part of the workflow."},{"id":"5474805f-8d18-4a09-a3ea-5602af97a5de","name":"Auto-fixing Output Parser","type":"n8n-nodes-base.noOp","position":[500,360],"parameters":{"options":{}},"typeVersion":1,"notes":"This outputParserAutofixing node performs automated tasks as part of the workflow."},{"id":"d9a0eadc-54c7-4980-b4f8-79fd77627c32","name":"Structured Output Parser","type":"n8n-nodes-base.noOp","position":[600,520],"parameters":{"jsonSchemaExample":"{\n\t\"name\": \"Name of the prompt\",\n    \"category\" : \"the prompt category\"\n}"},"typeVersion":1,"notes":"This outputParserStructured node performs automated tasks as part of the workflow."},{"id":"898f64cd-2332-42ad-9bac-a817dd9bf3d7","name":"Edit Fields","type":"n8n-nodes-base.set","position":[220,140],"parameters":{"options":{},"assignments":{"assignments":[{"id":"9c5fec90-b7f0-45f3-81a3-22e0956fc3bf","name":"text","type":"string","value":"={{ $json.text }}"}]}},"typeVersion":3.4,"notes":"This set node performs automated tasks as part of the workflow."},{"id":"4bbd160a-98bd-4622-a54e-77b61ff91b46","name":"Google Gemini Chat Model1","type":"n8n-nodes-base.noOp","position":[380,540],"parameters":{"options":{"topP":1},"modelName":"models/gemini-2.0-flash-lite"},"credentials":{"googlePalmApi":{"id":"Xp5T9q3YYxBIw2nd","name":"Google Gemini(PaLM) Api account✅"}},"typeVersion":1,"notes":"This lmChatGoogleGemini node performs automated tasks as part of the workflow."},{"id":"f45cbed4-c2b8-4f1b-8026-4686324a714a","name":"Return results","type":"n8n-nodes-base.set","position":[960,140],"parameters":{"options":{},"assignments":{"assignments":[{"id":"40aba86b-57b7-4c74-8e9f-d09cd2f344c5","name":"text","type":"string","value":"={{ $('Generate a new prompt').item.json.text }}"}]}},"typeVersion":3.4,"notes":"This set node performs automated tasks as part of the workflow."},{"id":"25650ec5-b559-4bfc-a95a-f81c674bc680","name":"Categorize and name Prompt","type":"n8n-nodes-base.noOp","position":[360,140],"parameters":{"text":"={{ $json.text }}","messages":{"messageValues":[{"message":"=Categorize the above prompt into a category that it can fall into"}]},"promptType":"define","hasOutputParser":true},"typeVersion":1,"notes":"This chainLlm node performs automated tasks as part of the workflow."},{"id":"c324d952-0722-40aa-981c-fcb2007b43b9","name":"set prompt fields","type":"n8n-nodes-base.set","position":[660,140],"parameters":{"options":{},"assignments":{"assignments":[{"id":"cbf3b587-67fd-4f08-b50f-53561e869827","name":"name","type":"string","value":"={{ $json.output.name }}"},{"id":"7fda5833-9a3b-4c8a-b18d-4c31b35dae94","name":"category","type":"string","value":"={{ $json.output.category }}"},{"id":"50f06ab3-97d5-43cb-83ff-1a6aac45251b","name":"Prompt","type":"string","value":"={{ $('Edit Fields').item.json.text }}"}]}},"typeVersion":3.4,"notes":"This set node performs automated tasks as part of the workflow."},{"id":"97ad8d84-141e-4c21-8ce4-930dbe921f76","name":"add to airtable","type":"n8n-nodes-base.airtable","position":[800,140],"parameters":{"base":{"__rl":true,"mode":"list","value":"app994hU3fOw0ssrx","cachedResultUrl":"{{ $env.WEBHOOK_URL }}","cachedResultName":"Prompt Library"},"table":{"__rl":true,"mode":"list","value":"tbldwJrCK2HmAeknA","cachedResultUrl":"{{ $env.WEBHOOK_URL }}","cachedResultName":"Prompt Library"},"columns":{"value":{"Name":"={{ $json.name }}","Prompt":"={{ $json.Prompt }}","Category":"={{ $json.category }}"},"schema":[{"id":"Name","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Name","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Prompt","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Prompt","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Created ON","type":"string","display":true,"removed":true,"readOnly":true,"required":false,"displayName":"Created ON","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Updated","type":"string","display":true,"removed":true,"readOnly":true,"required":false,"displayName":"Updated","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Category","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Category","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":[],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"create"},"credentials":{"airtableTokenApi":{"id":"CAa937hASXcJZWTv","name":"Airtable Personal Access Token account✅"}},"typeVersion":2.1,"notes":"This airtable node performs automated tasks as part of the workflow."},{"id":"516dc434-25d9-4011-9453-bb28521823ca","name":"Generate a new prompt","type":"n8n-nodes-base.noOp","position":[-80,140],"parameters":{"messages":{"messageValues":[{"message":"=You are an **expert n8n prompt engineer**, specializing in creating highly optimized, context-aware prompts for AI agents in n8n workflows. Your primary goal is to ensure AI agents execute well-defined tasks **accurately, autonomously, and efficiently**.  \n\n### Instructions  \n1. **Define the AI Agent's Role and Rules**  \n   - Use a structured role definition format:  \n     `\"You are a [SPECIFIC ROLE] working for [SPECIFIC BUSINESS CONTEXT].\"`  \n   - Clearly specify the agent's responsibilities and scope.  \n\n2. **Provide Task Instructions**  \n   - Use a **step-by-step** numbered list to outline the process.  \n   - Ensure the instructions allow for flexibility but prevent errors.  \n\n3. **Set Rules to Guide AI Behavior**  \n   - Enumerate key constraints such as:  \n     - Timezone requirements  \n     - Prohibitions on making assumptions  \n     - Required formatting for responses  \n\n4. **Use Few-Shot Prompting**  \n   - Provide clear examples of desired outputs inside `<example>` tags.  \n\n5. **Include Additional Context**  \n   - Define relevant business details, the current date/time, and any required environmental context.  \n\n---\n\n## Input Layer  \n### Structuring User Inputs  \n1. **Define Input Type**  \n   - Specify whether inputs come from a human user (chat-based) or an external system (API calls).  \n\n2. **Handle Dynamic Inputs**  \n   - Use placeholders (e.g., `{customer_name}`, `{appointment_date}`) for adaptable prompts.  \n\n3. **Ensure Personalization**  \n   - Format prompts naturally while maintaining clarity and specificity.  \n\n4. **Merge Static & Dynamic Data**  \n   - Concatenate fixed prompt structures with real-time system data from n8n.  \n\n---\n## Action Layer  \n### Tool and Function Calling  \n1. **Standardized Tool Naming**  \n   - Use `snake_case` names for tools (e.g., `check_calendar_availability`).  \n\n2. **Provide Clear Tool Descriptions**  \n   - Example:  \n     `\"Use the `fetch_customer_data` tool to retrieve details about a specific user based on their email address.\"`  \n\n3. **Specify Tool Parameters & Expected Responses**  \n   - Define required inputs, expected formats, and error handling strategies.  \n\n4. **Avoid Hallucinations**  \n   - AI should **only** use tools for their defined purposes. If information is missing, request clarification instead of guessing.  \n\n---\n## Example Prompt for an AI Agent in n8n  \n\n```yaml\n# System Layer\n## Role\nYou are a **Scheduling Assistant** working for a **beauty salon**. Your role is to help customers book appointments.  \n\n## Instructions\n1. Ask the user for their preferred appointment date.  \n2. Use `check_calendar_availability` to find open slots.  \n3. If no slots are available, ask the user to select another day.  \n4. Capture the user’s **full name** and **email**.  \n5. Use `create_calendar_appointment` to confirm the booking.  \n6. Notify the user with appointment details.  \n\n## Rules\n- Always use **UTC+1 timezone**.  \n- Do not assume details—ask if unsure.  \n- If asked about non-scheduling topics, respond: `\"I can only assist with booking appointments.\"`  \n\n## Few-shot Example  \n<example>\n\"I have successfully booked your appointment:\n- Date & Time: **Wednesday, 15 March 2025, 14:00 (UTC+1)**\n- Booking Email: **jane.doe@example.com**\nIf you need to cancel, please call +49 123 456 789.\"\n</example>\n```\n---\n## Key Considerations  \n✅ **Avoid vague roles** (e.g., \"You are an assistant\"). Always specify **business context**.  \n✅ **Keep task steps structured** but flexible.  \n✅ **Provide explicit tool instructions** in a separate section.  \n✅ **Enable AI to ask clarifying questions** instead of making assumptions.  \n✅ **Use examples to guide expected outputs.**  \n\n\n"}]}},"typeVersion":1,"notes":"This chainLlm node performs automated tasks as part of the workflow."},{"id":"error-f9af875b","name":"Error Handler","type":"n8n-nodes-base.stopAndError","typeVersion":1,"position":[1000,400],"parameters":{"message":"Workflow execution error","options":{}}}],"connections":{"Google Gemini Chat Model":{"main":[[]]},"Google Gemini Chat Model1":{"main":[[]]}},"name":"Chattrigger Workflow","description":"Automated workflow: Chattrigger Workflow. This workflow processes data and performs automated tasks.","settings":{"executionOrder":"v1","saveManualExecutions":true,"callerPolicy":"workflowsFromSameOwner","errorWorkflow":null,"timezone":"UTC","executionTimeout":3600,"maxExecutions":1000,"retryOnFail":true,"retryCount":3,"retryDelay":1000},"notes":"Excellent quality workflow: Chattrigger Workflow. This workflow has been optimized for production use with comprehensive error handling, security, and documentation."}