Track brand visibility in ChatGPT results with OpenAI and Google Sheets

Go to Workflow
0 views
Built by Sara Soleymani Sara Soleymani
Created on July 07, 2026

Description

Quick overview
This workflow runs weekly, reads buyer-style queries from Google Sheets, asks OpenAI Chat Completions (ChatGPT) each query three times, judges whether your brand is mentioned, and writes per-query visibility metrics and a 0–100 score back to a Google Sheets results tab.

How it works
Runs every week on a schedule trigger.
Reads the query set (query, brand, and competitors) from a Google Sheets tab named queries.
Duplicates each query into three sample runs to account for variation in OpenAI responses.
Sends each sample query to OpenAI Chat Completions (gpt-4o-mini) to generate an answer at temperature 1.
Sends the generated answer to a separate OpenAI Chat Completions judge call (gpt-4o-mini) at temperature 0 to extract structured JSON about brand mention, rank, sentiment, recommendation, and competitors mentioned.
Aggregates the three judged samples per query to compute inclusion rate, average rank/sentiment, and a weighted 0–100 visibility score.
Appends the per-query results (including the run date and metrics) to the results tab in Google Sheets.

Setup
Add an OpenAI credential for HTTP Header Auth using Authorization: Bearer .
Add a Google Sheets credential with access to the spreadsheet you want to use.
Create a Google Sheets document with queries and results tabs and the expected columns (for example: queries: query_id, query, brand, competitors; results: run_date, query_id, query, brand, runs, inclusion_rate, avg_rank, avg_sentiment, visibility_score, competitors_seen).
Replace YOUR_GOOGLE_SHEET_ID with your actual Google Sheets document ID in both Google Sheets nodes.
Adjust the weekly schedule (day/time) or sample count in the code if you want a different cadence or number of runs per query.

Nodes Used (3)

Code
n8n-nodes-base.code
Google Sheets
n8n-nodes-base.googleSheets
HTTP Request
n8n-nodes-base.httpRequest