Dina Facebook-automatiseringar “går” oftast inte sönder. De slutar bara tyst fungera när en Page Access Token har löpt ut, och du märker det först efter att ett inlägg misslyckas eller att leads slutar synka.
Den här automatiseringen för förnyelse av Facebook-token drabbar marknadschefer först, men byråägare och drift/ops som underhåller kundsidor känner också av det. I stället för att jaga inloggningar varannan vecka har du en enda, aktuell token tillgänglig när dina flöden behöver den.
Det här n8n-flödet förnyar långlivade Page-tokens enligt schema och sparar de senaste värdena så att du slipper brandkårsutryckningar. Nedan ser du hur det körs, vad det sparar åt dig och vad du behöver för att koppla in det i din miljö.
Så fungerar automatiseringen
Hela n8n-flödet, från trigger till slutligt output:
n8n Workflow Template: Facebook + Google Sheets: tokens förblir giltiga
flowchart LR
subgraph sg0["Schedule Flow"]
direction LR
n0@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Parameter", pos: "b", h: 48 }
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Out", pos: "b", h: 48 }
n2@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields", pos: "b", h: 48 }
n3@{ icon: "mdi:cog", form: "rounded", label: "Upsert row(s)", pos: "b", h: 48 }
n4@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger", pos: "b", h: 48 }
n5["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Get long lived facebook user.."]
n6["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Get list facebook page"]
n7["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Get long lived facebook page.."]
n1 --> n2
n2 --> n3
n0 --> n5
n4 --> n0
n6 --> n7
n7 --> n1
n5 --> n6
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n4 trigger
class n5,n6,n7 api
classDef customIcon fill:none,stroke:none
class n5,n6,n7 customIcon
Problemet: utgångna Facebook-tokens skapar fel i dina automatiseringar
Facebook Page Access Tokens har en tendens att löpa ut vid sämsta möjliga tidpunkt. Ena dagen fungerar din lead-synk. Nästa dag uppdateras ingenting, din rapportering saknar rader och någon frågar varför kampanjen “stoppade”. Då sitter du i Facebook Developer Tools och försöker minnas vilken app som äger tokenen, vilken användare som skapade den och var du klistrade in den senast. Under tiden tickar kostnaden: missade leads, försenade svar och timmar som går åt till att städa behörigheter i stället för faktiskt marknadsarbete.
Det blir snabbt mycket. Här är var det oftast faller isär.
- Du märker att tokenen gått ut först efter att ett inlägg, ett annonsflöde eller en lead-synk tyst misslyckas.
- Tokens finns på för många ställen (ett dokument, en kollegas anteckningar, ett gammalt flöde), så du uppdaterar ett och glömmer resten.
- Manuell förnyelse drar in dig i Facebook Developer Tools, vilket sällan går snabbt när du har bråttom.
- När du hanterar flera sidor blir förnyelse sida för sida en återkommande underhållsuppgift som aldrig riktigt tar slut.
Lösningen: förnya Page-tokens enligt schema och spara senaste värdet
Det här flödet hanterar token-utgång på det tråkiga sättet, vilket är ärligt talat det bästa sättet. Det körs enligt schema (varannan månad som standard), byter din kortlivade Facebook-användartoken mot en långlivad användartoken och använder sedan den långlivade tokenen för att hämta listan över Facebook-sidor du hanterar. För varje sida begär det aktuell Page Access Token, plockar ut fälten du bryr dig om (token, sidnamn, sid-ID) och sparar dem i en tabell så att dina andra automatiseringar alltid kan hämta “senaste token”. Ingen Slack-paniken. Inget detektivarbete kring “varför stoppade det?”.
Flödet startar med en schemalagd trigger. Därefter hanterar HTTP-anrop tokenbytet och hämtningen av sidtokens. Till sist mappar n8n fälten och gör en upsert av varje sidas post i lagringen (som du kan peka mot en datatabell eller Google Sheets).
Det du får: automatisering vs. resultat
| Det här flödet automatiserar | Resultatet du får |
|---|---|
|
|
Exempel: så ser det ut i praktiken
Säg att du hanterar 6 Facebook-sidor och har 3 flöden som är beroende av en giltig Page-token (leadinsamling, publicering och rapportering). När en token löper ut lägger du normalt cirka 15 minuter på att hitta rätt app/användare, generera rätt värden och sedan uppdatera tokens i varje flöde, vilket blir ungefär 1–2 timmar per “incident”. Med den här automatiseringen lägger du kanske 20 minuter en gång på att sätta behörigheter i n8n, och sedan förnyar flödet tokens varannan månad automatiskt. Därefter läser dina andra automatiseringar bara den senaste tokenen från ett ställe.
Det här behöver du
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
- Facebook Developer App för att generera client ID och secret.
- Google Sheets för att lagra tokens i ett delat kalkylark.
- Facebook-inloggningsuppgifter (client_id, client_secret, user_access_token, app_scoped_user_id från Facebook Developer Tools)
Kunskapsnivå: Medel. Du klistrar in uppgifter, testar API-anrop och bekräftar att kolumnerna i sheet/tabell matchar.
Vill du inte sätta upp det här själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
En schemalagd körning startar allt. Flödet använder en n8n Schedule Trigger inställd på varannan månad, så tokenförnyelsen sker innan utgång blir ett problem.
Inloggningsuppgifter laddas en gång, konsekvent. I ett enda steg, “Assign Auth Variables”, anger du dina Facebook-appuppgifter och den initiala användartokenen, vilket håller allt samlat och enklare att underhålla.
Facebooks tokenbyte sker via HTTP-anrop. n8n anropar Facebooks endpoints för att byta den kortlivade användartokenen mot en långlivad användartoken och hämtar sedan listan över sidor du hanterar och begär en Page-token för var och en.
Tokens formateras och lagras där teamet kommer åt dem. Flödet delar upp sidlistan i individuella poster, mappar fälten token/namn/id och gör en upsert så att din “senaste token” alltid finns tillgänglig (i en n8n Data Table som standard, eller Google Sheets om du föredrar det).
Du kan enkelt justera schemat och var tokens lagras utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera schedule trigger
Det här arbetsflödet startar enligt ett schemalagt intervall och uppdaterar sedan Facebook-sidtokens.
- Lägg till eller öppna Scheduled Run Initiator.
- Ställ in schemaregeln så att den körs var
2månad (noden använder ett months-intervall på2). - Koppla Scheduled Run Initiator till Assign Auth Variables.
Steg 2: Anslut Facebook auth-indata
Dessa variabler används av HTTP-förfrågningarna för att hämta och uppdatera långlivade tokens.
- Öppna Assign Auth Variables och ställ in följande fält:
- Ställ in client_id till
[YOUR_ID]. - Ställ in client_secret till
[CONFIGURE_YOUR_API_KEY]. - Ställ in user_access_token till
[CONFIGURE_YOUR_TOKEN]. - Ställ in app_scoped_user_id till
[YOUR_ID]. - Låt long_user_access_token vara mappad till
{{ $json.body.access_token }}. - Koppla Assign Auth Variables till Fetch Long User Token.
Steg 3: Sätt upp förfrågningar för tokenhämtning
Dessa HTTP-förfrågningar byter användartoken mot en långlivad token och hämtar sedan sidlistan.
- Öppna Fetch Long User Token och ställ in URL till
https://graph.facebook.com/v23.0/oauth/access_token. - Aktivera Send Query och konfigurera query-parametrar:
- grant_type =
fb_exchange_token - client_id =
{{ $json[' client_id'] }} - client_secret =
{{ $json[' client_secret'] }} - fb_exchange_token =
{{ $json.user_access_token }} - Öppna Retrieve Page Catalog och ställ in URL till
https://graph.facebook.com/v23.0/me/accounts. - Ställ in query-parametern access_token till
{{ $json.body.access_token }}. - Bekräfta flödet Fetch Long User Token → Retrieve Page Catalog.
Steg 4: Hämta och mappa sidtokens
Det här avsnittet hämtar sidtokens, delar upp listan och mappar värdena för lagring.
- Öppna Request Page Token och ställ in URL till
=https://graph.facebook.com/v23.0/{{ $('Assign Auth Variables').item.json.app_scoped_user_id }}/accounts. - Ställ in Method till
=GEToch aktivera Send Query. - Ställ in query-parametern access_token till
{{ $('Fetch Long User Token').item.json.body.access_token }}. - Koppla Retrieve Page Catalog → Request Page Token → Expand Records.
- I Expand Records ställer ni in Field to Split Out till
body.dataoch Include tillallOtherFields. - Öppna Map Token Fields och mappa:
- access_token =
{{ $json['body.data'].access_token }} - name =
{{ $json['body.data'].name }} - id =
{{ $json['body.data'].id }}
Steg 5: Konfigurera upsert till utdatatabellen
Lagra de uppdaterade tokens i er datatabell med en upsert-operation.
- Öppna Upsert Table Records och ställ in Operation till
upsertmed Match Type inställt påallConditions. - Välj er måldatatabell i Data Table ID (ersätt
[YOUR_ID]). - Mappa kolumner:
- token =
{{ $json.access_token }} - id_page =
{{ $json.id }} - name_page =
{{ $json.name }} - Ställ in filtervillkoret id_page till
{{ $json.id }}för att säkerställa matchning vid upsert. - Bekräfta flödet Map Token Fields → Upsert Table Records.
Steg 6: Testa och aktivera ert arbetsflöde
Verifiera hela flödet från början till slut innan ni aktiverar schemalagda körningar.
- Klicka på Execute Workflow för att köra det manuellt.
- Verifiera att Fetch Long User Token returnerar en
body.access_tokenoch att Request Page Token returnerar en lista ibody.data. - Bekräfta att Upsert Table Records skriver eller uppdaterar rader i er datatabell med token, id_page och name_page.
- När allt fungerar, växla arbetsflödet till Active för att aktivera schemalagd körning.
Vanliga fallgropar
- Facebook Developer-uppgifter kan löpa ut eller sakna behörigheter. Om det uppstår fel, kontrollera appinställningar och tokenstatus i Facebook Developer Tools först.
- Om du lägger till Wait-noder eller om Facebooks API svarar långsamt varierar körtiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
- Skrivningar till Google Sheets kan misslyckas när rubrikerna i arket ändras. Om du byter namn på kolumner, uppdatera mappningen så att token, sidnamn och sid-ID fortfarande hamnar på rätt ställen.
Vanliga frågor
Cirka 30 minuter om du redan har dina Facebook-appuppgifter.
Nej. Du klistrar in uppgifter, kopplar konton och testkör en körning i n8n.
Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volym. Du behöver också räkna in användning av Facebook API (oftast minimal för anrop som förnyar tokens).
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och hanterar n8n bra. Self-hosting ger obegränsat antal körningar men kräver grundläggande serverhantering.
Ja, men du vill lägga filtret på rätt ställe. Efter att flödet har expanderat listan över sidor till individuella poster lägger du in ett filtersteg som bara behåller matchande sid-ID:n eller sidnamn. Låt sedan mappning och upsert fortsätta som vanligt, så att bara de sidor du bryr dig om hamnar i din tabell eller ditt Google Sheet.
Oftast beror det på utgångna eller ogiltiga uppgifter i värdena under “Assign Auth Variables”, särskilt den kortlivade user_access_token du börjar med. Generera den tokenen på nytt i Facebook Developer Tools och kör sedan flödet igen för att bekräfta att det kan byta den mot en långlivad användartoken. Ett annat vanligt problem är saknade behörigheter i Facebook-appen (eller hos användaren som skapade tokenen), vilket gör att sidtokens inte kan hämtas för vissa sidor. Om det bara fallerar för en kundsida, kontrollera att du faktiskt har administratörsrättigheter för den sidan under samma användare.
För de flesta små team fungerar det med dussintals sidor utan problem eftersom flödet bara gör några API-anrop per sida enligt schema.
Ofta, ja, eftersom tokenförnyelseflöden brukar kräva HTTP-anrop i flera steg, datamappning och en pålitlig plats att lagra det senaste värdet. n8n hanterar den typen av logik snyggt, och med self-hosting betalar du inte per litet steg. Zapier eller Make kan fungera, men du lägger ofta mer tid på att brottas med “bara ett webbanrop till”-problemet och stegbegränsningar. Om din setup är enkel och du redan jobbar i de verktygen är de okej. Om du är osäker, prata med en automationsexpert så får du en rak rekommendation.
När det här väl rullar blir tokenförnyelse bakgrundsbrus. Dina Facebook-flöden fortsätter leverera, och du får tillbaka tiden till det arbete som faktiskt får kontot att växa.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.