Din rullista i formuläret såg bra ut i går. I dag är den full av föråldrade alternativ, dubbletter eller ”Annat (vänligen ange)” eftersom ingen hann uppdatera den. Sedan exporterar du leadsen och ägnar eftermiddagen åt att reda ut röran.
Den här Sheets Forms sync slår hårdast mot marketing ops, helt ärligt. Men säljteam som lever i leadlistor och byråägare som kör flera kundtrattar känner av det också. Utfallet är enkelt: rullistor hålls uppdaterade automatiskt, så inskicken kommer in felfria och konsekventa.
Det här arbetsflödet hämtar färska värden från Google Sheets, formaterar om dem och uppdaterar ditt formulärutkast så att varje nytt inskick använder de senaste alternativen. Du får se vad det löser, hur det körs och vad du kan anpassa.
Så fungerar den här automatiseringen
Se hur den här löser problemet:
n8n Workflow Template: Google Sheets till Forms: rullistor alltid uppdaterade
flowchart LR
subgraph sg0["Sheet Watch 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/n8n.svg' width='40' height='40' /></div><br/>Fetch Workflow Record"]
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/n8n.svg' width='40' height='40' /></div><br/>Update Workflow Draft"]
n3@{ icon: "mdi:play-circle", form: "rounded", label: "Sheet Watch 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/code.svg' width='40' height='40' /></div><br/>Compose JSON Payload"]
n6@{ icon: "mdi:swap-vertical", form: "rounded", label: "Swap Dropdown Options", pos: "b", h: 48 }
n7@{ icon: "mdi:database", form: "rounded", label: "Retrieve Sheet Rows", pos: "b", h: 48 }
n8@{ icon: "mdi:swap-vertical", form: "rounded", label: "Map to Value Field", pos: "b", h: 48 }
n5 --> n0
n0 --> n6
n7 --> n8
n6 --> n1
n8 --> n5
n3 --> n7
end
subgraph sg1["Form Submission Flow"]
direction LR
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/form.svg' width='40' height='40' /></div><br/>Form Submission Trigger"]
n4@{ icon: "mdi:cog", form: "rounded", label: "Run Sub-Workflow (Configure ..", pos: "b", h: 48 }
n2 --> n4
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 n3,n2 trigger
class n7 database
class n5 code
classDef customIcon fill:none,stroke:none
class n0,n1,n5,n2 customIcon
Utmaningen: formulär hamnar ur synk med din data
Rullistor ska göra leaddata mer strukturerad. I praktiken blir de ett tyst underhållsjobb som aldrig hamnar i någons kalender. En säljare lägger till ett nytt territorium i ett kalkylark, formuläret visar fortfarande den gamla listan, och nu väljer leads det som är ”närmast”. Plötsligt är rapporteringen uppdelad på fem snarlika etiketter, och routningsregler slutar fungera eftersom de bygger på exakta textmatchningar. Det är inte bara irriterande. Det skapar merarbete, missade uppföljningar och många ”varför ser det här fältet ut så?”-diskussioner.
Det eskalerar snabbt. Här är var det brister.
- Någon måste komma ihåg att uppdatera rullistan, vilket oftast händer först efter att de första dåliga inskicken har kommit in.
- Små ändringar i etiketter (”US – West” vs ”West US”) spiller över i dashboards och automatiseringar som förväntar sig ett exakt värde.
- Team slutar lita på formulärdatan och bygger genvägar som fritextfält och manuell rensning.
- När du har flera formulär blir det ett veckovis copy-paste-jobb att hålla dem konsekventa.
Lösningen: uppdatera rullistealternativ automatiskt från Google Sheets
Det här arbetsflödet behandlar ditt Google Sheet som sanningskällan för rullistevärden och håller sedan formuläret uppdaterat åt dig. Det startar enligt ett schema (med en Google Sheets watch-trigger) och hämtar de senaste raderna från arket. Raderna mappas sedan till exakt den struktur formuläret förväntar sig (så rullistan inte bara blir ”en lista”, utan en strukturerad uppsättning värden). Därefter skapar arbetsflödet en JSON-payload, hämtar den aktuella posten för arbetsflöde/formulärutkast och byter ut rullistealternativen i utkastet. Till sist uppdateras arbetsflödesutkastet så att det aktiva formuläret visar de senaste alternativen utan att du behöver redigera formuläret manuellt.
Inskick hanteras separat. När någon skickar in formuläret triggas en formulärtrigger och skickar inskicket vidare till ett underarbetsflöde (så att din leadhantering kan vara så enkel eller avancerad som du vill). Samma formulär, felfria data, och nedströmsautomatiseringar slutar skapa fel.
Vad som förändras: före vs efter
| Det här elimineras | Effekten du märker |
|---|---|
|
|
Praktisk effekt i verkligheten
Säg att du kör 6 leadformulär och att varje formulär har en rullista för ”Region” som hanteras från ett ark. Att uppdatera varje formulär manuellt tar kanske 10 minuter (hitta fältet, klistra in värden, rimlighetskolla, publicera), så en enda ändring kan kosta runt en timme. Om listan ändras varje vecka är det ungefär 4 timmar i månaden bara för att hålla rullistorna i linje. Med det här arbetsflödet sker uppdateringen automatiskt efter att arket ändras, och din ”tidsåtgång” blir i princip att kontrollera arket en gång.
Krav
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
- Google Sheets som sanningskälla för rullistan.
- n8n Forms för att hosta formuläret och rullistefältet.
- Google-inloggningsuppgifter (skapa i n8n och koppla sedan ditt konto).
Svårighetsgrad: Nybörjare. Du kopplar Google Sheets, väljer kolumnen som ska användas och bekräftar vilket rullistefält som ska ersättas.
Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).
Flödet i arbetsflödet
En Google Sheets watch-trigger drar i gång. Enligt schemat du väljer kontrollerar n8n ditt ark så att du slipper komma ihåg att ”gå och uppdatera formuläret”.
Rader hämtas och struktureras. Arbetsflödet hämtar raderna i ditt ark och mappar dem till ett konsekvent format för ”värdelista”, så att tomrader, konstiga mellanslag eller oavsiktliga dubbletter inte smyger sig in i rullistan.
Formulärutkastet uppdateras automatiskt. Ett kodsteg skapar en JSON-payload, n8n hämtar den aktuella posten för arbetsflödet och sedan byter ett set/edit-steg ut rullistealternativen mot den nyformaterade listan. Ett uppdateringssteg sparar utkastet så att det aktiva formuläret speglar ändringen.
Inskick kan skickas vart som helst. När en användare skickar in formuläret lämnar formulärtriggern inskicket till ett underarbetsflöde via ”Execute Workflow”, där du routar leads, berikar data, skickar Slack-notiser eller pushar rader till ditt CRM.
Du kan enkelt byta Google Sheets mot en API-källa utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera formulärtriggern
Det här arbetsflödet använder två triggers: en trigger för formulärinskick för användarinmatning och en Google Sheets-övervakningstrigger för uppdateringar av rullistan.
- Öppna Form Submission Trigger och ställ in Form Title till
Example Title. - Bekräfta att rullistfältet finns under Form Fields i Form Submission Trigger med Field Type inställt på
dropdown. - Öppna Sheet Watch Trigger och ställ in Document ID till ert kalkylblads-ID och Sheet Name till
gid=0. - Ställ in Include in Output till
bothi Sheet Watch Trigger för att fånga både radändringar och fullständiga raddata.
Inloggningsuppgifter krävs: Anslut era googleSheetsTriggerOAuth2Api-inloggningsuppgifter i Sheet Watch Trigger.
Steg 2: Anslut Google Sheets
Hämta de senaste raderna från ert ark för att fylla i rullistans alternativ.
- Öppna Retrieve Sheet Rows och ställ in Document ID till ert kalkylblads-ID.
- Ställ in Sheet Name till
gid=0i Retrieve Sheet Rows (eller välj rätt arknamn från listan).
Inloggningsuppgifter krävs: Anslut era googleSheetsOAuth2Api-inloggningsuppgifter i Retrieve Sheet Rows.
Steg 3: Sätt upp bearbetningsnoder
Dessa noder omformar arkdatan och bygger JSON-payloaden som uppdaterar formulärets rullista.
- I Map to Value Field, bekräfta att tilldelningen sätter value till
{{ $json.title }}. - I Compose JSON Payload, behåll JavaScript-koden som mappar arkrader till rullistalternativ.
- I Swap Dropdown Options, verifiera att uttrycket för tilldelningsnamnet pekar på rullistans sökväg och att värdet refererar till
{{ $('Compose JSON Payload').item.json.nodes[0].parameters.formFields.values[0].fieldOptions.values }}. - Bekräfta körflödet: Retrieve Sheet Rows → Map to Value Field → Compose JSON Payload → Fetch Workflow Record → Swap Dropdown Options → Update Workflow Draft.
⚠️ Vanlig fallgrop: Om ert kolumnnamn i arket inte är title, uppdatera Map to Value Field till rätt fält, annars blir rullistans alternativ tomma.
Steg 4: Konfigurera utdata och åtgärder för underarbetsflöde
Det här arbetsflödet uppdaterar det aktuella arbetsflödets utkast och triggar valfritt ett underarbetsflöde när formuläret skickas in.
- Öppna Fetch Workflow Record och säkerställ att Operation är inställt på
getmed Workflow ID inställt på{{ $workflow.id }}. - Öppna Update Workflow Draft och bekräfta att Operation är
updatemed Workflow Object inställt på{{ JSON.stringify($json) }}. - Öppna Run Sub-Workflow (Configure Required) och välj målarbetsflödet i Workflow ID (för närvarande tomt).
- Bekräfta formulärinskicksvägen: Form Submission Trigger → Run Sub-Workflow (Configure Required).
Inloggningsuppgifter krävs: Anslut era n8nApi-inloggningsuppgifter i Fetch Workflow Record och Update Workflow Draft.
⚠️ Vanlig fallgrop: Om Run Sub-Workflow (Configure Required) saknar Workflow ID, kommer formulärinskick inte att trigga någon efterföljande automation.
Steg 5: Testa och aktivera ert arbetsflöde
Validera både de arkstyrda uppdateringarna av rullistan och formulärinskickstriggern innan ni går live.
- Klicka på Execute Workflow och kör Sheet Watch Trigger manuellt för att verifiera att data flödar in i Retrieve Sheet Rows och uppdaterar rullistans payload.
- Kontrollera att Update Workflow Draft slutförs utan fel och att formulärets rullistalternativ ändras för att matcha arkdatan.
- Skicka in formuläret i Form Submission Trigger och bekräfta att Run Sub-Workflow (Configure Required) kör målarbetsflödet.
- Växla arbetsflödet till Active för att aktivera kontinuerliga uppdateringar i produktion.
Se upp med
- Google Sheets-inloggningsuppgifter kan gå ut eller kräva specifika behörigheter. Om något slutar fungera: kontrollera status för inloggningsuppgifterna i n8n och bekräfta först att arket fortfarande är delat med det Google-konto som är anslutet.
- Om arket har rubriker, tomma rader eller blandade kolumner kan mappningssteget dra in tomma värden i rullistan. Strukturera arket eller justera logiken för ”Map to Value Field” så att bara riktiga alternativ tas med.
- Underarbetsflödet ”Execute Workflow” är avsiktligt lämnat för dig att konfigurera. Om inskick verkar ”inte göra något”, öppna noden Run Sub-Workflow och peka den till arbetsflödet som ska hantera formulärinskick.
Vanliga frågor
Cirka 30 minuter om ditt ark och formulär redan är konfigurerade.
Ja. Ingen kod krävs för grundkonfigurationen. Du kopplar Google Sheets, väljer kolumnen som innehåller dina alternativ och bekräftar vilket rullistefält som ska ersättas.
Ja. n8n har ett gratis alternativ för egen hosting och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volymer. Du behöver också ta hänsyn till Googles användningsgränser, som vanligtvis är försumbara för ett enda ark.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärd och hanterar n8n bra. Egen hosting ger dig obegränsade körningar men kräver grundläggande serveradministration.
Du kan byta ut Google Sheets mot nästan vilken källa som helst genom att ändra delen ”Retrieve Sheet Rows” till en HTTP Request (API)- eller databasnod och sedan behålla samma mappningslogik. De flesta anpassningar är enkla: välj en annan kolumn för etiketter, filtrera bort inaktiva alternativ (via en If-nod) eller forma om den slutliga listan i kodsteget ”Compose JSON Payload”. Om du har flera rullistor kan du upprepa bytessteget för varje fält och slå ihop resultaten till en enda uppdatering.
Oftast beror det på utgångna Google-inloggningsuppgifter eller att arket flyttats till en annan plats i Drive. Återanslut Google-kontot i n8n och bekräfta sedan att kalkylarks-ID:t och den valda fliken fortfarande finns. Om det bara misslyckas ibland kan du slå i Googles API-kvoter eller så triggas flödet medan arket håller på att redigeras.
För de flesta små team är det i praktiken ”så ofta du behöver”. På n8n Cloud Starter begränsas du av månatliga körningar, men en rulliste-synk som körs några gånger per dag är fortfarande låg volym. Om du hostar själv finns ingen körningsgräns, och den praktiska begränsningen är din server plus Googles API-gränser. Arbetsflödet behandlar normalt ett arks rullistevärden på under en minut, om du inte hämtar väldigt stora ark.
Ofta, ja, eftersom n8n hanterar logik av typen ”uppdatera ett utkast, transformera data och publicera” utan att bli dyrt när du lägger till grenar. Du får också alternativet för egen hosting, vilket är användbart om du synkar ofta. Zapier och Make kan fortfarande fungera om ditt användningsfall är enkelt, men att uppdatera en formulärdefinition från en dynamisk lista kräver vanligtvis mer kontroll än ett zap i två steg. En annan fördel är underarbetsflödesmönstret: din hantering av formulärinskick kan utvecklas utan att du bygger om rulliste-synken. Prata med en automationsexpert om du vill ha hjälp att välja plattform.
Felfria rullistor kan låta som en liten sak, men de tar bort en förvånansvärt seg källa till brus i rapporteringen. Sätt upp det en gång, så förblir formulärdatan användbar.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.