Using the GENAI Custom Functions for Customer Feedback Analysis
As a Product Manager, I know the importance of gathering and analyzing customer feedback. It helps the team identify and fix bugs, and also provides valuable ideas to inform our roadmap. However, analyzing a large volume of feedback can be daunting. The process involves sifting through survey responses, support chat logs, forum posts, and social media mentions, trying to manually tag, categorize, and synthesize it all into something meaningful. It's time-consuming, prone to inconsistency, and often means valuable insights get buried or arrive too late.
Imagine this common scenario: You've just launched a major update. Feedback starts pouring in. Some love it, some are confused, some found a bug, and others are already asking for the next feature. You need to quickly understand the overall reaction, identify critical issues, and gauge which suggestions align with your strategy. Doing this manually for hundreds or thousands of entries is a Herculean task.
In this tutorial, I will show you how to use the GENAI() custom functions to automate the process of analyzing customer feedback and extracting actionable insights.
Prerequisites
This tutorial uses the GENAI() and GENAI_ARRAY() custom functions for Google Sheets, which I covered in a previous tutorial. Please follow the instructions in that tutorial to set up these custom functions in your Google Sheets spreadsheet.
Set up your Google Sheets spreadsheet
In this tutorial we will work with a simple Feedback sheet, like the one below:
Feedback ID | Timestamp | Segment | Feedback Text |
---|---|---|---|
FDBK-001 | 2024-07-26 10:15 | Enterprise | The new dashboard is confusing and I can't find the export button. Very frustrating! |
FDBK-002 | 2024-07-26 11:02 | SMB | Love the recent update, makes reporting much faster. Suggest adding currency conversion. |
FDBK-003 | 2024-07-26 13:45 | Mid-Market | Your support team took three days to respond to my urgent ticket. This is unacceptable for the premium plan we're paying for. |
FDBK-004 | 2024-07-27 9:10 | Enterprise | The API documentation is excellent. Every endpoint is clearly explained with examples. |
FDBK-005 | 2024-07-27 11:37 | SMB | We keep hitting the API rate limits. Need higher limits or better queueing system. |
FDBK-006 | 2024-07-28 8:23 | Mid-Market | The new mobile app is a game-changer for our field reps! They can now update customer records on the go. |
FDBK-007 | 2024-07-28 14:15 | Enterprise | Would be helpful if we could customize the dashboards for different departments. Currently everyone sees the same view. |
FDBK-008 | 2024-07-29 10:45 | SMB | The pricing structure is too complex. Can't figure out which plan is right for us without calling sales. |
FDBK-009 | 2024-07-29 16:22 | Mid-Market | System was down for an hour yesterday and we lost some customer data that wasn't auto-saved. |
FDBK-010 | 2024-07-30 9:05 | Enterprise | Your team went above and beyond to help us with the integration. Special thanks to Sarah from Professional Services! |
In the above table, every row represents customer feedback. Every feedback has four fields: ID, Timestamp, Customer Segment, and the raw Feedback Text.
Copy and paste this table into Google Sheets so you can follow along with the rest of this tutorial.
Use the GENAI custom functions in Google Sheets to analyze customer feedback
Next we will use the GENAI()
custom functions to analyze this feedback and extract actionable insights from it. Let's break down each of these AI-powered columns.
Sentiment Analysis (Column E)
We use the GENAI_ARRAY()
custom function to analyze the feedback and determine its underlying sentiment.
=GENAI_ARRAY("Analyze the sentiment of this customer feedback. Respond ONLY with 'Positive', 'Negative', or 'Neutral'. Feedback:", D2:D11)
Note
We use the GENAI_ARRAY()
and not the GENAI()
custom function because GENAI_ARRAY()
processes each cell in a range individually with AI. That is, GENAI_ARRAY()
applies the prompt to each non-empty cell in the range individually, returning a corresponding array of responses. Here, we want to process each feedback individually to extract its sentiment so we use the GENAI_ARRAY()
function.
The GENAI()
function, on the other hand, treats the entire range as a single context, returning a single response based on the entire range.
Extracting sentiment will help us gauge the overall emotional tone of feedback. Are users generally happy, frustrated, or neutral about a new feature or the product overall? We can also use this information to track shifts in sentiment over time or across different customer segments.
Categorization (Column F)
Next, we use the GENAI_ARRAY()
custom function to analyze the feedback and categorize its type. For example, is it a Bug Report or is it a Feature Request?
=GENAI_ARRAY("Identify the primary intent or topic in this feedback. Pick one of these options:'UI Complaint', 'Feature Request', 'Positive Feedback', 'Bug Report', 'Billing Issue', 'Other'). Be concise. Feedback:", D2:D11,"google","gemini-2.5-flash-preview-04-17")
Categorizing the feedback helps us automatically tag and sort feedback. This is useful for routing. Bug reports can be flagged for engineering, feature requests funnelled into your backlog prioritization process, UI complaints reviewed by design, and positive feedback shared with the team for morale. No more manual tagging!
Generation (Column G)
Finally, we use the GENAI_ARRAY()
custom function to generate a concise response acknowledging the customer's feedback.
=GENAI_ARRAY("Draft a concise (1-2 sentence) personalized initial response snippet based on this feedback:",D2:D11)
Generating an initial draft of the response can accelerate response times and improve consistency. However, it's important to review AI-generated responses for accuracy and alignment with company policies and guidelines before sending them to customers. Reviewing and editing a draft is much easier than writing a response from scratch for every piece of feedback.
Putting It All Together: The Analyzed Feedback Sheet
Below is the complete feedback analysis sheet with all GENAI functions applied. You can see how the raw customer feedback has been transformed into actionable insights through automated sentiment analysis, categorization, and response generation. This demonstrates how AI can quickly process unstructured feedback data, allowing you to identify patterns, prioritize issues, and respond to customers more efficiently - all without leaving your familiar Google Sheets environment.

The Advantages of AI-Powered Feedback Analysis
Using GENAI to analyze customer feedback in Google Sheets has several advantages:
Speed to Insight: Go from raw, unstructured text to categorized, sentiment-analyzed data almost instantly. Identify emerging trends or critical issues hours or days faster than manual review.
Scalability: Analyze thousands of feedback entries as easily as you analyze ten. Don't let valuable insights get lost just because you lack the bandwidth to read everything.
Data-Driven Prioritization: Quickly quantify feedback types. How many bug reports vs. feature requests came in this week? Which features are generating the most negative sentiment? This data directly informs your backlog grooming and roadmap planning.
Resource Optimization: Free up your time (and potentially that of support or analyst teams) from manual processing to focus on higher-level strategy, user interviews, and solution design.
Proactive Engagement: Use the generated snippets to respond to customers more quickly and personally, demonstrating that you're listening and acting on their input.
⚠️ Important Warnings and Security ConsiderationsAPI Key Security
The API keys required by these functions provide access to paid services. Keep your API keys strictly confidential and never share them publicly. Only generate keys for AI model providers you actively need.
Important Note on Sharing
If you share your script or spreadsheet with others, they may be able to access your embedded API keys. You will be billed for any model usage incurred through your keys, regardless of who initiated the usage.
Usage Costs
Using these functions will incur charges based on the API keys you provide:
Each API call costs money according to your provider's pricing structure.
Batch processing many cells or running frequent operations can quickly increase costs.
We recommend testing with smaller data ranges first to estimate potential costs.
Importantly, set up billing alerts or usage quotas with your API provider to avoid unexpected charges.
Data Privacy and AI LimitationsData Privacy
Any data you send to these AI providers through these functions:
Is processed on their servers according to their privacy policies
May be stored or used to improve their models (depending on their terms)
Should not include confidential, sensitive, or personally identifiable information
AI LimitationsAI models can make mistakes, hallucinate facts, or provide incorrect information
Always review AI-generated content before using it for important decisions
Use appropriate checks and balances for critical applications
Consider adding human review steps for important workflows
AI models can make mistakes, hallucinate facts, or provide incorrect information
Always review AI-generated content before using it for important decisions
Use appropriate checks and balances for critical applications
Consider adding human review steps for important workflows
How was this tutorial?
Your feedback helps me create better content
DISCLAIMER: This content is provided for educational purposes only. All code, templates, and information should be thoroughly reviewed and tested before use. Use at your own risk. Full Terms of Service apply.
Small Scripts, Big Impact
Join 1,500+ professionals who are supercharging their productivity with Google Sheets automation
By subscribing, you agree to our Privacy Policy and Terms of Service