ChatGPT integreres i Google Sheets ved at forbinde et regneark til OpenAI API via Google Apps Script, en udvidelse eller et automatiseringsværktøj. Den sikreste løsning er normalt et script med API-nøgle uden for cellerne, klare begrænsninger for data og kontrol med kvoter.
ChatGPT kan kobles til Google Sheets med Apps Script, OpenAI API eller en kontrolleret udvidelse. Den praktiske afklaring er, hvordan data sendes, hvor API-nøglen opbevares, og hvordan kvoter, fejl og menneskelig kvalitetssikring håndteres i regnearket.
Hvad betyder integrationen i praksis?
En integration mellem ChatGPT og Google Sheets betyder ikke, at selve ChatGPT-chatvinduet flyttes ind i regnearket. I praksis sender Google Sheets data fra udvalgte celler til en AI-model via et API, modtager et svar og skriver svaret tilbage i arket. Det kan bruges til klassificering, opsummering, omskrivning, datarensning, udkast til tekster eller strukturerede forslag.
Den centrale forskel er, at regnearket bliver brugerfladen, mens modellen ligger uden for Google Sheets. Det gør integrationen fleksibel, men det betyder også, at du skal tage stilling til datatyper, adgangsnøgler, svartider, omkostninger og kvalitetssikring. En god løsning starter derfor med en smal opgave i stedet for en generel AI-knap til hele regnearket.
Hvis du allerede arbejder med API’er, minder opsætningen om andre eksterne datakald. AI Mentor har en bredere forklaring af, hvad et API er, og hvordan det anvendes, som kan gøre den tekniske del lettere at placere.
Hvornår er Google Apps Script den rigtige metode?
Google Apps Script er ofte den mest direkte metode, når integrationen skal bo tæt på et konkret regneark. Det er Googles JavaScript-baserede scriptingmiljø til Google Workspace, og det kan bruges til menuer, knapper, automatiserede kørsler og eksterne HTTP-kald. For mange interne arbejdsgange er det nok til at forbinde Sheets med OpenAI API uden en separat backend.
Metoden passer især, når du vil styre præcis, hvilke celler der sendes, hvordan svar skrives tilbage, og hvornår brugeren aktivt starter processen. Du kan for eksempel lave en menu med handlinger som “klassificer markerede rækker” eller “lav korte beskrivelser for valgte produkter”. Dermed undgår du, at hver celle automatisk kalder modellen igen og igen.
Apps Script er mindre egnet, hvis integrationen skal håndtere høj volumen, mange samtidige brugere, avanceret logging eller komplekse rettighedsniveauer. Så bør du overveje en lille server, en workflow-platform eller en egentlig applikation, hvor regnearket kun er datakilde eller kontrolflade.
Hvordan fungerer API-kaldet fra et regneark?
Et API-kald fra Google Sheets sker typisk gennem Apps Script-tjenesten UrlFetchApp. Den kan sende en HTTPS-forespørgsel til et eksternt endpoint, for eksempel OpenAI’s Responses API, med en JSON-body, en modelangivelse og de data, modellen skal behandle. Svaret kommer tilbage som JSON og kan derefter omsættes til tekst, tal eller strukturerede felter i arket.
Det praktiske flow er enkelt: scriptet læser udvalgte celler, bygger en kort instruktionstekst, sender forespørgslen, fortolker svaret og skriver resultatet tilbage. Det lyder mekanisk, men kvaliteten afhænger af afgrænsningen. Hvis du sender for mange kolonner, uklare instruktioner eller blandede datatyper, bliver svaret vanskeligere at kontrollere.
OpenAI beskriver Responses API som et endpoint til at oprette modelrespons med tekst, billeder, værktøjer og strukturerede outputmuligheder. I en Sheets-integration er den mest almindelige brug tekst ind og tekst eller JSON ud. Du behøver ikke bruge alle API’ets muligheder for at få en nyttig regnearksfunktion.
Hvor bør API-nøglen placeres?
API-nøglen bør ikke stå i en celle, et delt ark eller direkte i synlig kode, som flere personer kan kopiere. Den bør ligge i en sikker konfiguration, for eksempel Apps Scripts PropertiesService for en mindre intern løsning eller en egentlig secret manager i en mere moden opsætning. Formålet er at undgå, at adgang til regnearket automatisk bliver adgang til OpenAI-kontoens forbrug.
PropertiesService kan gemme simple nøgle-værdi-data i et Apps Script-projekt. Det er ikke det samme som en fuld enterprise secret manager, men det er bedre end at lægge nøglen i en regnearkscelle. Hvis flere brugere skal anvende løsningen, bør du også afklare, om forbruget skal ske på én central konto, individuelle konti eller en mellemserver med egen adgangskontrol.
OpenAI anbefaler, at API-nøgler holdes ude af offentlig kode og ikke hardcodes. Det samme princip gælder i regneark: del ikke hemmeligheder med alle, der kan se arket, og lav en proces for rotation af nøglen, hvis en medarbejder skifter rolle, eller hvis du mistænker, at nøglen er blevet eksponeret.
Kan ChatGPT bruges som en brugerdefineret Sheets-funktion?
Ja, du kan teknisk lave en brugerdefineret funktion, der ligner en almindelig regnearksformel. Den kan for eksempel tage en celle som input og returnere et AI-genereret svar i en anden celle. Den model er let at forstå for brugere, fordi den ligner kendte funktioner som SUM, SPLIT eller TRANSLATE.
Alligevel er det ikke altid den bedste driftsmodel. Google dokumenterer, at brugerdefinerede funktioner i Sheets har begrænsninger, fordi de ikke kan bede brugeren om autorisation til services, der kræver adgang til personlige data. Hvis en funktion møder en service, der kræver brugerautorisation, kan den fejle. For AI-integrationer er en menu, en knap eller en tidsstyret kørsel derfor ofte mere robust.
En formelfunktion kan være god til små, ikke-fortrolige testopgaver. Til større ark bør du foretrække en kontrolleret kørsel, hvor brugeren markerer rækker og selv starter processen. Det gør det lettere at styre omkostninger, undgå utilsigtede gentagelser og give brugeren mulighed for at gennemgå resultaterne før videre brug.
| Metode | Styrke | Begrænsning |
|---|---|---|
| Brugerdefineret funktion | Let at bruge som almindelig formel | Kan give mange gentagne kald og har autorisationsbegrænsninger |
| Apps Script-menu | Giver bedre kontrol med valgte rækker og handlinger | Kræver lidt teknisk opsætning og vedligeholdelse |
| Ekstern workflow-platform | Kan forbinde flere systemer uden meget kode | Kan give mindre kontrol med dataflow og nøgler |
Hvordan bør data sendes fra celler til modellen?
Den bedste praksis er at sende mindst muligt og mest muligt struktureret. I stedet for at sende hele regnearket bør scriptet læse de specifikke kolonner, der er nødvendige for opgaven. Hvis opgaven er at kategorisere supporthenvendelser, er emne, kort beskrivelse og eksisterende kategori måske nok. Kundens fulde historik, e-mailadresse og interne noter behøver ikke nødvendigvis indgå.
En smal dataaftale gør løsningen lettere at teste. Du kan beskrive inputfelter, forventet output og fejltilfælde, før integrationen bruges bredt. Det er samme disciplin, som bruges i automatiseret datarensning med generativ AI: modellen bør ikke få mere kontekst end nødvendigt, og resultatet bør passe ind i en kontrollerbar datastruktur.
Hvis du vil have modellen til at returnere flere felter, bør svaret være struktureret. Det kan for eksempel være en kategori, en kort begrundelse og en usikkerhedsmarkering. Når output er forudsigeligt, kan Sheets lettere bruge det til filtre, pivottabeller, rapportering eller manuel gennemgang.
Hvordan håndteres kvoter og svartider?
Både Google Apps Script og OpenAI API har begrænsninger for brug. Google dokumenterer daglige kvoter og andre begrænsninger for Apps Script-tjenester, og OpenAI beskriver rate limits som begrænsninger på, hvor ofte en bruger eller klient kan tilgå API’et i en given periode. En Sheets-integration skal derfor designes til at håndtere pauser, fejl og genkørsel.
Det største praktiske problem opstår, når en formel eller et script sender et API-kald for hver enkelt celle. Et ark med tusind rækker kan hurtigt blive langsomt, dyrt eller ramt af grænser. En bedre model er batchvis behandling, hvor scriptet samler flere rækker, markerer behandlede rækker og gemmer status undervejs.
Du bør også planlægge, hvad der sker ved timeouts eller delvise fejl. Et nyttigt mønster er at have kolonner som “AI-status”, “sidst kørt” og “fejlbesked”. Så kan brugeren se, hvilke rækker der er færdige, hvilke der skal prøves igen, og hvilke der kræver manuel vurdering.
Hvilke sikkerheds- og datakrav skal du afklare?
Før du forbinder et regneark med en AI-model, bør du afklare, hvilke data der må sendes ud af Google Workspace, hvem der må starte kørsler, og hvordan resultatet må bruges. Det gælder især, hvis arket indeholder persondata, kundedata, interne priser, kontraktoplysninger, helbredsdata eller andre fortrolige oplysninger.
En praktisk kontrol er at opdele data i tre grupper: data der frit kan behandles, data der kun må behandles efter godkendelse, og data der slet ikke må sendes til en ekstern model. Den opdeling gør integrationen mere konkret end en generel regel om forsigtighed. Den gør det også lettere at forklare brugere, hvorfor nogle kolonner ikke indgår i AI-kørslen.
Hvis løsningen bruges i en organisation, bør adgangsstyring og logning være en del af designet. Det handler ikke kun om teknisk sikkerhed, men også om sporbarhed: hvem startede kørslen, hvilke rækker blev behandlet, og hvilken version af scriptet blev brugt. En enkel log kan være nok i små teams, mens større organisationer ofte har brug for mere formel governance.
Hvornår er en udvidelse eller no-code-løsning bedre?
En færdig udvidelse eller en no-code-platform kan være bedre, når opgaven er standardiseret, når brugerne ikke har teknisk støtte, eller når tiden er vigtigere end fuld kontrol. Det kan for eksempel være masseproduktion af korte beskrivelser, hurtige opsummeringer eller en enkel klassificering, hvor data ikke er følsomme.
Ulempen er, at du ofte får mindre gennemsigtighed i, hvordan data sendes, hvordan nøgler håndteres, og hvilke fejl der opstår. Du bør derfor vurdere leverandørens dokumentation, databehandlerforhold, adgangsrettigheder og mulighed for at eksportere eller slette data. Hvis platformen skjuler for meget af dataflowet, kan den være svær at bruge til regulerede eller forretningskritiske arbejdsgange.
En god tommelfingerregel er at bruge Apps Script, når du har brug for kontrol, og en færdig løsning, når opgaven er lavrisiko og gentagelig. For mere generel udviklerbrug kan ChatGPT for udviklere med integration og API-brug give en bredere teknisk ramme.
Hvordan kan resultatet kvalitetssikres i arket?
Kvalitetssikring bør bygges ind i regnearket, ikke lægges på som en løs eftertanke. Det kan ske med statuskolonner, valideringsfelter, stikprøvekontrol og klare regler for, hvornår et AI-svar må bruges. Hvis modellen genererer tekst, bør en person normalt gennemgå svaret, før det sendes til kunder, publiceres eller bruges som beslutningsgrundlag.
For klassificering og datarensning kan du bruge en mere struktureret kontrol. Sammenlign AI-forslag med eksisterende kategorier, marker lav tillid som “kræver vurdering”, og gem både originalværdi og foreslået værdi. Det gør det muligt at rette fejl uden at miste den oprindelige data.
Hvis du bruger integrationen til tekstproduktion, bør du skelne mellem udkast og godkendt indhold. AI-assisterede tekster kan være nyttige i et ark, men de bør stadig kontrolleres for fakta, tone, duplikater og kontekst. Det gælder også, når arket bruges til AI-assisteret copywriting.
Hvordan kommer du i gang trin for trin?
En enkel start er bedre end en bred integration. Vælg først én opgave, hvor input og output er tydelige. Det kan være at omskrive interne produktbeskrivelser til et fast format, kategorisere henvendelser eller lave korte resuméer af noter. Undgå i første omgang opgaver, hvor små fejl kan få store konsekvenser.
- Vælg de kolonner, der må sendes til modellen.
- Opret et Apps Script bundet til regnearket.
- Gem API-nøglen uden for cellerne.
- Lav en menu eller knap, der behandler markerede rækker.
- Send en lille testmængde til API’et og skriv svar i en ny kolonne.
- Tilføj status, fejlbesked og manuel godkendelse.
- Udvid først til flere rækker, når fejl og omkostninger er forstået.
Den rækkefølge gør integrationen kontrollerbar. Du tester først forbindelsen, derefter outputformatet og til sidst arbejdsgangen. Det er mere robust end at begynde med en formel i hele kolonnen, fordi du undgår skjulte gentagelser og lettere kan stoppe processen, hvis noget går galt.
Hvilke typiske fejl skal undgås?
Den mest almindelige fejl er at behandle AI-funktionen som en almindelig regnearksformel uden omkostninger, ventetid eller dataansvar. En anden fejl er at sende for meget kontekst, fordi det virker nemmere end at udvælge de relevante felter. Det kan gøre svarene dyrere, langsommere og sværere at forklare.
En tredje fejl er at gemme API-nøglen i arket. Det kan virke praktisk under test, men det skaber unødig risiko, især hvis arket deles bredt. En fjerde fejl er at overskrive originaldata med AI-output. Bevar originalen og skriv AI-resultatet i nye kolonner, så du kan fortryde, sammenligne og rette.
Endelig bør du undgå integrationer uden ejer. Hvis ingen har ansvar for nøglehåndtering, modelvalg, fejlretning og brugervejledning, bliver løsningen skrøbelig. En lille, dokumenteret arbejdsgang med klare grænser er ofte mere værd end en bred funktion, som ingen tør bruge på rigtige data.
Hvilke kilder ligger til grund?
Den tekniske forklaring bygger på Googles dokumentation for UrlFetchApp i Apps Script, brugerdefinerede funktioner i Google Sheets, kvoter for Apps Script-tjenester og PropertiesService. OpenAI-delen bygger på OpenAI Responses API og OpenAI’s vejledning om sikker håndtering af API-nøgler.