Bulk AI column console for Google Sheets, powered by Groq

By General Input

Write one instruction, test it on five rows, then label or summarize thousands of spreadsheet rows in a single cheap background job.

Integrations

  • Groq
  • Google Sheets
  • Slack Bot

Type

App

Categories

  • Operations
  • Sales

Build me a bulk AI column console for Google Sheets, powered by Groq. It is the app I open when I have a few thousand spreadsheet rows that all need the same judgement applied to them: classify this company, summarize this review, extract the job title from this bio. I write the instruction once, prove it on a handful of rows, then let a background batch job do the whole sheet cheaply, and finally write the answers back as a new column beside my data.

Start me on a Data tab. I paste or pick a Google Sheets spreadsheet, choose a tab inside it, and the app loads the rows into a readable table using Google Sheets Get Values, treating the first row as headers. Use Google Sheets Batch Get Values when the app needs several ranges at once, for example the header row plus a preview window of data rows, or when paging through a long sheet in A1 subranges. Show me the header names, the total row count, and let me narrow the range if I only want part of the sheet.

Above the table is the instruction builder. I type one instruction in plain language and reference my columns with double curly placeholders, like: Read {{Website copy}} and label this company as agency, SaaS, or ecommerce. Reply with only the label. Offer the sheet's actual header names as clickable chips so I insert placeholders without typos, and validate that every placeholder in my instruction matches a real column before anything can run. Next to the instruction is a model picker whose options come from Groq List Models at load time, never a hard coded list of model IDs, since those get deprecated. I also name the output column here, which is the header that will be written back.

A Test on five rows button runs the instruction against the first five rows of my selected range using Groq Create Chat Completion, one live call per row, and shows the source row next to the model's output in a side by side panel. This is the cheap feedback loop that lets me fix wording before spending anything, so make the sample output prominent and let me edit the instruction and retest as many times as I want. Show the tokens used and rough cost of the sample.

When the sample looks right, Run on all rows packages every row in the selected range into a JSONL file, one line per row, each line a chat completion request whose custom_id encodes the sheet row number so results can be matched back exactly. Upload that file with Groq Upload File using purpose batch, then start the job with Groq Create Batch. Batches only accept the chat completions endpoint and a completion window of either 24h or 7d, so let me choose the window and default to 24h. Uploaded files must be JSONL under 100MB, so estimate the payload size before uploading and tell me plainly if I need to narrow the range. Before submitting, if the row count is above a threshold I set in Settings, show a confirmation dialog with the row count and estimated cost and make me confirm.

A Runs tab lists every job I have ever launched, newest first, with status, row count, the model used, elapsed time, and estimated cost. Refresh it when the tab is opened and from a manual refresh button, using Groq List Batches for the list view and Groq Retrieve Batch for the detail of a single run. Map the batch status into plain words for me: queued, running, completed, failed, cancelled, expired. Every run row stores the exact instruction text, the model ID, the spreadsheet and tab and range, the output column name, and the completion window, so I can open a run from last quarter and rerun it identically with one button rather than trying to remember how I worded it.

Opening a completed run pulls the results with Groq Download File Content against the output file ID on the batch, parses the JSONL, and matches each result back to its row by custom_id. Show me a review panel with a sample of maybe twenty rows, source data next to generated answer, before I commit anything. Rows that errored go in their own Failed rows section with the error message from the error file, never silently dropped, and a Retry failed rows button that builds a fresh smaller JSONL containing only those rows and submits it as a new linked batch.

When I am happy, a Write back button adds the results as a new column immediately to the right of the source data using Google Sheets Batch Update Values, with my chosen header in the first row and each answer landing on its original row. It must never overwrite the source columns: find the first empty column after the used range and write there, and if a column with that header already exists, offer to add a suffixed version instead of replacing it. Show a clear confirmation of exactly which range will be written before the call goes out, and mark the run as written back afterwards so I do not double write.

After a successful write back, post a short summary to a team channel with Slack Send a Message, something like: 1,240 rows categorized with the company type instruction, 12 failed, written to column H of the Prospects tab. Let me pick the channel in Settings and turn the summary off if I do not want it.

Settings holds the row count that triggers the confirmation warning, the default completion window, the default model, and the Slack channel. Keep the whole thing honest about cost: show the estimate before I submit, the actual token usage once the batch reports it, and never start a job without me pressing a button.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentLocal listing health board for every location you manageLet support send one-off Loops emails without an engineerA brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensStop cold emails to anyone with a live deal in PipedriveLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasoniMessage campaign console with pre-flight checks and delivery board