Utilisation de l'IA pour générer des réponses de surveillance des avis Google Business

Intermédiaire

Ceci est unTicket Management, Multimodal AIworkflow d'automatisation du domainecontenant 11 nœuds.Utilise principalement des nœuds comme If, Set, AiTransform, HttpRequest, GoogleSheets. Automatiser la réponse aux avis Google My Business avec l'IA, les notifications Slack et l'enregistrement dans Sheets

Prérequis
  • Peut nécessiter les informations d'identification d'authentification de l'API cible
  • Informations d'identification Google Sheets API
Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
  "id": "TFA52QNAEro3v0Y2",
  "meta": {
    "instanceId": "f31c8cf0f30c343fde4e229f596b53099ee0496367bfd39c53458e5afe95e91e",
    "templateCredsSetupCompleted": true
  },
  "name": "Monitor Google Business Reviews with AI Response Generation",
  "tags": [],
  "nodes": [
    {
      "id": "bfad3de2-aca1-4691-841f-488fe9a57c09",
      "name": "Surveiller les avis Google",
      "type": "n8n-nodes-base.googleBusinessProfileTrigger",
      "position": [
        784,
        256
      ],
      "parameters": {
        "account": {
          "mode": "id",
          "value": "={{ $env.GOOGLE_BUSINESS_ACCOUNT_ID }}"
        },
        "location": {
          "mode": "id",
          "value": "={{ $env.GOOGLE_BUSINESS_LOCATION_ID }}"
        },
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "7a35316d-b32c-4601-991b-55ef94451883",
      "name": "Configuration entreprise",
      "type": "n8n-nodes-base.set",
      "position": [
        1008,
        0
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d",
              "name": "businessName",
              "type": "string",
              "value": "Your Business Name"
            },
            {
              "id": "9b0c8d7e-6f5a-4b3c-2d1e-0f9a8b7c6d5e",
              "name": "responseTone",
              "type": "string",
              "value": "professional and friendly"
            },
            {
              "id": "2e3f1a0b-9c8d-7e6f-5a4b-3c2d1e0f9a8b",
              "name": "slackWebhookUrl",
              "type": "string",
              "value": "={{ $env.SLACK_WEBHOOK_URL }}"
            },
            {
              "id": "3f4a2b1c-0d9e-8f7a-6b5c-4d3e2f1a0b9c",
              "name": "notificationEmail",
              "type": "string",
              "value": "={{ $env.NOTIFICATION_EMAIL }}"
            }
          ]
        }
      },
      "typeVersion": 3.4,
      "continueOnFail": true
    },
    {
      "id": "1522ed76-eda8-4ea2-a889-54c3fe3cf8e0",
      "name": "Formater les avis Google",
      "type": "n8n-nodes-base.set",
      "position": [
        1232,
        256
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d",
              "name": "source",
              "type": "string",
              "value": "Google Business Profile"
            },
            {
              "id": "b2c3d4e5-f6a7-8b9c-0d1e-2f3a4b5c6d7e",
              "name": "rating",
              "type": "number",
              "value": "={{ $json.starRating }}"
            },
            {
              "id": "c3d4e5f6-a7b8-9c0d-1e2f3a4b5c6d7e8f",
              "name": "reviewText",
              "type": "string",
              "value": "={{ $json.comment }}"
            },
            {
              "id": "d4e5f6a7-b8c9-0d1e-2f3a4b5c6d7e8f9a",
              "name": "reviewerName",
              "type": "string",
              "value": "={{ $json.reviewer.displayName }}"
            },
            {
              "id": "e5f6a7b8-c9d0-1e2f-3a4b5c6d7e8f9a0b",
              "name": "reviewDate",
              "type": "string",
              "value": "={{ $json.createTime }}"
            },
            {
              "id": "f6a7b8c9-d0e1-2f3a-4b5c6d7e8f9a0b1c",
              "name": "reviewId",
              "type": "string",
              "value": "={{ $json.reviewId }}"
            }
          ]
        }
      },
      "typeVersion": 3.4,
      "continueOnFail": true
    },
    {
      "id": "7d3e47c7-bd46-472b-b616-09b05b5c8c6c",
      "name": "Générer une réponse IA",
      "type": "n8n-nodes-base.aiTransform",
      "position": [
        1456,
        256
      ],
      "parameters": {
        "instructions": "Analyze the review and generate a professional response. The review is:\n\nSource: {{ $json.source }}\nRating: {{ $json.rating }}/5\nReviewer: {{ $json.reviewerName }}\nReview: {{ $json.reviewText }}\n\nGenerate a response that is {{ $('Business Configuration').item.json.responseTone }}. If the rating is 3 or below, acknowledge their concerns and offer to make things right. If 4-5 stars, thank them warmly. Keep responses under 150 words."
      },
      "typeVersion": 1,
      "continueOnFail": true
    },
    {
      "id": "1f5d176c-0fed-4690-8df2-ab217b4accd5",
      "name": "Avis négatif ?",
      "type": "n8n-nodes-base.if",
      "position": [
        1680,
        256
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "a9b0c1d2-e3f4-5a6b-7c8d-9e0f1a2b3c4d",
              "operator": {
                "type": "number",
                "operation": "lte"
              },
              "leftValue": "={{ $json.rating }}",
              "rightValue": 3
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "88e13071-e269-4028-bec5-1ca479e2e76b",
      "name": "Alerter l'équipe - Négatif",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1904,
        160
      ],
      "parameters": {
        "url": "={{ $('Business Configuration').item.json.slackWebhookUrl }}",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "text",
              "value": "🚨 *Urgent: Negative Review Alert* 🚨\n\n*Source:* {{ $json.source }}\n*Rating:* {{ $json.rating }}/5 ⭐\n*Reviewer:* {{ $json.reviewerName }}\n*Review:* {{ $json.reviewText }}\n\n*Suggested Response:*\n{{ $json.output }}"
            }
          ]
        }
      },
      "typeVersion": 4.2,
      "continueOnFail": true
    },
    {
      "id": "ba523e1d-a9d6-482a-880f-65d8eb6514c2",
      "name": "Notifier l'équipe - Positif",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1904,
        352
      ],
      "parameters": {
        "url": "={{ $('Business Configuration').item.json.slackWebhookUrl }}",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "text",
              "value": "✨ *New Positive Review* ✨\n\n*Source:* {{ $json.source }}\n*Rating:* {{ $json.rating }}/5 ⭐\n*Reviewer:* {{ $json.reviewerName }}\n*Review:* {{ $json.reviewText }}\n\n*Suggested Response:*\n{{ $json.output }}"
            }
          ]
        }
      },
      "typeVersion": 4.2,
      "continueOnFail": true
    },
    {
      "id": "51678bc3-3bb1-42b9-87d1-ec2e81c0f233",
      "name": "Journaliser dans Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2224,
        272
      ],
      "parameters": {
        "columns": {
          "value": {
            "Date": "={{ new Date().toISOString() }}",
            "Rating": "={{ $json.rating }}",
            "Review": "={{ $json.reviewText }}",
            "Source": "={{ $json.source }}",
            "Reviewer": "={{ $json.reviewerName }}",
            "Review ID": "={{ $json.reviewId }}",
            "AI Response": "={{ $json.output }}"
          },
          "mappingMode": "defineBelow"
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "mode": "name",
          "value": "Reviews"
        },
        "documentId": {
          "mode": "id",
          "value": "={{ $env.GOOGLE_SHEET_ID }}"
        },
        "authentication": "serviceAccount"
      },
      "credentials": {
        "googleApi": {
          "id": "UD5OjKiVkvWF1KEV",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.6,
      "continueOnFail": true
    },
    {
      "id": "cb74c403-ffdb-4ff8-8d45-3afcfa38e70a",
      "name": "Note adhésive 2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        848,
        -288
      ],
      "parameters": {
        "color": 4,
        "width": 432,
        "height": 432,
        "content": "## Update these values in the Business Configuration node:\n\n- **businessName**: Your business name for personalized responses\n- **responseTone**: Customize AI response style (e.g., \"professional and friendly\", \"casual and warm\")\n- **slackWebhookUrl**: Your Slack webhook for notifications\n- **notificationEmail**: Email for urgent alerts\n\nAll sensitive data uses environment variables for security."
      },
      "typeVersion": 1
    },
    {
      "id": "4a19971e-72ee-4e95-90de-457f12b3eb95",
      "name": "Note adhésive 1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2064,
        -96
      ],
      "parameters": {
        "color": 6,
        "width": 464,
        "height": 528,
        "content": "### 📊 Google Sheets Configuration\n\n**Required Sheet Name:** \"Reviews\"\n\n**Required Headers (Row 1):**\n- **Date** - Timestamp of review processing\n- **Source** - Always \"Google Business Profile\"  \n- **Rating** - Star rating (1-5)\n- **Reviewer** - Customer display name\n- **Review** - Full review text\n- **AI Response** - Generated response suggestion\n- **Review ID** - Unique Google review identifier\n\n**🔗 Service Account Permissions:**\n\nGrant \"Editor\" access to your Google Sheets service account"
      },
      "typeVersion": 1
    },
    {
      "id": "650e2141-568a-46ba-9653-cce123d8eac5",
      "name": "Note adhésive",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        176,
        -416
      ],
      "parameters": {
        "width": 448,
        "height": 736,
        "content": "**🛠️ Google Business Review Monitor Setup Guide**\n\nThis workflow automatically monitors your Google Business Profile for new reviews and generates AI-powered response suggestions.\n\n✅ **Step 1: Connect Google Business Profile API**\n- Create Google Cloud project and enable Business Profile API\n- Set up service account credentials  \n- Note your Business Account ID and Location ID\n- Set environment variables: GOOGLE_BUSINESS_ACCOUNT_ID, GOOGLE_BUSINESS_LOCATION_ID\n\n✅ **Step 2: Setup Google Sheets Integration**\n- Create Google Sheet with \"Reviews\" sheet\n- Add headers: Date, Source, Rating, Reviewer, Review, AI Response, Review ID\n- Set environment variable: GOOGLE_SHEET_ID\n- Ensure service account has edit access to the sheet\n\n✅ **Step 3: Configure Slack Notifications**\n- Create Slack webhook in your workspace\n- Set environment variable: SLACK_WEBHOOK_URL  \n- Configure notification email: NOTIFICATION_EMAIL\n\n✅ **Step 4: Customize Business Settings**\n- Update Business Configuration node with your business name\n- Adjust response tone (professional, friendly, casual, etc.)\n- Test the AI response generation with sample review data\n\n**🧪Final Step: Test with Sample Data**\nTrigger manually to verify all integrations work properly"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "f2d68f67-a2df-4e49-9dc3-3e1a47394575",
  "connections": {
    "1f5d176c-0fed-4690-8df2-ab217b4accd5": {
      "main": [
        [
          {
            "node": "88e13071-e269-4028-bec5-1ca479e2e76b",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "ba523e1d-a9d6-482a-880f-65d8eb6514c2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "7d3e47c7-bd46-472b-b616-09b05b5c8c6c": {
      "main": [
        [
          {
            "node": "1f5d176c-0fed-4690-8df2-ab217b4accd5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "88e13071-e269-4028-bec5-1ca479e2e76b": {
      "main": [
        [
          {
            "node": "51678bc3-3bb1-42b9-87d1-ec2e81c0f233",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1522ed76-eda8-4ea2-a889-54c3fe3cf8e0": {
      "main": [
        [
          {
            "node": "7d3e47c7-bd46-472b-b616-09b05b5c8c6c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "7a35316d-b32c-4601-991b-55ef94451883": {
      "main": [
        [
          {
            "node": "1522ed76-eda8-4ea2-a889-54c3fe3cf8e0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "bfad3de2-aca1-4691-841f-488fe9a57c09": {
      "main": [
        [
          {
            "node": "7a35316d-b32c-4601-991b-55ef94451883",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ba523e1d-a9d6-482a-880f-65d8eb6514c2": {
      "main": [
        [
          {
            "node": "51678bc3-3bb1-42b9-87d1-ec2e81c0f233",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Foire aux questions

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 - Gestion des tickets, 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.

Informations sur le workflow
Niveau de difficulté
Intermédiaire
Nombre de nœuds11
Catégorie2
Types de nœuds7
Description de la difficulté

Adapté aux utilisateurs expérimentés, avec des workflows de complexité moyenne contenant 6-15 nœuds

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34