Behöver ert företag hjälp med att implementera AI? Kontakta oss och få prisoffert här →
AI Skolan
januari 22, 2026

Airtable + QuickBooks: fakturor utan omtag

Rickard Andersson Partner, Nodenordic.se

Fakturadagen ska inte kännas som en skattjakt mellan Airtable, QuickBooks och Stripe. Ändå är det exakt vad som händer när “Approved”-affärer förvandlas till copy-paste-maraton, kundposter som inte matchar och betalningslänkar som bor i någons webbläsarflikar.

Ops-ansvariga ser oftast röran först. Finansteam får städa upp den. Och byråägare märker det när kassainflödet bromsar. Den här automatiseringen för Airtable–QuickBooks-fakturering täpper igen glappet så att en godkänd affär blir en riktig faktura och en Stripe-betalningslänk utan omtag.

Nedan ser du hur flödet körs, vad det eliminerar och vad du behöver för att få det live i n8n.

Så här fungerar automatiseringen

Se hur detta löser problemet:

n8n Workflow Template: Airtable + QuickBooks: fakturor utan omtag

Utmaningen: godkända affärer blir fortfarande manuella fakturor

Du har redan affärsdetaljerna i Airtable. Problemet är allt som händer efter att någon ändrar status till “Approved for Invoicing”. Kunddata måste kontrolleras i QuickBooks, sedan kontrolleras igen i Stripe, sedan bygger du en fakturarad som matchar din QuickBooks-produktlista, sedan skapar du en betalningslänk, sedan klistrar du tillbaka ID:n i Airtable så att du kan hitta dem senare. Missa ett fält och du jagar det i dagar. Ännu värre: “lösningen” skapar ofta dubletter (två kunder, två fakturor och en obekväm avstämning senare).

Det blir snabbt mycket. Här är var det faller isär i riktiga team.

  • Någon skapar en ny QuickBooks-kund eftersom de inte hittade den befintliga, och nu delas intäkter i rapporter mellan dubletter.
  • Stripe-kundposter glider från det som finns i Airtable, så betalningslänkar går till fel e-post eller stämmer inte med fakturatotalen.
  • Att matcha rätt QuickBooks-produkt/artikel blir gissningslek, särskilt när dina artikelnamn är lika.
  • Statusuppdateringar skrivs inte tillbaka konsekvent, vilket gör att du inte kan lita på Airtable som sanningskälla.

Lösningen: Airtable-godkännanden skapar QuickBooks-fakturor och Stripe-länkar

Det här flödet startar i samma ögonblick som en Airtable-post ändras och går igenom en enkel grind: bara affärer markerade “Approved for Invoicing” går vidare. Därifrån gör det det oglamorösa men kritiska jobbet du helst slipper. Det letar upp kunden i QuickBooks och Stripe med hjälp av Airtable-detaljerna och använder sedan “hitta-eller-skapa”-logik så att du inte råkar skapa dubletter. När det har rätt kund-ID:n skriver det tillbaka dem till Airtable för framtida körningar. Sedan genererar det två utdata i samma körning: en Stripe-betalningslänk (via en HTTP-begäran) och en officiell QuickBooks-faktura byggd från din QuickBooks-produktlista och produktnamnet som finns på affären. Till sist uppdateras Airtable igen med QuickBooks-fakturanumret, Stripe-länken och en korrekt statusändring till “Invoiced”.

Flödet börjar med en Airtable-ändringsbevakning och en statuskontroll. Efter det synkas QuickBooks och Stripe innan några betalningsdokument skapas, så att faktura och betalningslänk kopplas till rätt kund. Den sista Airtable-uppdateringen stänger loopen, vilket håller din pipelinevy och din bokföringsverklighet i linje.

Vad som förändras: före vs. efter

Effekt i praktiken

Säg att du godkänner 15 affärer i veckan. Manuellt tar varje affär vanligtvis cirka 10 minuter att leta upp eller skapa kunden (i både QuickBooks och Stripe), ytterligare 10 minuter att bygga fakturan, plus cirka 5 minuter att skapa en betalningslänk och uppdatera Airtable. Det är ungefär 6 timmar i veckan. Med det här flödet blir din tid ett godkännandeklick och en snabb kontroll, kanske en minut per affär, medan systemet synkar och skapar dokument i bakgrunden.

Krav

  • n8n-instans (prova n8n Cloud gratis)
  • Självhostningsalternativ om du föredrar (Hostinger fungerar bra)
  • Airtable för att lagra affärer och trigga godkännanden
  • QuickBooks Online för att skapa kunder och fakturor
  • Stripe för att skapa kunder och betalningslänkar
  • Airtable Personal Access Token (skapa den i Airtables kontoinställningar)
  • Stripe Secret Key (hämta den i Stripe-dashboarden)

Kunskapsnivå: Mellan. Du kopplar konton, mappar Airtable-fält och klistrar in ett QuickBooks Company ID i en URL för en HTTP-begäran.

Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).

Flödet steg för steg

En Airtable-post ändras. Flödet bevakar din Airtable-tabell och hämtar de uppdaterade affärsdetaljerna (kundnamn, e-post, produktnamn, antal, Stripe price ID och status).

Bara godkända affärer går igenom. En godkännandekontroll stoppar allt om inte status är exakt “Approved for Invoicing”, så att utkast inte råkar bli fakturor.

Kundposter synkas först. Det letar upp kunden i QuickBooks och Stripe, skapar kunden om den saknas och slår ihop resultaten så att du får en felfri uppsättning kund-ID:n. Dessa ID:n skrivs tillbaka i Airtable så att nästa körning blir snabbare och mer konsekvent.

Faktura och betalningslänk genereras. Stripe får en betalningslänk via en HTTP-begäran, medan QuickBooks hämtar din produktlista, matchar artikeln efter namn och skapar fakturan med affärens artikel och antal.

Airtable får den slutliga sanningen. Flödet uppdaterar samma Airtable-post med QuickBooks Invoice #, Stripe Payment Link och en statusändring till “Invoiced”. Du kan enkelt ändra värdet för godkännandestatus så att det matchar namngivningen i din pipeline utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.

Steg-för-steg-guide för implementering

Steg 1: konfigurera Airtable-triggern

Det här arbetsflödet startar när Airtable-poster ändras och hämtar sedan den matchande raden för vidare bearbetning.

  1. Lägg till och öppna Airtable Change Watcher.
  2. Ställ in Base till {YOUR_AIRTABLE_BASE_ID} och Table till {YOUR_AIRTABLE_TABLE_ID}.
  3. Ställ in Trigger Field till Created.
  4. Ställ in Authentication till airtableTokenApi.
  5. Credential Required: anslut era airtableTokenApi-autentiseringsuppgifter.

Tips: om er Airtable-bas har flera tabeller, dubbelkolla tabell-ID:t så att uppdateringar triggas från rätt källa.

Steg 2: koppla Airtable-hämtning och godkännandegrind

Efter triggern hämtar arbetsflödet hela posten och validerar godkännandestatus innan det fortsätter.

  1. Öppna Retrieve Airtable Rows och ställ in Operation till search.
  2. Ställ in Base till {YOUR_AIRTABLE_BASE_ID} och Table till {YOUR_AIRTABLE_TABLE_ID}.
  3. Credential Required: anslut era airtableTokenApi-autentiseringsuppgifter.
  4. Öppna Validate Approval Status och ställ in villkoret: Value 1 till {{ $json.Status }} och Value 2 till Approved for Invoicing.
  5. Bekräfta att den falska grenen går till Terminate Flow Path för att stoppa ej godkända objekt.

⚠️ Vanlig fallgrop: om statustexten i Airtable inte exakt matchar Approved for Invoicing kommer arbetsflödet att avslutas tidigt vid Terminate Flow Path.

Steg 3: konfigurera uppslagning och skapande av klient i QuickBooks

Den här delen kontrollerar om klienten finns i QuickBooks och skapar en om den saknas.

  1. Öppna Lookup QBO Client och ställ in Operation till getAll med Limit 500.
  2. Ställ in Filters → Query till =WHERE DisplayName = '{{ $json['Client Name'] }}'.
  3. Credential Required: anslut era quickbooks-autentiseringsuppgifter.
  4. I Check QBO Client Presence behåller ni villkoret som kontrollerar att {{ $json.Id ?? "" }} isEmpty.
  5. Öppna Add QBO Client och ställ in Display Name till {{ $('Validate Approval Status').item.json['Client Name'] }}.
  6. Ställ in Primary Email till {{ $('Validate Approval Status').item.json['Client Email'] }} och anslut era quickbooks-autentiseringsuppgifter.
  7. Säkerställ att båda grenarna slås ihop i Combine QBO Client Data (befintlig eller nyss skapad klient).

Steg 4: synka Stripe-kunddata och uppdatera Airtable-ID:n

Den här fasen validerar Stripe-kunden, skapar en vid behov och skriver sedan tillbaka ID:n till Airtable.

  1. I Verify Stripe ID behåller ni villkoret som kontrollerar att {{ $('Retrieve Airtable Rows').item.json['Stripe Customer ID'] }} inte är tomt.
  2. Konfigurera Fetch Stripe Customer med Customer ID satt till {{ $('Retrieve Airtable Rows').item.json['Stripe Customer ID'] || "" }} och anslut era stripe-autentiseringsuppgifter.
  3. Verifiera att Blend Stripe Records slår ihop posterna från Stripe-hämtningen eller reservgrenen.
  4. Öppna Check Stripe Customer och behåll villkoret DisplayName isNotEmpty.
  5. I Create Stripe Customer ställer ni in Name till {{ $json.DisplayName }} och Email till {{ $json.PrimaryEmailAddr.Address }}, och ansluter era stripe-autentiseringsuppgifter.
  6. Säkerställ att Merge Stripe Customer Info går vidare till Find Airtable by Email med Filter By Formula satt till ={Client Email} = "{{ $json.email }}".
  7. I Update Airtable Customer IDs mappar ni id till {{ $json.id }}, Stripe Customer ID till {{ $('Merge Stripe Customer Info').item.json.id }} och QuickBooks Customer ID till {{ $('Combine QBO Client Data').item.json.Id }}.
  8. Credential Required: anslut era airtableTokenApi-autentiseringsuppgifter för både Find Airtable by Email och Update Airtable Customer IDs.

Tips: om ert Stripe-kundobjekt inte returnerar DisplayName, uppdatera datakällan så att den inkluderar det eller justera kontrollen i Check Stripe Customer.

Steg 5: bygg betalningslänk, faktura och slutlig Airtable-uppdatering

Arbetsflödet skapar en Stripe-betalningslänk, hittar matchande QuickBooks-produkter, genererar fakturan och skriver tillbaka länkar till Airtable.

  1. I Build Stripe Payment Link ställer ni in URL till https://api.stripe.com/v1/payment_links och Method till POST.
  2. Ställ in Content Type till form-urlencoded och lägg till body-parametrar: line_items[0][price] till {{ $json.fields['Stripe Price Id'] }} och line_items[0][quantity] till {{ $json.fields.Quantity }}.
  3. Credential Required: anslut era stripeApi-autentiseringsuppgifter.
  4. I Retrieve QBO Products ställer ni in URL till https://quickbooks.api.intuit.com/v3/company/{YOUR_QUICKBOOKS_COMPANY_ID}/query?query=SELECT%20*%20FROM%20Item och ansluter quickBooksOAuth2Api-autentiseringsuppgifter.
  5. Behåll koden i Filter QBO Product Info som den är för att beräkna Amount från kvantitet och styckepris.
  6. I Generate QBO Invoice ställer ni in CustomerRef till {{ $('Update Airtable Customer IDs').item.json.fields['QuickBooks Customer ID'] }} och rader så att de använder {{ $json.Amount }}, {{ $json.Id }} och {{ $json.Description }}.
  7. Credential Required: anslut era quickbooks-autentiseringsuppgifter.
  8. Uppdatera fälten i Update Airtable Invoice Link: Status till Invoiced, Stripe Payment Link till {{ $('Build Stripe Payment Link').item.json.url }} och QuickBooks Invoice # till =INV-{{ $json.DocNumber }}.
  9. Bekräfta att flödet avslutas vid Finalize Workflow.

⚠️ Vanlig fallgrop: ersätt {YOUR_QUICKBOOKS_COMPANY_ID} i Retrieve QBO Products, annars misslyckas QuickBooks-anropen med en 404.

Steg 6: testa och aktivera ert arbetsflöde

Kör ett kontrollerat test för att verifiera hela synken Airtable → Stripe → QuickBooks och säkerställ att uppdateringarna i Airtable är korrekta.

  1. Klicka på Execute Workflow och skapa eller ändra en testpost i Airtable med Status satt till Approved for Invoicing.
  2. Verifiera att Lookup QBO Client och Add QBO Client fungerar korrekt (befintlig klient kontra flöde för ny klient).
  3. Bekräfta att Update Airtable Customer IDs skriver tillbaka Stripe Customer ID och QuickBooks Customer ID till posten.
  4. Kontrollera att Generate QBO Invoice returnerar ett DocNumber och att Update Airtable Invoice Link uppdaterar Stripe Payment Link och QuickBooks Invoice #.
  5. När allt fungerar, växla arbetsflödet till Active för användning i produktion.
🔒

Lås upp fullständig steg-för-steg-guide

Få den kompletta implementeringsguiden + nedladdningsbar mall

Se upp med

  • Airtable Personal Access Tokens kan gå ut eller sakna rätt scopes. Om triggern kör men uppdateringar misslyckas, kontrollera först token-scopes (data.records:read och data.records:write) i Airtable.
  • Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om nedströmsnoder fallerar på tomma svar.
  • Matchning av QuickBooks-produkter är oförlåtande. Om “Quickbooks Product Name” i Airtable inte matchar en artikel i QuickBooks tillräckligt nära kan fakturanoden misslyckas eller välja fel artikel, så validera namngivningen tidigt.

Vanliga frågor

Hur snabbt kan jag implementera den här automatiseringen för Airtable–QuickBooks-fakturering?

Vanligtvis ungefär en timme om dina Airtable-fält redan matchar mallen.

Kan icke-tekniska team implementera den här Airtable–QuickBooks-faktureringen?

Ja, men du vill ha en detaljorienterad ansvarig som testar med två eller tre exempelaffärer. Ingen kodning krävs, men du kommer att kopiera nycklar och mappa fält noggrant.

Är n8n gratis att använda för det här flödet för Airtable–QuickBooks-fakturering?

Ja. n8n har ett gratis alternativ för självhosting och en gratis testperiod på n8n Cloud. Molnplaner börjar på 20 USD/månad för högre volym. Du behöver också ta hänsyn till Stripe- och QuickBooks-begränsningar (och eventuell API-användning om du skalar aggressivt).

Var kan jag hosta n8n för att köra den här automatiseringen?

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 hanterar n8n bra. Självhosting ger dig obegränsade körningar men kräver grundläggande serverhantering.

Hur anpassar jag den här lösningen för Airtable–QuickBooks-fakturering till mina specifika utmaningar?

Du kan ändra godkännandegaten genom att uppdatera kontrollen “Validate Approval Status” till ditt eget statusvärde. Om din produktmappning ser annorlunda ut, byt fältet som används i “Filter QBO Product Info” så att det matchar hur du identifierar artiklar (SKU, intern kod eller ett strukturerat namn). Vanliga justeringar är att lägga till skattefält i QuickBooks-fakturanoden, sätta betalningsvillkor och lägga in en e-postnod efter den sista Airtable-uppdateringen för att skicka Stripe-länken automatiskt.

Varför misslyckas min Airtable-anslutning i det här flödet?

Oftast är det en token som gått ut eller saknade Airtable-scopes. Skapa en ny Airtable Personal Access Token och uppdatera sedan varje Airtable-referens för inloggningsuppgifter i n8n så att triggern och uppdateringsnoderna använder samma giltiga token.

Vilken kapacitet har den här lösningen för Airtable–QuickBooks-fakturering?

På en typisk n8n Cloud-plan kan du utan problem köra detta för dussintals eller till och med några hundra fakturor per månad så länge dina QuickBooks- och Stripe-konton inte slår i rate limits. Om du självhostar beror körvolymen främst på din server och hur ofta din Airtable-trigger triggas. Praktiskt taget är det här flödet byggt för hantering affär för affär, inte för massimport av tusentals rader på en gång.

Är den här automatiseringen för Airtable–QuickBooks-fakturering bättre än att använda Zapier eller Make?

Ofta, ja. Det här flödet använder flera förgreningar (hitta-eller-skapa kunder, slå ihop poster, stoppa vägar) och de kan bli dyra eller klumpiga i Zapier och Make när du lägger till flera uppslag och fallback-vägar. n8n ger dig också mer kontroll över HTTP-anrop, vilket är viktigt här eftersom Stripe-betalningslänken skapas via en direkt begäran. Om du bara behöver “Airtable-rad → skapa faktura” utan synklogik kan Zapier fungera bra. Om du vill att systemen ska fortsätta stämma över tid är n8n oftast det lugnare valet. Prata med en automationsexpert om du är osäker.

När detta väl rullar slutar “Approved for Invoicing” vara ett löfte och blir en faktisk faktura och betalningslänk. Ärligt talat är den bästa delen tilliten: dina Airtable-poster och dina bokföringsverktyg är äntligen överens.

Kontakta oss

Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.

×

Använd mall

Få direkt tillgång till denna n8n-arbetsflödes JSON-fil

Få prisoffert redan idag!
Få prisoffert redan idag!

Berätta vad ni behöver hjälp med så hör vi av oss inom en arbetsdag!

Få prisoffert redan idag!
Få prisoffert redan idag!

Berätta vad ni behöver hjälp med så hör vi av oss inom en arbetsdag!

Launch login modal Launch register modal