Darmowy szablon automatyzacji

Zautomatyzuj szkolenia produktowe i obsługę klienta za pośrednictwem WhatsApp, GPT-4 i Arkuszy Google

12663
25 dni temu
20
bloków


Dla kogo jest ten workflow

Ten workflow jest idealny dla założycieli eCommerce, menedżerów produktów, zespołów obsługi klienta oraz twórców automatyzacji, którzy korzystają z WhatsAppa do zarządzania informacjami o produktach i komunikacji z klientami.

To doskonałe rozwiązanie dla firm, które chcą zautomatyzować wprowadzanie danych produktowych oraz odpowiedzi na pytania klientów bezpośrednio z wiadomości WhatsApp, wykorzystując GPT-4 i Google Sheets.

Jakie problemy rozwiązuje ten workflow

  • Ręczne wprowadzanie danych produktowych – Zbieranie i organizowanie danych z linków jest czasochłonne i podatne na błędy.
  • Wolne czasy odpowiedzi dla klientów – Ręczne odpowiadanie na pytania klientów prowadzi do opóźnień i niespójności w obsłudze.
  • Brak systemu rejestracji problemów – Bez automatyzacji problemy wsparcia często pozostają niezarejestrowane, utrudniając analizę i poprawę.

Jak działa ten workflow

Krok 1 – Wykrywanie przychodzącej wiadomości

Nasłuchuje przychodzących wiadomości przez WhatsApp. Jeśli wiadomość zaczyna się od train:, przekierowuje ją do procesu treningu produktu. W przeciwnym razie kieruje ją do asystenta obsługi klienta.

Krok 2 – Trening danych produktowych

  • Wyodrębnia URL z wiadomości za pomocą skryptu regex.
  • Pobiera treść HTML z URL.
  • Czyści dane HTML, aby wyodrębnić czytelny opis produktu.
  • Zapisuje surowe dane (URL + opis) w Google Sheets.
  • Wykorzystuje GPT-4 do ulepszenia danych produktowych, takich jak nazwa, cena, temat i FAQ.
  • Aktualizuje wiersz produktu w Google Sheets o ustrukturyzowane informacje.

Krok 3 – Obsługa klienta

  • Analizuje wiadomości użytkowników za pomocą GPT-4, aby zrozumieć zapytanie lub problem.
  • Wyszukuje odpowiednie informacje o produkcie w Google Sheets.
  • Wykrywa potencjalne problemy (np. płatność, logowanie, dostawa).
  • Sugeruje odpowiednie rozwiązanie.
  • Rejestruje problem, rozwiązanie i kategorię w arkuszu "Customer Issues".

Krok 4 – Odpowiedź dla klienta

Wysyła odpowiedź wygenerowaną przez AI do klienta przez WhatsApp, zapewniając szybką, jasną i profesjonalną komunikację.

Przykłady zastosowań

Ten workflow może być wykorzystany w różnych scenariuszach biznesowych, takich jak:

  • Automatyczne aktualizowanie katalogu produktów na podstawie linków dostarczanych przez zespół.
  • Szybkie odpowiadanie na częste pytania klientów dotyczące specyfikacji produktów.
  • Rejestrowanie i kategoryzowanie zgłoszeń problemów, aby poprawić jakość obsługi.
  • Automatyczne generowanie FAQ dla nowych produktów na podstawie danych z witryn.
  • Integracja z innymi narzędziami, takimi jak CRM, w celu lepszego śledzenia interakcji z klientami.
  • Wysyłanie powiadomień do zespołu w przypadku krytycznych problemów zgłoszonych przez klientów.
  • Optymalizacja procesów wsparcia poprzez analizę zgromadzonych danych o problemach.

Przewodnik konfiguracji

Wymagania wstępne

  • Dostęp do WhatsApp Business API
  • Klucz API OpenAI
  • Konto Google z dostępem do Google Sheets
  • Hostowana instancja n8n (Cloud lub samodzielnie hostowana)

Kroki konfiguracji

  1. Zaimportuj workflow do swojej instancji n8n.
  2. Podłącz swoje dane uwierzytelniające dla WhatsApp, OpenAI i Google Sheets.
  3. Dostosuj identyfikatory i nazwy arkuszy Google Sheets według potrzeb.
  4. Przetestuj, wysyłając wiadomość z train: lub zwykłą wiadomość klienta na WhatsApp.
  5. Aktywuj workflow, aby był gotowy do użycia.

Jak dostosować ten workflow

  • Edytuj prompty AI, aby odzwierciedlały typ produktu, styl języka lub ton.
  • Zmień słowo kluczowe wyzwalające (np. z train: na add: lub inne).
  • Dodaj integracje z Notion, Airtable lub narzędziami CRM.
  • Rozbuduj strukturę arkuszy o dodatkowe pola produktowe (np. stan magazynowy, link do obrazu).
  • Dodaj powiadomienia na Slack lub e-mail po aktualizacji produktu lub rejestracji problemu.


   Skopiuj kod szablonu   
{"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":"## 🟡 STEP 1 – 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":"## 🔵 STEP 3 – 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":"## 🔴 STEP 2 – 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":"## 🟢 STEP 4 – 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":"// Récupérer le texte à analyser depuis l'inputnconst texteExemple = $input.first().json.messages[0].text.body;nn// Expression régulière modifiée 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 à partir du textenconst matches = texteExemple.match(regex) || [];nn// Si des URL ont été trouvées, 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 trouvée, on retourne les items d'entrée 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 : récupération du contenu HTML depuis le premier itemn// Si vous avez un champ nommé "html" dans un noeud précédent.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 et leur contenun cleanedText = cleanedText.replace(/]*>.*?<\/a>/gs, '');nn // 2. Retirer magic-wandmenu linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram