{
  "id": "GvlLeSOUPfar0DQS",
  "meta": {
    "instanceId": "a2b23892dd6989fda7c1209b381f5850373a7d2b85609624d7c2b7a092671d44",
    "templateCredsSetupCompleted": true
  },
  "name": "Automate Product Data Collection & Customer Support via WhatsApp + GPT-4 + Google Sheets",
  "tags": [],
  "nodes": [
    {
      "id": "370611ee-2725-4ee4-a73a-68d4eaabfe3a",
      "name": "WhatsApp Business Cloud",
      "type": "n8n-nodes-base.whatsApp",
      "position": [
        1020,
        220
      ],
      "webhookId": "ef261fd4-e3b8-42e9-a0e2-2c3c44b6b15e",
      "parameters": {
        "textBody": "={{ $json.output }}",
        "operation": "send",
        "phoneNumberId": "574583382412256",
        "additionalFields": {},
        "recipientPhoneNumber": "+212722542056"
      },
      "credentials": {
        "whatsAppApi": {
          "id": "TzeEzaeiZOOqcLOZ",
          "name": "WhatsApp account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "30520fe8-a423-4942-85b2-9e8776b45939",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -740,
        -20
      ],
      "parameters": {
        "width": 400,
        "height": 440,
        "content": "## ud83dudfe1 STEP 1 u2013 Incoming WhatsApp MessagenListens for new WhatsApp messages.nIf the message starts with train:, it triggers the product training flow.nOtherwise, it goes to the customer support flow.n**WhatsApp Business Cloud node** : [Here](https://www.notion.so/automatisation/WHATSAPP-WORKFLOW-1c63d6550fd980559679e7535938a68d?pvs=4#1c63d6550fd980f9a2a5e25a3654da82)"
      },
      "typeVersion": 1
    },
    {
      "id": "d3259e0e-5368-407d-8ac6-993784c939c9",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -300,
        280
      ],
      "parameters": {
        "color": 6,
        "width": 1180,
        "height": 420,
        "content": "## ud83dudd35 STEP 3 u2013 Customer Support FlownTriggered when the message **does NOT start with `train:`**.nn1. **AI Analyzes the Message**  n   Understands the customer's question or problem.nn2. **Fetch Product Data if Needed**  n   Reads relevant product info from Google Sheets.nn3. **Detect Issues Automatically**  n   Identifies if the user is facing a specific issue.nn4. **Suggest Solutions**  n   Proposes a helpful, clear response to solve the issue.nn5. **Log Customer Problems**  n   Saves the problem, suggested solution, and category.nn6. **Respond to the User**  n   Sends a professional and helpful WhatsApp reply."
      },
      "typeVersion": 1
    },
    {
      "id": "455ce4ab-6d14-4d4e-8ff8-04612cf532b9",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -300,
        -400
      ],
      "parameters": {
        "color": 3,
        "width": 1180,
        "height": 660,
        "content": "## ud83dudd34 STEP 2 u2013 Product Data Training (Triggered by train:)nTriggered when the message starts with `train:`.n**OpenAI API keys** : [Here](https://platform.openai.com/api-keys)nnnnnnnnnnnnn1. **Extract URL from Message**  n   Uses regex to detect and extract the product link.nn2. **Fetch HTML Content**  n   Sends an HTTP request to retrieve the full page content.nn3. **Clean HTML Data**  n   Strips HTML tags, scripts, and formats the text.nn4. **Save Raw Product Info**  n   Appends the cleaned content and URL into Google Sheets.nn5. **AI: Enhance Product Details**  n   - Extracts Product Name  n   - Detects Price (subscription or one-time)  n   - Identifies Product Topic  n   - Generates FAQsnn6. **Update Product Sheet**  n   Enriches the row in Sheets with structured product data.n"
      },
      "typeVersion": 1
    },
    {
      "id": "15251a04-a139-4a71-9e96-d5ecd9c2e66c",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        920,
        -20
      ],
      "parameters": {
        "color": 4,
        "width": 320,
        "height": 440,
        "content": "## ud83dudfe2 STEP 4 u2013 Client ResponsenFinal step of the flow.nn- Sends the AI-generated response back to the customer via WhatsApp.n- Ensures the message is clear, helpful, and personalized."
      },
      "typeVersion": 1
    },
    {
      "id": "f028f5a3-fed3-4f90-89cc-2af211da7362",
      "name": "Incoming Message Trigger",
      "type": "n8n-nodes-base.whatsAppTrigger",
      "position": [
        -700,
        220
      ],
      "webhookId": "48ce9bac-c7ea-4cb7-a40a-b010ea5ac743",
      "parameters": {
        "options": {},
        "updates": [
          "messages"
        ]
      },
      "credentials": {
        "whatsAppTriggerApi": {
          "id": "zYvcHcxGBNdN9Ptf",
          "name": "WhatsApp OAuth account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "54edaa0c-005e-4810-a2fa-76fbcc009b2b",
      "name": "Check If Training",
      "type": "n8n-nodes-base.switch",
      "position": [
        -520,
        220
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "train",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "9865cb5b-33da-490c-afc3-186457d5b564",
                    "operator": {
                      "type": "string",
                      "operation": "startsWith"
                    },
                    "leftValue": "={{ $json.messages[0].text.body }}",
                    "rightValue": "train:"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "text",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "5a9a1fee-b408-469f-a08c-e8d690fc9792",
                    "operator": {
                      "type": "string",
                      "operation": "notStartsWith"
                    },
                    "leftValue": "={{ $json.messages[0].text.body }}",
                    "rightValue": "train:"
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2
    },
    {
      "id": "b4187b28-efd9-46cb-8d1c-23d89d3f6125",
      "name": "Extract URL from Text",
      "type": "n8n-nodes-base.code",
      "position": [
        -260,
        -320
      ],
      "parameters": {
        "jsCode": "// Ru00e9cupu00e9rer le texte u00e0 analyser depuis l'inputnconst texteExemple = $input.first().json.messages[0].text.body;nn// Expression ru00e9guliu00e8re modifiu00e9e pour capturer les URL avec ou sans protocolenconst regex = /((?:https?:\/\/)?(?:www\.)?[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}(?:\/\S*)?)/g;nn// Extraction des URL u00e0 partir du textenconst matches = texteExemple.match(regex) || [];nn// Si des URL ont u00e9tu00e9 trouvu00e9es, on les mappe en objetsnif (matches.length > 0) {n    const output = matches.map(url => ({ url }));n    return output;n} else {n    // Si aucune URL n'est trouvu00e9e, on retourne les items d'entru00e9e pour que le workflow continuen    return $input.all();n}n"
      },
      "typeVersion": 2
    },
    {
      "id": "dbbcc8cf-2544-4de1-bcfd-6292d96a1017",
      "name": "Fetch HTML Page",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -100,
        -320
      ],
      "parameters": {
        "url": "={{ $json.url }}",
        "options": {
          "response": {
            "response": {
              "responseFormat": "text"
            }
          }
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "91e711d0-26c0-41dd-a9c5-28100f0f44f6",
      "name": "Clean HTML Content",
      "type": "n8n-nodes-base.code",
      "position": [
        60,
        -320
      ],
      "parameters": {
        "jsCode": "// Exemple : ru00e9cupu00e9ration du contenu HTML depuis le premier itemn// Si vous avez un champ nommu00e9 "html" dans un noeud pru00e9cu00e9dent.nconst htmlContent = $input.first().json.html;nn// Fonction de nettoyage du HTMLnfunction nettoyerHTML(input) {n  if (typeof input !== 'string') {n    throw new Error("Expected HTML content as a string.");n  }n  let cleanedText = input;nn  // 1. Retirer les liens <a> et leur contenun  cleanedText = cleanedText.replace(/<a>]*&gt;.*?/gs, '');nn  // 2. Retirer , , commentaires, etc.n  cleanedText = cleanedText.replace(/]*&gt;.*?/gs, '');n  cleanedText = cleanedText.replace(/]*&gt;.*?/gs, '');n  cleanedText = cleanedText.replace(/<!--[\s\S]*?-->/g, '');nn  // 3. Insu00e9rer des retours u00e0 la ligne pour certaines balisesn  cleanedText = cleanedText.replace(/]*&gt;/gi, '\n');n  cleanedText = cleanedText.replace(//gi, '\n');n  cleanedText = cleanedText.replace(/<p>]*&gt;/gi, '\n');n  cleanedText = cleanedText.replace(//gi, '\n');n  cleanedText = cleanedText.replace(/<ul>]*&gt;/gi, '\n');n  cleanedText = cleanedText.replace(//gi, '\n');n  cleanedText = cleanedText.replace(/<ol>]*&gt;/gi, '\n');n  cleanedText = cleanedText.replace(//gi, '\n');n  cleanedText = cleanedText.replace(/<li>]*&gt;/gi, '- ');n  cleanedText = cleanedText.replace(//gi, '\n');nn  // 4. Supprimer toutes les balises HTML restantesn  cleanedText = cleanedText.replace(/]+&gt;/g, '');nn  // 5. Supprimer (ou ajuster) les caractu00e8res spu00e9ciauxn  cleanedText = cleanedText.replace(/[^\w\su00c0-u00d6u00d8-u00f6u00f8-u00ff]+/g, '');nn  // 6. Normaliser les espaces multiples et trimn  cleanedText = cleanedText.replace(/\s+/g, ' ').trim();nn  return cleanedText;n}nn// Nettoyagenconst result = nettoyerHTML($input.first().json.data);nn// Retour d'un tableau contenant l'objet finalnreturn [n  {n    json: {n      cleanedText: resultn    }n  }n];n"
      },
      "typeVersion": 2
    },
    {
      "id": "7e457450-42ef-417e-b5f9-3248c9c7c2ae",
      "name": "Save Raw Product Info",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        240,
        -320
      ],
      "parameters": {
        "columns": {
          "value": {
            "Product Link": "={{ $('Extract URL from Text').item.json.url }}",
            "Product Description": "={{ $json.cleanedText }}"
          },
          "schema": [
            {
              "id": "Product Link",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Product Link",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Product Name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Product Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Product Price",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Product Price",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Product Description",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Product Description",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Product Topic",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Product Topic",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 689245338,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1wa41S888Ya3sqEkBdzYiDq-5FOu_V30BOe-toX_78xQ/edit#gid=689245338",
          "cachedResultName": "Products"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1wa41S888Ya3sqEkBdzYiDq-5FOu_V30BOe-toX_78xQ",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1wa41S888Ya3sqEkBdzYiDq-5FOu_V30BOe-toX_78xQ/edit?usp=drivesdk",
          "cachedResultName": "Product Sales - AI Agent WhatsApp"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "51us92xkOlrvArhV",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "d3dfa439-4056-4ce9-b874-100500967de6",
      "name": "OpenAI Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        320,
        -40
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "6h3DfVhNPw9I25nO",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "10217317-f6dd-4890-b05d-197d3d2adb79",
      "name": "Short-Term Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        500,
        -40
      ],
      "parameters": {
        "sessionKey": "={{ $('Incoming Message Trigger').item.json.messages[0].id }}",
        "sessionIdType": "customKey",
        "contextWindowLength": 50
      },
      "typeVersion": 1.3
    },
    {
      "id": "58ce0f46-fabc-4b6e-97d7-857dc6f1e568",
      "name": "Update Product Sheet",
      "type": "n8n-nodes-base.googleSheetsTool",
      "position": [
        680,
        -40
      ],
      "parameters": {
        "columns": {
          "value": {
            "F&amp;Q": "={{ $fromAI("product_faq", "these are the most common questions users might have about the product, including answers if available") }}n",
            "Product Link": "={{ $fromAI("product_url","this is the website link of the product") }}",
            "Product Name": "={{ $fromAI("product_name","this is the name of the product") }}",
            "Product Price": "={{ $fromAI("product_price","this is the price of the product") }}",
            "Product Topic": "={{ $fromAI("product_topic","this is the topic of the product that specifies what it is for, who it is for and what the key benefits are") }}"
          },
          "schema": [
            {
              "id": "Product Link",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Product Link",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Product Name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Product Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Product Price",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Product Price",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Product Description",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Product Description",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Product Topic",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Product Topic",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "F&amp;Q",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "F&amp;Q",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "Product Link"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 689245338,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1wa41S888Ya3sqEkBdzYiDq-5FOu_V30BOe-toX_78xQ/edit#gid=689245338",
          "cachedResultName": "Products"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1wa41S888Ya3sqEkBdzYiDq-5FOu_V30BOe-toX_78xQ",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1wa41S888Ya3sqEkBdzYiDq-5FOu_V30BOe-toX_78xQ/edit?usp=drivesdk",
          "cachedResultName": "Product Sales - AI Agent WhatsApp"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "51us92xkOlrvArhV",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "020714ae-5668-4fa5-8ba8-f1e476a8060e",
      "name": "AI Agent -  Customer Support Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        380,
        300
      ],
      "parameters": {
        "text": "={{ $json.messages[0].text.body }}",
        "options": {
          "systemMessage": "You are a helpful and intelligent customer support assistant.nnYou have access to a Google Sheets tool that allows you to read any content from a specific sheet to gather necessary information.nNever mention to the user that you accessed Google Sheets to retrieve any data.nnYour main responsibilities:nnUnderstand the useru2019s request or issue.nnIf the user is asking about a product, retrieve the relevant product name, price, and details as needed.nnDetermine whether the product price is a subscription or a one-time payment, based on the description.nnIf you detect that the user is facing a problem:nnIdentify and describe the problem clearly.nnPropose a practical and helpful solution.nnLog this interaction by adding a new row to the Google Sheet with the following columns:nnProblemnnSuggested SolutionnnCategory (e.g., payment, login, access, delivery, technical issue, etc.)nnBe professional, concise, and empathetic in your responses.nAlways aim to resolve the issue or provide the next best action."
        },
        "promptType": "define"
      },
      "typeVersion": 1.7
    },
    {
      "id": "53e49985-e1b9-48fd-9ea8-3352a63484e0",
      "name": "AI Agent - Enhance Product Details",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        420,
        -320
      ],
      "parameters": {
        "text": "=My product description :  {{ $json['Product Description'] }}nnMy product link : {{ $json['Product Link'] }}",
        "options": {
          "systemMessage": "You are a helpful and intelligent assistant.nnYou receive the text content of a product page.nnYour tasks are:nnExtract the product name.nnExtract the product price, and determine whether it is a subscription or a one-time payment.nnIdentify the product topic.nnExtract the most frequently asked questions (FAQs) related to the product.nnYou have access to a Google Sheets tool that allows you to update specific columns and cells.nnAlways add the following data to the same row as the product URL in the Google Sheet:nnProduct NamennProduct Price (with subscription/one-time label)nnProduct TopicnnFAQsnnBe accurate, structured, and consistent when filling in the sheet.nDo not mention Google Sheets in your responses."
        },
        "promptType": "define"
      },
      "typeVersion": 1.8
    },
    {
      "id": "194136b5-872a-492b-882b-d26a2890cbcf",
      "name": "OpenAI Model1",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        220,
        560
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "6h3DfVhNPw9I25nO",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "efc89a9b-3141-4735-adaf-7b9e2b6879ed",
      "name": "Conversation Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        400,
        560
      ],
      "parameters": {
        "sessionKey": "={{ $json.messages[0].id }}",
        "sessionIdType": "customKey",
        "contextWindowLength": 50
      },
      "typeVersion": 1.3
    },
    {
      "id": "d1a21094-0237-4b17-818c-3af7760b405f",
      "name": "Read Product Sheet",
      "type": "n8n-nodes-base.googleSheetsTool",
      "position": [
        560,
        560
      ],
      "parameters": {
        "options": {
          "dataLocationOnSheet": {
            "values": {
              "readRowsUntil": "firstEmptyRow",
              "rangeDefinition": "detectAutomatically"
            }
          }
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 689245338,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1wa41S888Ya3sqEkBdzYiDq-5FOu_V30BOe-toX_78xQ/edit#gid=689245338",
          "cachedResultName": "Products"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1wa41S888Ya3sqEkBdzYiDq-5FOu_V30BOe-toX_78xQ",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1wa41S888Ya3sqEkBdzYiDq-5FOu_V30BOe-toX_78xQ/edit?usp=drivesdk",
          "cachedResultName": "Product Sales - AI Agent WhatsApp"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "51us92xkOlrvArhV",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "2c2dcf9b-5578-4bd4-85b6-27621927a0a0",
      "name": "Log Customer Issues",
      "type": "n8n-nodes-base.googleSheetsTool",
      "position": [
        740,
        560
      ],
      "parameters": {
        "columns": {
          "value": {
            "Category": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Category', ``, 'string') }}",
            "Solution": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Solution', ``, 'string') }}",
            "Support Problem": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Support_Problem', ``, 'string') }}"
          },
          "schema": [
            {
              "id": "Support Problem",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Support Problem",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Solution",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Solution",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Category",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Category",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1725207764,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1wa41S888Ya3sqEkBdzYiDq-5FOu_V30BOe-toX_78xQ/edit#gid=1725207764",
          "cachedResultName": "Customer Issues"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1wa41S888Ya3sqEkBdzYiDq-5FOu_V30BOe-toX_78xQ",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1wa41S888Ya3sqEkBdzYiDq-5FOu_V30BOe-toX_78xQ/edit?usp=drivesdk",
          "cachedResultName": "Product Sales - AI Agent WhatsApp"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "51us92xkOlrvArhV",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.5
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "2e8ea310-e164-4d5d-ae0b-ade129b07a4a",
  "connections": {
    "OpenAI Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent - Enhance Product Details",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Model1": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent -  Customer Support Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Fetch HTML Page": {
      "main": [
        [
          {
            "node": "Clean HTML Content",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check If Training": {
      "main": [
        [
          {
            "node": "Extract URL from Text",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "AI Agent -  Customer Support Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Short-Term Memory": {
      "ai_memory": [
        [
          {
            "node": "AI Agent - Enhance Product Details",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Clean HTML Content": {
      "main": [
        [
          {
            "node": "Save Raw Product Info",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read Product Sheet": {
      "ai_tool": [
        [
          {
            "node": "AI Agent -  Customer Support Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Conversation Memory": {
      "ai_memory": [
        [
          {
            "node": "AI Agent -  Customer Support Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Log Customer Issues": {
      "ai_tool": [
        [
          {
            "node": "AI Agent -  Customer Support Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Update Product Sheet": {
      "ai_tool": [
        [
          {
            "node": "AI Agent - Enhance Product Details",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Extract URL from Text": {
      "main": [
        [
          {
            "node": "Fetch HTML Page",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Save Raw Product Info": {
      "main": [
        [
          {
            "node": "AI Agent - Enhance Product Details",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "WhatsApp Business Cloud": {
      "main": [
        []
      ]
    },
    "Incoming Message Trigger": {
      "main": [
        [
          {
            "node": "Check If Training",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent -  Customer Support Agent": {
      "main": [
        [
          {
            "node": "WhatsApp Business Cloud",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent - Enhance Product Details": {
      "main": [
        [
          {
            "node": "WhatsApp Business Cloud",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}