Att flytta autentiseringsuppgifter mellan självhostade n8n-instanser blir ofta en riskfylld ritual: exportera, dekryptera, kopiera, klistra in, hoppas att du inte missade ett tecken, och sedan felsöka ett fel du inte enkelt kan återskapa.
Den här automatiseringen för Google Forms-autentiseringsuppgifter träffar DevOps-folk först, men byråteam som hanterar kundmiljöer och operatörer som kör staging/production-par känner av det också. Du får ett guidat, repeterbart flöde för överföring som minskar manuellt handpåläggande och de onödiga misstag som följer med det.
Nedan ser du hur arbetsflödet flyttar en vald autentiseringsuppgift från en instans till en annan, vad du behöver för att köra det säkert och fallgroparna som faktiskt spelar roll i verkligheten.
Så fungerar den här automatiseringen
Hela n8n-arbetsflödet, från trigger till slutresultat:
n8n Workflow Template: Hostinger VPS + Google Forms: säkra flyttar av inlogg
flowchart LR
subgraph sg0["On form submission Flow"]
direction LR
n0["<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/form.svg' width='40' height='40' /></div><br/>Success"]
n1["<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/form.svg' width='40' height='40' /></div><br/>Error"]
n2["<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/>Create Credential"]
n3["<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/code.svg' width='40' height='40' /></div><br/>Get Instance Names"]
n4@{ icon: "mdi:swap-vertical", form: "rounded", label: "Settings", pos: "b", h: 48 }
n5@{ icon: "mdi:cog", form: "rounded", label: "Export Credentials", pos: "b", h: 48 }
n6@{ icon: "mdi:cog", form: "rounded", label: "Get Credentials Data", pos: "b", h: 48 }
n7@{ icon: "mdi:cog", form: "rounded", label: "Binary to JSON", pos: "b", h: 48 }
n8["<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/code.svg' width='40' height='40' /></div><br/>Get Credential Names"]
n9["<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/form.svg' width='40' height='40' /></div><br/>Choose Instance"]
n10["<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/form.svg' width='40' height='40' /></div><br/>Choose Credential"]
n11["<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/code.svg' width='40' height='40' /></div><br/>Prepare Request Data"]
n12["<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/form.svg' width='40' height='40' /></div><br/>On form submission"]
n4 --> n3
n7 --> n8
n9 --> n5
n10 --> n11
n2 --> n0
n2 --> n1
n5 --> n6
n3 --> n9
n12 --> n4
n8 --> n10
n6 --> n7
n11 --> n2
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 n12 trigger
class n2 api
class n3,n8,n11 code
classDef customIcon fill:none,stroke:none
class n0,n1,n2,n3,n8,n9,n10,n11,n12 customIcon
Problemet: överföringar av autentiseringsuppgifter är sköra och riskfyllda
Om du kör mer än en självhostad n8n-instans (dev, staging, kundspecifik, eller en ny VPS-migrering) blir hanteringen av autentiseringsuppgifter snabbt en flaskhals. Antingen bygger du om uppgifterna för hand eller försöker “flytta över dem” med ad-hoc-exporter, shell-kommandon och anteckningar i en lösenordshanterare. Ett missat fält, en felaktig base URL, en inklistrad hemlighet med ett extra mellanslag – och plötsligt fallerar dina arbetsflöden på sätt som ser ut som API-avbrott. Det handlar inte bara om tid. Det handlar om förtroende. Och under en serverflytt är stressen påtaglig.
Det eskalerar snabbt. Här är där det oftast går snett.
- Folk slutar med att återskapa autentiseringsuppgifter manuellt, vilket är långsamt och lätt att göra fel.
- Export samt dekryptering/återkryptering hanteras inkonsekvent mellan miljöer.
- Det finns ingen guidad väg, så processen finns bara i någons huvud (eller i en inaktuell dokumentation).
- Under VPS-migreringar gör du detta samtidigt som du ändrar DNS, repo:n och runtime-inställningar.
Lösningen: ett guidat Google Forms-flöde som överför en autentiseringsuppgift säkert
Det här arbetsflödet gör flytt av autentiseringsuppgifter till en guidad “wizard” i flera steg med n8n Forms. Du börjar med att öppna en formulär-URL och väljer sedan en destinationsinstans från en fördefinierad lista som du underhåller i en nod av Settings-typ. När du valt vart autentiseringsuppgiften ska, exporterar arbetsflödet och läser den aktuella instansens credential-filer med ett Execute Command-steg (därför måste detta köras på självhostad n8n). Det konverterar exporterad data till JSON, bygger en strukturerad lista med credential-namn och låter dig välja exakt ett objekt att flytta. Till sist sätter det ihop request-payloaden och anropar destinationsinstansens n8n-API för att skapa autentiseringsuppgiften, och visar sedan en slutförd- eller fel-skärm så att du slipper gissa vad som hände.
Arbetsflödet startar när formuläret skickas. Därefter hämtar det autentiseringsuppgifter lokalt, presenterar en lättläst urvalslista och skickar den valda autentiseringsuppgiften till den fjärrinstansen via en HTTP Request till n8n-API:t. På slutet får du en tydlig framgångs- eller fel-skärm.
Det du får: automatisering vs. resultat
| Det här arbetsflödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du migrerar från en staging-server till en ny Hostinger VPS och behöver flytta 10 autentiseringsuppgifter. Manuell hantering, även om du är snabb, brukar ta runt 10 minuter per credential för att öppna inställningar, återskapa fält, klistra in hemligheter och testa. Det är ungefär 100 minuter, plus den oundvikliga omvägen “varför fallerar Slack”. Med det här arbetsflödet öppnar du en formulär-URL, väljer destination, väljer en credential, skickar in och upprepar; de flesta team flyttar varje credential på cirka 2 minuter, så du hamnar närmare 20 minuter totalt.
Det här behöver du
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för självhosting om du föredrar det (Hostinger fungerar bra)
- Google Forms (n8n Forms) för att köra det guidade flödet i flera steg.
- Destinationsinstans i n8n som tar emot autentiseringsuppgifter via API.
- n8n API-nyckel (skapa den i användarinställningarna på destinationsinstansen).
Kompetensnivå: Mellan. Du kommer att klistra in API-nycklar, justera Settings/instanskonfigurationen och vara bekväm med att köra n8n på en VPS.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
En formulärinlämning startar allt. Form Trigger publicerar en URL som du öppnar i webbläsaren. De första sidorna är enbart guidade val, så du slipper leta runt i n8n-menyer.
Arbetsflödet bygger din destinationslista. Ett steg för instanskonfiguration läser dina fördefinierade fjärrinstanser (name, baseUrl, apiKey) och sammanställer dem till en strukturerad lista för formulärsidan “Välj destinationsinstans”.
Autentiseringsuppgifter exporteras lokalt och blir sedan en urvalslista. Noden Execute Command exporterar credential-filer från den aktuella instansen, n8n läser filutdata, extraherar JSON och sammanställer en lista med credential-namn som du faktiskt känner igen.
Den valda autentiseringsuppgiften skickas till fjärrinstansen. Efter att du valt en credential i formuläret sätter arbetsflödet ihop create-payloaden och skickar den till destinationsinstansens n8n-API. Du hamnar på en slutförd-skärm om det fungerade, eller en fel-skärm om det inte gjorde det.
Du kan enkelt ändra instanslistan och formulärtexterna så att de matchar hur du namnger miljöer. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera formtriggern
Konfigurera arbetsflödets startpunkt så att användare kan starta processen för överföring av autentiseringsuppgifter via ett formulär.
- Lägg till och öppna Form Submission Trigger.
- Ställ in Form Title till
Credential Transfer. - Ställ in Form Description till
This tool allows copying a credential to another n8n instance. - I Form Fields, behåll det enda fältet med Field Label som
och Placeholder somClick "Begin" to continue. - Ställ in Button Label till
Beginoch stäng av Append Attribution.
Steg 2: koppla data för målinstansen
Definiera fjärrinstanserna och rendera formuläret för val av mål.
- Öppna Instance Configuration och ställ in arrayen remoteInstances till
=[{"name":"n8n-test-01","apiKey":"[CONFIGURE_YOUR_API_KEY]","baseUrl":"https://your-instance.example.com/api/v1"}]. - Öppna Compile Instance List och bekräfta att JavaScript Code bygger dropdown-alternativ från
$input.first().json.remoteInstances. - Öppna Select Destination Instance och ställ in Define Form till
json. - Ställ in JSON Output till
=[{"fieldLabel":"Destination","fieldType":"dropdown","requiredField":true,"fieldOptions":{"values": {{ $json.options }} }}].
Exekveringsflöde: Form Submission Trigger → Instance Configuration → Compile Instance List → Select Destination Instance.
Steg 3: exportera och parsa credential-filer
Exportera lokala autentiseringsuppgifter, läs filen och konvertera den till JSON för urval.
- Öppna Export Credential Files och ställ in Command till
n8n export:credentials --all --pretty --decrypted --output=/tmp/cred. - Öppna Read Credential File och ställ in File Selector till
/tmp/cred. - Öppna Convert Binary to JSON och ställ in Operation till
fromJson. - Öppna Compile Credential List och bekräfta att JavaScript Code skapar dropdown-alternativ från
$input.first().json.data. - Öppna Select Credential Item och ställ in JSON Output till
=[{"fieldLabel":"Credential","fieldType":"dropdown","requiredField":true,"fieldOptions":{"values": {{ $json.options }} }}].
Exekveringsflöde: Select Destination Instance → Export Credential Files → Read Credential File → Convert Binary to JSON → Compile Credential List → Select Credential Item.
/tmp och köra CLI-kommandon. Om inte kommer Export Credential Files att misslyckas och inga credentials kommer att listas.Steg 4: bygg överföringspayloaden
Matcha vald credential och målinstans för att bygga API-payloaden.
- Öppna Assemble Request Payload och bekräfta att JavaScript Code hämtar credential-data från
$('Convert Binary to JSON').first().json.data. - Säkerställ att den mappar den valda instansen från
$('Instance Configuration').first().json.remoteInstancesmed hjälp av$('Select Destination Instance').first().json.Destination. - Verifiera att utdata innehåller
output.credentialochoutput.instanceför vidare användning.
Steg 5: konfigurera requesten för att skapa credential
Skapa credentialn i den valda målinstansen och visa en slutförandeskärm.
- Öppna Generate Credential Record och ställ in URL till
={{ $json.instance.baseUrl }}/credentials. - Ställ in Method till
POSToch aktivera Send Body samt Send Headers. - I Body Parameters, ställ in name till
={{ $json.credential.name }}, type till={{ $json.credential.type }}och data till={{ $json.credential.data }}. - I Header Parameters, ställ in X-N8N-API-KEY till
={{ $json.instance.apiKey }}. - Öppna Completion Screen och bekräfta att Completion Title är
✅ Transfer completedoch att Completion Message är=The credential has been transfered..
Exekveringsflöde: Select Credential Item → Assemble Request Payload → Generate Credential Record → Completion Screen.
Steg 6: lägg till feedback för felhantering
Tillhandahåll ett fallback-UI om skapandet av credential misslyckas.
- Öppna Generate Credential Record och säkerställ att den har felutdata aktiverad (den routar till en andra utgång).
- Koppla felutgången till Failure Screen.
- Öppna Failure Screen och bekräfta att Completion Title är
⚠️ Transfer failedoch att Completion Message är=Please check the workflow settings.
Steg 7: testa och aktivera ert arbetsflöde
Kör ett manuellt test och bekräfta att målinstansen tar emot den valda credentialn.
- Klicka på Execute Workflow och öppna test-URL:en för Form Submission Trigger.
- Välj en destination i Select Destination Instance och välj sedan en credential i Select Credential Item.
- Bekräfta att arbetsflödet når Completion Screen med
✅ Transfer completed. - Verifiera att credentialn finns i målinstansen via dess lista över credentials.
- Slå på arbetsflödet till Active för produktionsanvändning.
Vanliga fallgropar
- n8n API-nycklar kan sakna rätt scopes eller helt enkelt vara inaktuella. Om skapandet på fjärrinstansen misslyckas, kontrollera användar-/API-nyckelinställningarna på destinationsinstansen och bekräfta att baseUrl är korrekt.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du att redigera utdata för alltid.
Vanliga frågor
Cirka 30 minuter när dina instanser och API-nycklar är klara.
Nej. Du kommer främst att klistra in värden och uppdatera listan över fjärrinstanser. “Kod”-noderna är redan byggda åt dig.
Ja. n8n har ett gratis alternativ för självhosting 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 din VPS-kostnad på Hostinger och eventuella interna säkerhetsverktyg du använder.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller självhosting på en VPS. För självhosting är Hostinger VPS prisvärd och kör n8n stabilt. Självhosting ger dig obegränsade exekveringar men kräver grundläggande serverhantering.
Ja, det är hela poängen. Lägg till fler destinationsobjekt (name, apiKey, baseUrl) i området för instanskonfiguration/Settings, så kommer logiken “Compile Instance List” att fylla dem i formuläret för val av destination. Vanliga anpassningar är att byta namn på miljöer (Dev/Staging/Prod), begränsa vilka credentials som visas och lägga till ett godkännandesteg innan create-requesten mot fjärrinstansen.
Oftast beror det på fel baseUrl eller en API-nyckel som inte matchar destinationsinstansen. Kontrollera att destinations-URL:en innehåller rätt protokoll (http vs https) och att din nyckel fortfarande är giltig. Om det fungerar för en credential men inte för en annan kan destinationsinstansen redan ha en credential med samma namn, vilket kan orsaka konflikter vid skapande beroende på din setup.
I praktiken så många som din n8n-instans kan exportera och lista, men den är byggd för att flytta credentials en i taget så att du behåller kontrollen. På n8n Cloud Starter begränsas du av månatliga exekveringar, medan självhosting inte har något exekveringstak (serverresurserna är den verkliga gränsen). Om du flyttar dussintals på en gång, räkna med att export-/liststegen tar längre tid och överväg att batcha per credential-typ.
Oftast, ja, eftersom Zapier och Make inte kan köra ett Execute Command-steg på servern för att exportera och dekryptera lokala credential-filer. n8n låter dig också hålla allt i din egen infrastruktur, vilket är viktigt när hemligheter är inblandade. Det formulärdrivna flödet är dessutom riktigt bra eftersom det minskar “tribal knowledge” under migreringar. Om allt du behöver är en enkel synk mellan två system utan serveråtkomst kan Zapier eller Make fungera. Prata med en automationsexpert om du är osäker på vad som passar.
När detta väl är på plats slutar flytt av autentiseringsuppgifter att vara en copy-paste-chansning sent på kvällen. Sätt upp det, kör formuläret och gå vidare.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.