Hvad er OAuth i HubSpot?
OAuth er den protokol, HubSpot bruger til at give en app adgang til jeres data, uden at nogen udleverer et brugernavn og et password. Appen beder om en afgrænset liste af rettigheder, en bruger i kontoen godkender dem, og appen får til gengæld et token, der udløber efter 30 minutter og kan fornyes. Modstykket er et private app-token, som I selv opretter inde i kontoen, og som ikke udløber. Forskellen handler om, hvem der skal kunne installere integrationen, og hvor let den skal kunne lukkes ned igen.
Et konkret forløb: I køber en app, der skal synkronisere ordrer fra e-conomic. Ved installationen sender appen jer til HubSpot, hvor der står præcis hvilke objekter den vil læse og skrive, typisk kontakter, virksomheder og deals. En Super Admin trykker godkend, appen får sit token, og synkroniseringen kører. Siger I appen op et halvt år senere, afinstallerer I den under Connected Apps, og adgangen ophører med det samme. Ingen skal skifte password, og ingen skal huske, hvilke andre systemer der brugte det.
For danske virksomheder er det her sjældent et rent IT-spørgsmål. OAuth afgør, om koblingen til økonomisystemet kan revideres, om et bureau kan få midlertidig adgang uden at få nøglerne til hele CRM'et, og om I kan dokumentere over for en revisor eller i en databehandleraftale, hvem der reelt kan læse jeres kundedata. Resten af siden gennemgår mekanikken, hvad danske B2B-teams konkret bruger det til, og hvad det koster i licenskroner og udviklingstimer.
Sådan virker OAuth i HubSpot
OAuth er en aftale om adgang mellem tre parter: jeres HubSpot-konto, den app der vil læse eller skrive data, og den bruger der siger ja. I stedet for et kodeord får appen et token, der kun dækker bestemte handlinger og kun i en bestemt periode. Det lyder som en teknisk detalje. I praksis er det dét, der afgør, om en integration kan gennemgås, begrænses og lukkes ned igen, uden at nogen skal skifte adgangskode i fem systemer.
Flowet begynder med en URL. Appen sender brugeren til app.hubspot.com/oauth/authorize med sit client_id, en liste af scopes og en redirect_uri. Brugeren vælger, hvilken HubSpot-konto der skal godkendes, ser hvad appen beder om, og trykker ja. Derefter sender HubSpot brugeren tilbage til redirect_uri med en kortlivet kode i adresselinjen. Redirect-adressen skal køre på HTTPS i produktion, og den skal være et domæne og ikke en IP-adresse, hvilket fremgår af HubSpots dokumentation for OAuth-flowet.
Koden er ikke adgangen. Appen skal bytte den til rigtige tokens ved at kalde token-endpointet med grant_type sat til authorization_code og sin client_secret i kroppen af kaldet. Svaret indeholder et access token, et refresh token, kontoens hub_id, de scopes der faktisk blev givet, og et expires_in på 1800 sekunder. HubSpots reference for administration af OAuth-tokens beskriver også introspect-kaldet, som I kan bruge til at slå op, hvilken konto og hvilke scopes et token hører til.
Access token og refresh token løser to forskellige opgaver. Access token er det, der ligger i Authorization-headeren på hvert eneste API-kald, og det holder en halv time. Refresh token udløber ikke af sig selv og bruges til at hente et nyt access token, når det gamle er dødt. Frem til november 2021 holdt access tokens seks timer, og da HubSpot skar dem ned til 30 minutter, blev integrationer bygget på den gamle antagelse ved med at fejle, indtil nogen læste expires_in i stedet for at hardcode et interval. HubSpots ændringslog om udløbstiden på OAuth-tokens er stadig den præciseste kilde til den detalje.
Scopes er den anden halvdel af aftalen. En app beder om en liste som crm.objects.contacts.read og crm.objects.deals.write og får præcis dem, hverken mere eller mindre. Beder appen om et scope, kontoen ikke har adgang til på sit tier, fejler hele godkendelsen. Derfor findes optional_scope: de rettigheder, der bliver droppet lydløst, hvis kontoen ikke kan levere dem, i stedet for at vælte installationen for kunden.
Tokenet afspejler appens scopes, ikke brugerens rettigheder. Det overrasker mange CRM-ansvarlige. Når en bruger med begrænset adgang godkender en app, der har bedt om læseadgang til alle deals, kan appen læse alle deals. Rettighedsstyringen på brugerniveau gælder brugerfladen og visningerne i HubSpot, ikke det token appen har fået. Skal en integration kun se en delmængde af data, skal den begrænsning bygges ind i appen selv.
Der findes to andre veje ind i den samme API. Et private app-token er en statisk nøgle, I opretter inde i jeres egen konto, og som ikke udløber. Det er hurtigere at komme i gang med og rigeligt til et script, der kun skal røre jeres egne data. En public app bruger OAuth, kan installeres af mange konti med ét klik og er den eneste vej til App Marketplace, til webhooks og til timeline events. Vælger I forkert tidligt, er prisen typisk, at integrationen skal bygges om, den dag den skal deles med andre.
Siden 2025 bygger HubSpot nye apps i en projektbaseret udviklerplatform med en CLI og en konfigurationsfil i stedet for formularer i browseren. De gamle apps ligger nu under Legacy Apps i menuen og virker fortsat. Autentificeringen kan være enten statisk token eller OAuth, og et par funktioner er bundet til det ene: app events og app objects kræver marketplace-OAuth, mens serverless functions og SCIM kræver statisk token.
Der er også sat datoer på det gamle. Fra maj 2026 skal alle nye app-listings, certificeringer og recertificeringer bruge de nye OAuth v3-endpoints, POST /oauth/2026-03/token sammen med token/introspect og token/revoke. Fra 2. november 2026 skal en app køre på en understøttet platformversion, legacy CRM cards må ikke bruges i nye listings og forsvinder helt efter 31. oktober 2026, og v4-API'erne mister support i marts 2027. Det står samlet i HubSpots opdatering af krav til app-listings fra maj 2026, og det er værd at læse, inden I bestiller en integration, der skal leve i flere år.
Det, der typisk går galt, er ikke selve flowet. Det er driften bagefter. To servere, der fornyer det samme token samtidig. Et refresh token, der ligger i klartekst i en logfil. En 401-fejl, der bliver forsøgt igen i en løkke, i stedet for at appen beder brugeren om at godkende på ny. HubSpots egen anbefaling er at kryptere tokens med AES-256 og holde nøglerne adskilt fra data, tage en lås før fornyelse, og respektere Retry-After-headeren ved en 429 frem for at prøve igen med det samme.
Skal I koble HubSpot sammen med e-conomic, Business Central eller jeres eget produkt, hjælper vi med at vælge mellem private app og OAuth, sætte de rigtige scopes og bygge integrationen, så den kan driftes og gennemgås bagefter. Vi tager også de ældre integrationer, der kører på et delt login eller på en platformversion, der mister support i 2026. Fortæl os hvilke systemer der skal tale sammen, så giver vi et konkret bud på omfanget.
Hvad danske B2B-teams bruger OAuth til
OAuth er sjældent et mål i sig selv. Det dukker op i det øjeblik, noget skal tale sammen: økonomisystemet, webshoppen, kundeportalen eller et rapporteringsværktøj, der skal have fat i CRM-data. Det er de samme seks mønstre, der går igen hos danske virksomheder.
Kobling til e-conomic eller Business Central
En færdig app fra App Marketplace installeres med ét klik, og OAuth-godkendelsen er præcis dét klik. En dansk produktionsvirksomhed, der fakturerer i e-conomic, får ordrer og fakturastatus tilbage på deal-recorden, så sælgerne ikke skal logge ind to steder for at svare på, om kunden har betalt. Når standardappen ikke rammer kontoplanen eller feltopsætningen, bygger vi koblingen som en dedikeret app i stedet, og så er det den samme OAuth-mekanik, der ligger under. Vi har samlet mønstrene på siden om HubSpot-integrationer til e-conomic og Business Central.
Kundeportal eller selvbetjening på eget website
Websitet skal vise data fra CRM'et, for eksempel sagsstatus eller abonnementer, uden at nogen logger ind i HubSpot. Her kører koden på jeres egen server med et token, og scopes begrænses til læseadgang på de objekter, portalen faktisk viser. En dansk servicevirksomhed kan lade kunden se sine åbne tickets uden at åbne for hele kundedatabasen.
Rapportering i Power BI eller et data warehouse
Når ledelsesrapporteringen ligger uden for HubSpot, skal noget trække data ud på faste tidspunkter. En natlig pipeline med læse-scopes på deals, kontakter og virksomheder er nok, og den adgang kan holdes skarpt adskilt fra alt, der skriver tilbage. Det er også her, rate limits først begynder at gøre ondt, fordi et fuldt træk rammer API'et hårdere, end nogen havde regnet med.
Eget produkt, der skal sælges til flere HubSpot-kunder
Et dansk softwarehus, der vil tilbyde sin løsning til andre HubSpot-kunder, kan ikke bruge private app-tokens. Public app og OAuth er eneste vej, hvis kunderne skal kunne installere selv, og det er også forudsætningen for at komme i App Marketplace. Her bliver kravene fra maj 2026 til en konkret udviklingsopgave og ikke en formalitet.
Afløsning af et delt login
Mange ældre integrationer startede med en systembruger, et password og en note i en delt mappe. Skifter den medarbejder job, eller ændres kodeordet, går integrationen i stå uden varsel. Flytter I den til OAuth, er adgangen knyttet til en app og ikke til en person, og den kan gennemgås uden at nogen skal gætte sig frem.
Midlertidig adgang til et bureau eller en konsulent
En ekstern part, der skal køre en migrering eller en oprydning, behøver ikke et fuldt seat og slet ikke Super Admin-rettigheder resten af året. En app med et snævert sæt scopes, der afinstalleres bagefter, er en renere løsning. Bemærk at selve installationen kræver enten Super Admin eller App Marketplace-rettigheder, hvilket fremgår af HubSpots vejledning om at forbinde apps til kontoen.
Fællesnævneren i alle seks tilfælde er, at adgangen kan trækkes tilbage igen. Sælger I virksomheden, skifter bureau eller opsiger en leverandør, fjerner I appen under Connected Apps, og tokenet holder op med at virke. Det kan man ikke sige om et password, der har cirkuleret i en mailtråd.
Alternativer, priser og begrænsninger
OAuth er ikke den eneste vej ind i HubSpots data, og for en række opgaver er det hverken den hurtigste eller den billigste. Her er de reelle alternativer, med de priser vi har kunnet verificere i september 2026.
Private app-token, HubSpots egen genvej
I opretter appen inde i kontoen, vælger scopes i en formular og får et token, der ikke udløber. Det koster ikke noget ud over abonnementet og virker på alle tiers, også de gratis værktøjer. Svagheden er, at det kun gælder jeres egen konto, at det ikke kan komme i App Marketplace, og at et token uden udløb er en nøgle, nogen skal holde styr på i årevis. Se opslaget om private app for den fulde gennemgang.
Zapier og Make, integration uden kode
Begge håndterer OAuth-godkendelsen for jer og skjuler den bag en forbindelsesknap. Zapier ligger pr. september 2026 på 0 USD om måneden for 100 opgaver, 19,99 USD for Professional og 69 USD for Team med op til 25 brugere. Det er en fornuftig løsning til nogle få hundrede hændelser om måneden. Skal I flytte titusindvis af rækker, bliver opgavebaseret prissætning dyrere end at bygge integrationen selv.
HubSpots egen data sync
For de mest udbredte systemer findes der en tovejssynkronisering, I sætter op med felter og filtre i brugerfladen i stedet for kode. Der er ingen tokens at passe på, og opsætningen tager timer frem for uger. Til gengæld får I kun de felter og den logik, HubSpot har bygget ind, og så snart forretningsreglen er speciel, rammer I loftet.
Salesforce, Pipedrive og Zoho CRM
Billedet ser ens ud hos konkurrenterne. Salesforce bruger connected apps med OAuth 2.0, Zoho CRM kører OAuth 2.0 med mulighed for en self client til rene server-til-server-opgaver, og Pipedrive tilbyder både et personligt API-token og OAuth til marketplace-apps, altså præcis de to modeller HubSpot har. Pipedrive ligger pr. september 2026 på 14 USD pr. bruger om måneden for Lite og 79 USD for Ultimate ved årlig binding. Forskellen ligger sjældent i protokollen og næsten altid i, hvor mange færdige apps der findes til lige netop jeres økonomisystem.
Hvor vinder HubSpot så. Først og fremmest på bredden: ét token giver adgang til kontakter, virksomheder, deals, tickets, produkter, marketing events og custom objects i den samme datamodel, og det sparer den oversættelse mellem systemer, der normalt er halvdelen af et integrationsprojekt. Installationsflowet er også mærkbart lettere end at få en Salesforce-administrator til at oprette en connected app. HubSpot taber til gengæld på granularitet. Der er ingen indbygget måde at give en app adgang til kun én pipeline eller kun kunder i ét land, og det er en reel begrænsning, hvis I har flere forretningsenheder i samme konto.
Selve OAuth koster ingenting. Der er ingen licens, intet add-on og ingen betaling for at oprette en developer-konto eller en app. Det, der koster, er det abonnement, API-adgangen hænger på, og de timer, nogen bruger på at bygge og drifte integrationen.
Tiers styrer til gengæld, hvor meget I må hente. Pr. september 2026 koster Sales Hub Starter 7 USD pr. seat om måneden ved årlig binding og 20 USD ved månedlig betaling, Professional starter på 90 USD pr. seat om måneden med et engangsgebyr for onboarding på 1.500 USD, og Enterprise starter på 150 USD pr. seat med 3.500 USD i onboarding. Tallene fremgår af HubSpots prisside for Sales Hub, og de ændrer sig ofte nok til, at I skal tjekke dem igen, inden I budgetterer.
Seat-modellen spiller kun indirekte ind. En integration bruger ikke et seat, men den bruger, der skal installere appen, skal have enten Super Admin eller App Marketplace-rettigheder, og den slags rettigheder følger de betalte seats. I praksis betyder det, at IT-chefen eller en enkelt CRM-ansvarlig ejer installationen, mens resten af organisationen ikke kan ændre på den.
De hårde grænser er værd at kende, inden I designer noget. For private apps er burst-grænsen 100 kald pr. 10 sekunder pr. app på Free og Starter og 190 på Professional og Enterprise, med et dagligt loft på 250.000 kald for en konto på Free eller Starter, 625.000 på Professional og 1.000.000 på Enterprise. Et API Limit Increase-add-on hæver burst-grænsen til 250 og dagsloftet til 1.000.000 og kan købes maksimalt to gange.
For public apps med OAuth gælder der noget andet, og det er den detalje, der oftest bliver overset. Hver enkelt konto, der installerer jeres app, er begrænset til 110 kald pr. 10 sekunder, og det tal kan ikke hæves med add-on'et. Search-API'et tæller for sig og returnerer ikke de sædvanlige headere. Overskrider I grænsen, får I 429 på alle efterfølgende kald, og svaret fortæller via policyName, om det var dagsloftet eller burst-grænsen, der blev ramt. Det hele står i HubSpots retningslinjer for API-forbrug og grænser, og tallene går igen i opslaget om usage and limits.
På GDPR-siden er der to ting, der skal holdes adskilt. Det ene er, hvor data ligger. HubSpot kører på AWS i fem regioner, og EU-datacentret ligger i Tyskland. En betalt konto kan bede om at blive flyttet dertil, mens gratis konti skal opgraderes først. Databehandleraftalen dækker EU-US Data Privacy Framework og Kommissionens standardkontraktbestemmelser, og HubSpot skriver selv, at data i visse tilfælde alligevel behandles uden for jeres region, blandt andet ved support, sikkerhedsdrift og tredjepartsintegrationer. Det fremgår af HubSpots FAQ om cloud-infrastruktur og datahosting.
Det andet er selve integrationen. I det øjeblik en app får et token med læseadgang til jeres kontakter, behandler leverandøren bag appen persondata på jeres vegne, og så skal der en aftale til og en linje i jeres fortegnelse. Valget af scopes er derfor også et dokumentationsvalg. Jo snævrere scopes, jo mindre skal I forklare. Tjek samtidig, hvor leverandørens egne servere står, for en EU-hostet HubSpot-konto hjælper ikke, hvis mellemleddet kører et helt andet sted.
Hvornår kan det så ikke betale sig. Skal I flytte data én gang, for eksempel ved en migrering, er en CSV-import og en eftermiddags oprydning billigere end nogen integration. Har I under ti brugere og ét system at koble til, er en færdig app fra App Marketplace næsten altid rigtigere end en egenudviklet. Og skal integrationen kun bruges internt i jeres egen konto, er et private app-token hurtigere at komme i gang med og lettere at drifte end et fuldt OAuth-flow med refresh-logik, låse og krypteret opbevaring.
Vores erfaring er, at valget mellem private app og OAuth bliver truffet for tidligt og på for tyndt et grundlag. Spørgsmålet er ikke, hvad der er nemmest at bygge i denne uge, men hvem der skal kunne installere, gennemgå og fjerne integrationen om to år. Den slags tager vi som en fast del af arbejdet med HubSpot-platformen, og svaret afhænger af, om løsningen skal leve hos jer alene eller ude hos jeres egne kunder.
Relaterede begreber
Private apps i HubSpot forklaret: scopes, access token, rate limits, de 20 apps pr. konto, priser og hvad der afløser dem i efteråret 2026.
Webhooks i HubSpot forklaret: mekanik, tiers, priser pr. september 2026, alternativer som Zapier og Make, hårde grænser og GDPR i dansk kontekst.
Integration i HubSpot forklaret: marketplace-apps, data sync og private apps, med daterede priser, API-grænser og EU-datacenter.
Hvor går grænserne i HubSpot? API-kald, lister, properties, credits og marketing contacts pr. tier, med daterede priser og følgerne af overskridelse.
Se hvad HubSpot App Marketplace er, hvem der må installere apps, hvilke API-grænser der gælder, og hvad alternativerne koster.
Sådan integrerer du HubSpot med e-conomic, Business Central og andre ERP-systemer: data sync, apps, priser fra september 2026, API-grænser og faldgruber.
Data sync forbinder HubSpot med over 100 apps uden kode. Se hvordan synkroniseringen virker, hvad Data Hub koster, og hvor grænserne går.
Developer Seat er HubSpots gratis plads til udviklere. Se hvad den giver adgang til, hvad den ikke giver, og hvornår du skal vælge noget andet.
Ofte stillede spørgsmål om OAuth i HubSpot
Hvad er forskellen på OAuth og et private app-token?+
Et private app-token er en statisk nøgle, I selv opretter i jeres egen konto, og det udløber ikke. OAuth er et flow, hvor en bruger godkender appen, og appen får et access token med 30 minutters levetid plus et refresh token. Private apps er hurtigere at komme i gang med, men gælder kun den ene konto. OAuth er kravet, hvis appen skal kunne installeres af flere konti eller listes i App Marketplace.
Hvilket HubSpot-tier kræver OAuth?+
OAuth kræver ikke noget bestemt tier og koster ikke noget. I kan oprette en developer-konto og en app gratis. Det er de enkelte scopes, der er tier-afhængige: beder appen om adgang til en funktion, kontoen ikke har, fejler godkendelsen, medmindre I har markeret scopet som optional_scope. Rate limits følger også abonnementet, fra 100 kald pr. 10 sekunder på Free og Starter til 190 på Professional og Enterprise.
Hvor længe holder et HubSpot access token?+
1800 sekunder, altså 30 minutter. Det fremgår af expires_in i svaret fra token-endpointet, og I bør læse den værdi frem for at hardcode et interval. Frem til november 2021 var levetiden seks timer. Refresh tokens udløber ikke af sig selv og holder, indtil appen afinstalleres eller adgangen tilbagekaldes.
Kan OAuth erstatte vores systembruger med delt password?+
Ja, og det er som regel en god idé. Med OAuth er adgangen knyttet til en app og ikke til en medarbejder, så integrationen går ikke i stå, når nogen skifter job eller ændrer kodeord. I kan samtidig se under Connected Apps, hvilke apps der har adgang, og fjerne dem enkeltvis. Selve installationen kræver Super Admin eller App Marketplace-rettigheder.
Hvad betyder OAuth for GDPR og vores databehandleraftale?+
En app med læseadgang til jeres kontakter behandler persondata på jeres vegne, så leverandøren er databehandler og skal stå i jeres fortegnelse. Snævre scopes reducerer både risikoen og dokumentationsbyrden. HubSpot har et EU-datacenter i Tyskland, som betalte konti kan flyttes til, men tjek også hvor leverandørens egne servere står, for det er der, data reelt passerer.
Hvad skal vi være opmærksomme på i 2026?+
Fra maj 2026 skal nye app-listings, certificeringer og recertificeringer bruge de nye OAuth v3-endpoints med POST /oauth/2026-03/token. Fra 2. november 2026 skal apps køre på en understøttet platformversion, legacy CRM cards udgår helt efter 31. oktober 2026, og v4-API'erne mister support i marts 2027. Har I en ældre integration, er det nu, planen for opgraderingen skal lægges.
Hvor mange API-kald må vores integration lave?+
For private apps er det 100 kald pr. 10 sekunder pr. app på Free og Starter og 190 på Professional og Enterprise, med et dagligt loft på henholdsvis 250.000, 625.000 og 1.000.000 kald pr. konto. For public apps med OAuth gælder 110 kald pr. 10 sekunder pr. installeret konto, og det tal kan ikke hæves med API Limit Increase-add-on'et. Ved overskridelse får I 429 og skal respektere Retry-After-headeren.