Back to Catalog

Monitor & respond to Google Maps reviews using AI, Apify, Slack, and Sheets

takumatakuma
216 views
2/3/2026
Official Page

This workflow automates reputation management for physical stores (restaurants, retail, clinics) by monitoring Google Maps reviews, analyzing them with AI, and drafting professional replies.

It acts as a 24/7 customer support assistant, ensuring you never miss a negative review and saving hours of manual writing time.

Who is this for?

  • Store Managers & Owners: Keep track of customer sentiment without manually checking Google Maps every day.
  • Marketing Agencies: Automate local SEO reporting and response drafting for multiple clients.
  • Customer Support Teams: Get instant alerts for negative feedback to resolve issues quickly.

How it works

  1. Schedule: Runs every 24 hours (customizable) to fetch the latest data.
  2. Scrape: Uses Apify to retrieve the latest reviews from a specific Google Maps URL.
  3. Filter: Checks the Google Sheet database to identify only new reviews and avoid duplicates.
  4. AI Analysis: An AI Agent (via OpenRouter/OpenAI) analyzes the review text to:
    • Generate a short summary.
    • Draft a polite, context-aware reply based on the star rating (e.g., apologies for low stars, gratitude for high stars).
  5. Alert: Sends a Slack notification.
    • Low Rating (<4 stars): Alerts a specific channel (e.g., #customer-support) with a warning.
    • High Rating: Alerts a general channel (e.g., #wins) to celebrate.
  6. Save: Appends the review details, AI summary, and draft reply to the Google Sheet.

Requirements

  • n8n: Cloud or self-hosted (v1.0+).
  • Apify Account: To run the Google Maps Reviews Scraper.
  • Google Cloud Platform: Enabled Google Sheets API.
  • Slack Workspace: A webhook URL or OAuth connection.
  • OpenRouter (or OpenAI) API Key: For the LLM generation.

How to set up

  1. Google Sheets: Create a new sheet with the following headers in the first row: reviewId, publishedAt, reviewerName, stars, text, ai_summary, ai_reply, reviewUrl, output, publishedAt date.
  2. Configure Credentials: Set up your accounts for Google Sheets, Apify, Slack, and OpenRouter within n8n.
  3. Edit the "CONFIG" Node:
    • MAPS_URL: Paste the full Google Maps link to your store.
    • SHEET_ID: Paste the ID found in your Google Sheet URL.
    • SHOP_NAME: Your store's name.
  4. Slack Nodes: Select the appropriate channels for positive and negative alerts.

How to customize

  • Change the AI Persona: Open the AI Agent node and modify the "System Message" to match your brand's tone of voice (e.g., casual, formal, or witty).
  • Adjust Alert Thresholds: Edit the If Rating < 4 node to change the criteria for what constitutes a "negative" review (e.g., strictly < 3 stars).
  • Multi-Store Support: You can loop this workflow over a list of URLs to manage multiple locations in a single execution.

Monitor and Respond to Google Maps Reviews using AI, Apify, Slack, and Sheets

This n8n workflow automates the process of monitoring Google Maps reviews for a business, using AI to generate responses, and then notifying a Slack channel and logging the review and response to a Google Sheet. This helps businesses efficiently manage their online reputation and engage with customers.

What it does

  1. Schedules Review Checks: The workflow is triggered on a schedule (e.g., daily) to periodically check for new Google Maps reviews.
  2. Fetches Reviews: It uses a custom Code node to interact with an external service (likely Apify or a similar review scraping tool, though the exact service isn't defined in the provided JSON, it's inferred from the directory name) to fetch the latest Google Maps reviews.
  3. Filters for New Reviews: An "If" node checks if any new reviews were found.
  4. Generates AI Responses: For each new review, an "AI Agent" node (powered by a "OpenRouter Chat Model") generates a suitable response.
  5. Notifies Slack: The review details and the AI-generated response are posted to a designated Slack channel for team awareness or approval.
  6. Logs to Google Sheets: The original review, the AI-generated response, and other relevant details are appended as a new row in a Google Sheet for record-keeping and further analysis.
  7. Merges Data: A "Merge" node combines the data flow before logging to Google Sheets, ensuring all necessary information is present.
  8. Edits Fields: A "Set" node is used to prepare and format the data before sending it to other nodes, ensuring consistency.

Prerequisites/Requirements

  • n8n Instance: A running instance of n8n.
  • Google Sheets Account: A Google account with access to Google Sheets. You'll need to configure a Google Sheets credential in n8n.
  • Slack Account: A Slack workspace where you can create an app or webhook to post messages. You'll need to configure a Slack credential in n8n.
  • OpenRouter API Key: An API key for OpenRouter to power the AI Chat Model. You'll need to configure a Langchain credential in n8n.
  • External Review Scraper (e.g., Apify): While not explicitly defined in the JSON, the Code node suggests an interaction with an external service to fetch Google Maps reviews. You will need to configure this service and its API key/access within the Code node.

Setup/Usage

  1. Import the Workflow:
    • Download the workflow JSON.
    • In your n8n instance, go to "Workflows" and click "New".
    • Click the three-dot menu (...) and select "Import from JSON".
    • Paste the workflow JSON or upload the file.
  2. Configure Credentials:
    • Google Sheets: Create a new Google Sheets OAuth2 credential.
    • Slack: Create a new Slack API credential or Webhook credential.
    • OpenRouter Chat Model: Create a new Langchain credential for OpenRouter and provide your API key.
  3. Configure Nodes:
    • Schedule Trigger (Node 839): Adjust the interval to your desired frequency for checking new reviews (e.g., every 1 hour, once a day).
    • Code (Node 834): This node is crucial for fetching reviews. You will need to modify the JavaScript code within this node to:
      • Specify the Google Maps business ID or URL you want to monitor.
      • Integrate with your chosen review scraping service (e.g., Apify, Google My Business API). This will likely involve making an HTTP request and parsing the response.
      • Ensure the output format of this node matches the expected input for subsequent nodes (especially the "If" node and the "AI Agent").
    • AI Agent (Node 1119) & OpenRouter Chat Model (Node 1281): Ensure the "OpenRouter Chat Model" credential is selected. You might want to fine-tune the prompt in the "AI Agent" node to guide the AI in generating appropriate responses for your business.
    • Slack (Node 40): Select your Slack credential and configure the channel where you want to receive notifications.
    • Google Sheets (Node 18): Select your Google Sheets credential. Specify the spreadsheet ID and sheet name where the reviews and responses should be logged. Ensure the column names in the Google Sheet match the data being sent from the "Edit Fields" (Set) node.
    • Edit Fields (Set) (Node 38): Review and adjust the fields being set to ensure all necessary data points (review text, rating, AI response, etc.) are correctly mapped for Slack and Google Sheets.
  4. Activate the Workflow: Once all configurations are complete, activate the workflow.

Related Templates

Generate song lyrics and music from text prompts using OpenAI and Fal.ai Minimax

Spark your creativity instantly in any chatβ€”turn a simple prompt like "heartbreak ballad" into original, full-length lyrics and a professional AI-generated music track, all without leaving your conversation. πŸ“‹ What This Template Does This chat-triggered workflow harnesses AI to generate detailed, genre-matched song lyrics (at least 600 characters) from user messages, then queues them for music synthesis via Fal.ai's minimax-music model. It polls asynchronously until the track is ready, delivering lyrics and audio URL back in chat. Crafts original, structured lyrics with verses, choruses, and bridges using OpenAI Submits to Fal.ai for melody, instrumentation, and vocals aligned to the style Handles long-running generations with smart looping and status checks Returns complete song package (lyrics + audio link) for seamless sharing πŸ”§ Prerequisites n8n account (self-hosted or cloud with chat integration enabled) OpenAI account with API access for GPT models Fal.ai account for AI music generation πŸ”‘ Required Credentials OpenAI API Setup Go to platform.openai.com β†’ API keys (sidebar) Click "Create new secret key" β†’ Name it (e.g., "n8n Songwriter") Copy the key and add to n8n as "OpenAI API" credential type Test by sending a simple chat completion request Fal.ai HTTP Header Auth Setup Sign up at fal.ai β†’ Dashboard β†’ API Keys Generate a new API key β†’ Copy it In n8n, create "HTTP Header Auth" credential: Name="Fal.ai", Header Name="Authorization", Header Value="Key [Your API Key]" Test with a simple GET to their queue endpoint (e.g., /status) βš™οΈ Configuration Steps Import the workflow JSON into your n8n instance Assign OpenAI API credentials to the "OpenAI Chat Model" node Assign Fal.ai HTTP Header Auth to the "Generate Music Track", "Check Generation Status", and "Fetch Final Result" nodes Activate the workflowβ€”chat trigger will appear in your n8n chat interface Test by messaging: "Create an upbeat pop song about road trips" 🎯 Use Cases Content Creators: YouTubers generating custom jingles for videos on the fly, streamlining production from idea to audio export Educators: Music teachers using chat prompts to create era-specific folk tunes for classroom discussions, fostering interactive learning Gift Personalization: Friends crafting anniversary R&B tracks from shared memories via quick chats, delivering emotional audio surprises Artist Brainstorming: Songwriters prototyping hip-hop beats in real-time during sessions, accelerating collaboration and iteration ⚠️ Troubleshooting Invalid JSON from AI Agent: Ensure the system prompt stresses valid JSON; test the agent standalone with a sample query Music Generation Fails (401/403): Verify Fal.ai API key has minimax-music access; check usage quotas in dashboard Status Polling Loops Indefinitely: Bump wait time to 45-60s for complex tracks; inspect fal.ai queue logs for bottlenecks Lyrics Under 600 Characters: Tweak agent prompt to enforce fuller structures like [V1][C][V2][B][C]; verify output length in executions

Daniel NkenchoBy Daniel Nkencho
601

Automate Dutch Public Procurement Data Collection with TenderNed

TenderNed Public Procurement What This Workflow Does This workflow automates the collection of public procurement data from TenderNed (the official Dutch tender platform). It: Fetches the latest tender publications from the TenderNed API Retrieves detailed information in both XML and JSON formats for each tender Parses and extracts key information like organization names, titles, descriptions, and reference numbers Filters results based on your custom criteria Stores the data in a database for easy querying and analysis Setup Instructions This template comes with sticky notes providing step-by-step instructions in Dutch and various query options you can customize. Prerequisites TenderNed API Access - Register at TenderNed for API credentials Configuration Steps Set up TenderNed credentials: Add HTTP Basic Auth credentials with your TenderNed API username and password Apply these credentials to the three HTTP Request nodes: "Tenderned Publicaties" "Haal XML Details" "Haal JSON Details" Customize filters: Modify the "Filter op ..." node to match your specific requirements Examples: specific organizations, contract values, regions, etc. How It Works Step 1: Trigger The workflow can be triggered either manually for testing or automatically on a daily schedule. Step 2: Fetch Publications Makes an API call to TenderNed to retrieve a list of recent publications (up to 100 per request). Step 3: Process & Split Extracts the tender array from the response and splits it into individual items for processing. Step 4: Fetch Details For each tender, the workflow makes two parallel API calls: XML endpoint - Retrieves the complete tender documentation in XML format JSON endpoint - Fetches metadata including reference numbers and keywords Step 5: Parse & Merge Parses the XML data and merges it with the JSON metadata and batch information into a single data structure. Step 6: Extract Fields Maps the raw API data to clean, structured fields including: Publication ID and date Organization name Tender title and description Reference numbers (kenmerk, TED number) Step 7: Filter Applies your custom filter criteria to focus on relevant tenders only. Step 8: Store Inserts the processed data into your database for storage and future analysis. Customization Tips Modify API Parameters In the "Tenderned Publicaties" node, you can adjust: offset: Starting position for pagination size: Number of results per request (max 100) Add query parameters for date ranges, status filters, etc. Add More Fields Extend the "Splits Alle Velden" node to extract additional fields from the XML/JSON data, such as: Contract value estimates Deadline dates CPV codes (procurement classification) Contact information Integrate Notifications Add a Slack, Email, or Discord node after the filter to get notified about new matching tenders. Incremental Updates Modify the workflow to only fetch new tenders by: Storing the last execution timestamp Adding date filters to the API query Only processing publications newer than the last run Troubleshooting No data returned? Verify your TenderNed API credentials are correct Check that you have setup youre filter proper Need help setting this up or interested in a complete tender analysis solution? Get in touch πŸ”— LinkedIn – Wessel Bulte

Wessel BulteBy Wessel Bulte
247

πŸŽ“ How to transform unstructured email data into structured format with AI agent

This workflow automates the process of extracting structured, usable information from unstructured email messages across multiple platforms. It connects directly to Gmail, Outlook, and IMAP accounts, retrieves incoming emails, and sends their content to an AI-powered parsing agent built on OpenAI GPT models. The AI agent analyzes each email, identifies relevant details, and returns a clean JSON structure containing key fields: From – sender’s email address To – recipient’s email address Subject – email subject line Summary – short AI-generated summary of the email body The extracted information is then automatically inserted into an n8n Data Table, creating a structured database of email metadata and summaries ready for indexing, reporting, or integration with other tools. --- Key Benefits βœ… Full Automation: Eliminates manual reading and data entry from incoming emails. βœ… Multi-Source Integration: Handles data from different email providers seamlessly. βœ… AI-Driven Accuracy: Uses advanced language models to interpret complex or unformatted content. βœ… Structured Storage: Creates a standardized, query-ready dataset from previously unstructured text. βœ… Time Efficiency: Processes emails in real time, improving productivity and response speed. *βœ… Scalability: Easily extendable to handle additional sources or extract more data fields. --- How it works This workflow automates the transformation of unstructured email data into a structured, queryable format. It operates through a series of connected steps: Email Triggering: The workflow is initiated by one of three different email triggers (Gmail, Microsoft Outlook, or a generic IMAP account), which constantly monitor for new incoming emails. AI-Powered Parsing & Structuring: When a new email is detected, its raw, unstructured content is passed to a central "Parsing Agent." This agent uses a specified OpenAI language model to intelligently analyze the email text. Data Extraction & Standardization: Following a predefined system prompt, the AI agent extracts key information from the email, such as the sender, recipient, subject, and a generated summary. It then forces the output into a strict JSON structure using a "Structured Output Parser" node, ensuring data consistency. Data Storage: Finally, the clean, structured data (the from, to, subject, and summarize fields) is inserted as a new row into a specified n8n Data Table, creating a searchable and reportable database of email information. --- Set up steps To implement this workflow, follow these configuration steps: Prepare the Data Table: Create a new Data Table within n8n. Define the columns with the following names and string type: From, To, Subject, and Summary. Configure Email Credentials: Set up the credential connections for the email services you wish to use (Gmail OAuth2, Microsoft Outlook OAuth2, and/or IMAP). Ensure the accounts have the necessary permissions to read emails. Configure AI Model Credentials: Set up the OpenAI API credential with a valid API key. The workflow is configured to use the model, but this can be changed in the respective nodes if needed. Connect the Nodes: The workflow canvas is already correctly wired. Visually confirm that the email triggers are connected to the "Parsing Agent," which is connected to the "Insert row" (Data Table) node. Also, ensure the "OpenAI Chat Model" and "Structured Output Parser" are connected to the "Parsing Agent" as its AI model and output parser, respectively. Activate the Workflow: Save the workflow and toggle the "Active" switch to ON. The triggers will begin polling for new emails according to their schedule (e.g., every minute), and the automation will start processing incoming messages. --- Need help customizing? Contact me for consulting and support or add me on Linkedin.

DavideBy Davide
1616