Assistant de courses avec la mémoire Zep
Ceci est unSupport Chatbot, Multimodal AIworkflow d'automatisation du domainecontenant 8 nœuds.Utilise principalement des nœuds comme Agent, GoogleSheetsTool, MemoryZep, ChatTrigger, LmChatOpenAi. Construire un assistant de personnalisation des achats avec Zep Memory, GPT-4 et Google Sheets
- •Informations d'identification Google Sheets API
- •Clé API OpenAI
Nœuds utilisés (8)
Catégorie
{
"id": "7P92GpAzZ0RAEUKO",
"meta": {
"instanceId": "fcb622cbd5234c565b9b78babeaf0ea2455df9d2aad0d1adff7c1ef99583e685",
"templateCredsSetupCompleted": true
},
"name": "Shopping Assitant with Zep Memory",
"tags": [],
"nodes": [
{
"id": "55b62571-be88-4fc7-a649-416ee0c72fcb",
"name": "Agent IA",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-540,
-120
],
"parameters": {
"text": "={{ $json.chatInput }}",
"options": {
"systemMessage": "=You are the Infystore Shopping Assistant — a professional, friendly, helpful virtual agent available 24/7. You help customers with:\n\n1. Inventory details (availability, restock info, short description)\n2. Order tracking (status, delivery ETA)\n3. Return policy (return window, conditions)\n4. Return process (steps and eligibility)\n\nAlways respond only to the user's question — do not add extra info. Be concise, polite, human-like. Never repeat the same question twice. Ask only one thing at a time. Never send images or markdown — only plain text.\n\n== Initial Greeting (only once per conversation) ==\nHi! I’m your shopping assistant from Infystore. I can help you check product availability, track your order, or guide you through returns. How can I assist you today?\n\n== INVENTORY FLOW ==\nIf the user asks about a product (e.g., “Do you have the Organic Cotton Tote Bag?”):\n→ Extract product name from message\n→ Run: Get_Inventory(product_name)\n\nIf in stock:\nRespond: \n\"The [product_name] is available, and we currently have [stock_level] units in stock.\"\n\nIf out of stock:\n→ If restock ETA exists:\n\"The [product_name] is currently out of stock. It will be restocked around [restock_eta].\"\n→ If no ETA:\n\"The [product_name] is currently out of stock.Do you have any others product like this.\"\n→ If similar products available:\n\"You might also like: [alternative_1], [alternative_2].\"\n\nEnd all inventory peragraph type responses with : product_description and asking a place order after about product.\nIf the user ask place order related:\n Response : \"I can't place orders directly. Please visit Infystore's website and order the Reebok Shoes. Can I assist you with anything else?\"\n\n== ORDER TRACKING FLOW ==\nIf the user asks about tracking an order:\n→ If no phone number is stored, ask:\n\"Could you please provide your phone number?\"\n\n→ On receiving phone number:\n→ Run: Get_Orders(phone_number)\n\nIf no order found:\n\"We couldn’t find any order with those details. Please double-check and resend your phone number.\"\n\nIf order found:\n\"Your order [order_name] is currently [order_status]. Estimated delivery: [delivery_eta].\"\n\nNever ask for the same phone number more than once.\n\n== RETURN POLICY FLOW ==\nIf user asks about return policy:\n→ Run: Get_ReturnPolicy\n\nRespond:\n\"You can return your product within [return_window_days] days of delivery. Please ensure the item is unused and in its original packaging.\"\n\n== RETURN PROCESS FLOW ==\nIf the user wants to return a product:\n→ If phone number or order ID not stored, ask once:\n\"Please provide your phone number to find your order.\"\n\n→ Run: Get_Orders(phone_number)\n\n→ If order not yet delivered:\n\"Your order is still in transit and can only be returned after it’s delivered.\"\n\n→ If one order is delivered:\n\"Are you returning your order for [order_name]?\"\n\n→ If multiple delivered orders:\n\"Which order would you like to return? Please choose one:\n[order_name_1] \n[order_name_2]\"\n\n→ If user confirms order:\n\"Please contact customer care to return your product. We’ll guide you through the next steps!\"\n\n== GENERAL RULES ==\n- No markdown, no emojis, no images\n- Never repeat a question already asked\n- If the question is vague, ask a helpful follow-up\n- Keep responses short, helpful, and human-like\n- Only respond based on user input\n- Do not initiate or suggest anything unless user asks\n"
},
"promptType": "define"
},
"typeVersion": 2
},
{
"id": "21e0b8c9-5549-49aa-9933-dd61073fef2d",
"name": "Modèle de chat OpenAI",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-700,
120
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "toKygKIh3jjPrkgy",
"name": "OpenAi account 6"
}
},
"typeVersion": 1.2
},
{
"id": "5aeb09bf-49f8-41e4-85e0-0b3c6356dd5e",
"name": "À la réception du message",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"position": [
-800,
-120
],
"webhookId": "f08324a7-38eb-4f38-827d-a7de0ebeecf0",
"parameters": {
"options": {}
},
"typeVersion": 1.1
},
{
"id": "14f13061-c179-43d3-aa06-f2eee144197a",
"name": "Note autocollante",
"type": "n8n-nodes-base.stickyNote",
"position": [
-160,
-140
],
"parameters": {
"width": 360,
"height": 120,
"content": "### Sample Google Sheet link:\nhttps://docs.google.com/spreadsheets/d/17PsTWr5shCgA2RnHuj1xwqSRX7uBcb-psRYZA2jFOTo/edit?usp=sharing"
},
"typeVersion": 1
},
{
"id": "52f34812-68c0-4461-858a-1453c6002b4c",
"name": "Zep",
"type": "@n8n/n8n-nodes-langchain.memoryZep",
"position": [
-580,
120
],
"parameters": {},
"credentials": {
"zepApi": {
"id": "bUWqe8i8G7Fs4Mmt",
"name": "Zep Api account"
}
},
"typeVersion": 1.3
},
{
"id": "15c29e7a-2b25-42a6-b205-038cede88241",
"name": "Get_Orders",
"type": "n8n-nodes-base.googleSheetsTool",
"position": [
-460,
120
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "list",
"value": 2103540895,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/17PsTWr5shCgA2RnHuj1xwqSRX7uBcb-psRYZA2jFOTo/edit#gid=2103540895",
"cachedResultName": "Order Tracking"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "17PsTWr5shCgA2RnHuj1xwqSRX7uBcb-psRYZA2jFOTo",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/17PsTWr5shCgA2RnHuj1xwqSRX7uBcb-psRYZA2jFOTo/edit?usp=drivesdk",
"cachedResultName": "Shopping Assitant"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "AjFU8eA6fXFRo47v",
"name": "Google Sheets account"
}
},
"typeVersion": 4.6
},
{
"id": "25ae4d47-95a4-4d3b-97ea-03f8bd1ee564",
"name": "Get_Inventory",
"type": "n8n-nodes-base.googleSheetsTool",
"position": [
-340,
120
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/17PsTWr5shCgA2RnHuj1xwqSRX7uBcb-psRYZA2jFOTo/edit#gid=0",
"cachedResultName": "Product Details"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "17PsTWr5shCgA2RnHuj1xwqSRX7uBcb-psRYZA2jFOTo",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/17PsTWr5shCgA2RnHuj1xwqSRX7uBcb-psRYZA2jFOTo/edit?usp=drivesdk",
"cachedResultName": "Shopping Assitant"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "AjFU8eA6fXFRo47v",
"name": "Google Sheets account"
}
},
"typeVersion": 4.6
},
{
"id": "7e8d2175-a35c-439d-beea-47314a9e9ea6",
"name": "Get_ReturnPolicy",
"type": "n8n-nodes-base.googleSheetsTool",
"position": [
-200,
120
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1762722848,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/17PsTWr5shCgA2RnHuj1xwqSRX7uBcb-psRYZA2jFOTo/edit#gid=1762722848",
"cachedResultName": "Return Policy"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "17PsTWr5shCgA2RnHuj1xwqSRX7uBcb-psRYZA2jFOTo",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/17PsTWr5shCgA2RnHuj1xwqSRX7uBcb-psRYZA2jFOTo/edit?usp=drivesdk",
"cachedResultName": "Shopping Assitant"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "AjFU8eA6fXFRo47v",
"name": "Google Sheets account"
}
},
"typeVersion": 4.6
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "29fbe65c-9cdb-4ddd-a1a6-b73fe0e7a724",
"connections": {
"52f34812-68c0-4461-858a-1453c6002b4c": {
"ai_memory": [
[
{
"node": "55b62571-be88-4fc7-a649-416ee0c72fcb",
"type": "ai_memory",
"index": 0
}
]
]
},
"15c29e7a-2b25-42a6-b205-038cede88241": {
"ai_tool": [
[
{
"node": "55b62571-be88-4fc7-a649-416ee0c72fcb",
"type": "ai_tool",
"index": 0
}
]
]
},
"25ae4d47-95a4-4d3b-97ea-03f8bd1ee564": {
"ai_tool": [
[
{
"node": "55b62571-be88-4fc7-a649-416ee0c72fcb",
"type": "ai_tool",
"index": 0
}
]
]
},
"7e8d2175-a35c-439d-beea-47314a9e9ea6": {
"ai_tool": [
[
{
"node": "55b62571-be88-4fc7-a649-416ee0c72fcb",
"type": "ai_tool",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "55b62571-be88-4fc7-a649-416ee0c72fcb",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"When chat message received": {
"main": [
[
{
"node": "55b62571-be88-4fc7-a649-416ee0c72fcb",
"type": "main",
"index": 0
}
]
]
}
}
}Comment utiliser ce workflow ?
Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.
Dans quelles scénarios ce workflow est-il adapté ?
Intermédiaire - Chatbot de support, IA Multimodale
Est-ce payant ?
Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.
Workflows recommandés
InfyOm Technologies
@infyomWe are an AI Automation Agency focusing on various AI Automation Services like, workflow automation, shopify automation, chatbot developerment, custom ai agent development and more.
Partager ce workflow