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

Square till Google Sheets, daglig säljsummering

Rickard Andersson Partner, Nodenordic.se

Att ta fram en “försäljningssammanfattning” från Square låter enkelt tills du har mer än en plats, en deadline och någon som frågar varför gårdagens totalsiffror inte matchar dashboarden.

Det här är den typen av huvudvärk som driftteam känner av varje dag. marknadsansvariga behöver siffrorna för pacing och kampanjer, och ägare vill bara ha en enda källa till sanning. En automation för Square Sheets-sammanfattning ger dig en korrekt formaterad daglig total utan att du fastnar i en spiral av manuella exporter.

Nedan är det exakta n8n-flödet som hämtar Squares rapportdata, ignorerar butiker med nollförsäljning och ger en konsekvent daglig sammanfattning som du kan lägga i Google Sheets eller återanvända var som helst.

Så här fungerar automatiseringen

Det kompletta n8n-flödet, från trigger till slutligt output:

n8n Workflow Template: Square till Google Sheets, daglig säljsummering

Problemet: daglig försäljningsrapportering blir till tidsödande rutinjobb

Du behöver ett tal varje dag: “Vad gjorde vi igår?” Men om du kör flera Square-platser ligger det talet bakom några klick, datumfilter och en hel del gissningar. Någon exporterar en rapport, någon annan skärmdumpar en dashboard, och plötsligt matchar inte totalsummorna eftersom någon använde en annan tidszon eller hämtade ordrar i stället för sales summary. Sedan kommer det värsta: att förklara avvikelsen. Och om du sparar det i ett kalkylark byggs copy-paste-felen tyst på tills månadsbokslutet gör att allt känns akut.

Det eskalerar snabbt. Här är det som oftast faller isär.

  • Varje extra plats innebär ytterligare en manuell kontroll, vilket gör att “5 minuter” förvånansvärt ofta blir en timme.
  • Platser med nollförsäljning granskas, exporteras och stäms av trots att de inte tillför något värde.
  • Tidszoner och datumintervall tillämpas inkonsekvent, så gårdagens totalsummor skiftar beroende på vem som körde rapporten.
  • Dashboards är ingen datapipeline, så ekonomi och drift slutar ändå med att bygga samma rapport i Sheets.

Lösningen: hämta Square Sales Summary-data till ett återanvändbart dagligt output

Det här n8n-flödet hämtar Squares rapportdata programmatiskt för ett specifikt report_date, över alla dina Square-platser, och bygger sedan en daglig sammanfattning som matchar det du ser i Square Dashboard > Reports > Sales Summary. Det börjar med att ta emot datumet som indata (det är designat som ett sub-workflow), anropar Squares API för att lista platser och loopar sedan igenom varje plats för att hämta slutförda ordrar för den dagen. Platser utan försäljning filtreras bort automatiskt, så du slipper skräp i kalkylarket. Till sist sammanställer ett bearbetningssteg totalsummorna till en strukturerad, konsekvent form som ett överordnat flöde kan spara till Google Sheets, mejla till intressenter eller skicka vidare till bokföringsverktyg.

Flödet startar när en överordnad automation skickar in report_date (formaterat som ÅÅÅÅ-MM-DD). Square-platsdata hämtas, expanderas till en lista och varje plats ordrar hämtas för samma rapportfönster. Efter att tomma resultat filtrerats bort bygger flödet samma typ av sammanfattning som du litar på i Square-dashboarden.

Det du får: automation vs. resultat

Exempel: så här ser det ut

Säg att du följer upp 8 Square-platser och i dag gör en daglig kontroll plus en manuell inklistring i Google Sheets. Om det tar cirka 7 minuter per plats att öppna rapporter, bekräfta datumintervallet och kopiera totalsummor, blir det ungefär en timme varje dag. Med det här flödet skickar du in ett report_date i n8n, väntar cirka en minut på API-anropen och bearbetningen, och ditt överordnade flöde kan logga outputen till Sheets automatiskt. Det är nästan en timme tillbaka, fem eller sex dagar i veckan.

Det här behöver du

  • n8n-instans (testa n8n Cloud gratis)
  • Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
  • Square-konto med åtkomst till platser och ordrar.
  • Google Sheets för att lagra det dagliga sammanfattnings-outputet.
  • Square access token (hämta den i Square Developer Dashboard och lägg sedan till som Header Auth).

Kunskapsnivå: Medel. Du kopplar API-uppgifter, skickar in ett datuminmatningsvärde och kan vid behov koppla outputen till ett Google Sheets-steg i ett överordnat flöde.

Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis konsultation i 15 minuter).

Så fungerar det

Ett överordnat flöde skickar in rapportdatumet. Den här automatiseringen är byggd som ett sub-workflow, så den startar när ett annat flöde anropar den med report_date (ÅÅÅÅ-MM-DD). Snabbt och kontrollerat.

Square-platser hämtas och expanderas till en lista. n8n använder en HTTP-request för att hämta varje plats som är kopplad till ditt Square-konto och delar sedan upp listan så att varje plats kan behandlas konsekvent.

Ordrar hämtas per plats och tomma platser filtreras bort. En annan HTTP-request hämtar slutförda ordrar för samma dagsfönster och en “If”-kontroll hoppar över platser som saknar försäljning. Ärligt talat är det här en av de största förbättringarna för vardagsflytet.

Försäljningssammanfattningen sätts ihop för återanvändning. Ett kodsteg aggregerar orderdatan till en strukturerad sammanfattning som speglar Squares Sales Summary-rapport, vilket gör outputen tillräckligt tillförlitlig för att lagras i Google Sheets eller matas in i mejl-/bokföringsautomationer.

Du kan enkelt ändra datumfönster och tidszonshantering så att det matchar dina lokala rapportbehov. Se hela implementationsguiden nedan för anpassningsalternativ.

Steg-för-steg-guide för implementation

Steg 1: konfigurera triggern Execute Workflow

Konfigurera arbetsflödets indata som tillhandahåller rapportdatumet som används i Square-orderfrågor.

  1. Lägg till eller öppna Subworkflow Trigger Input.
  2. I Workflow Inputs, lägg till ett fält med namnet report_date.
  3. Säkerställ att uppströmsarbetsflöden skickar ett datum i formatet YYYY-MM-DD till Subworkflow Trigger Input.
Tips: Ordersökningen använder offsetarna T00:00:00-05:00 och T23:59:59-05:00. Justera report_date efter er Square-kontos tidszon för att undvika resultat som hamnar en dag fel.

Steg 2: anslut Square-API:er

Autentisera och konfigurera Square-endpoints som används för att hämta platser och ordrar.

  1. Öppna Fetch Square Locations och ställ in URL till https://connect.squareup.com/v2/locations.
  2. Aktivera Send Headers och lägg till en header Content-Type med värdet application/json.
  3. Inloggningsuppgifter krävs: Anslut era httpHeaderAuth-inloggningsuppgifter i Fetch Square Locations.
  4. Öppna Retrieve Square Orders och ställ in URL till https://connect.squareup.com/v2/orders/search.
  5. Ställ in Method till POST och Specify Body till json.
  6. Ställ in JSON Body till ={ "location_ids": ["{{ $json.locations.id }}"], "query": { "filter": { "state_filter": { "states": ["COMPLETED"] }, "date_time_filter": { "created_at": { "start_at": "{{ $('Subworkflow Trigger Input').item.json.report_date }}T00:00:00-05:00", "end_at": "{{ $('Subworkflow Trigger Input').item.json.report_date }}T23:59:59-05:00" } } } }, "limit": 1000, "return_entries": false }.
  7. Inloggningsuppgifter krävs: Anslut era httpHeaderAuth-inloggningsuppgifter i Retrieve Square Orders.
⚠️ Vanlig fallgrop: JSON-body i Retrieve Square Orders använder uttryck som refererar till Subworkflow Trigger Input och Expand Location List. Om ni byter namn på de noderna kommer uttrycken att sluta fungera.

Steg 3: konfigurera platsuppdelning och orderfiltrering

Dela upp platslistan i enskilda objekt och filtrera bort tomma ordersvar.

  1. Konfigurera Expand Location List med Field To Split Out satt till locations.
  2. Ställ in Include till selectedOtherFields och Fields To Include till id.
  3. Öppna Filter Nonempty Orders och säkerställ att villkoret använder Left Value ={{ $json.orders }} med operatorn notEmpty.
  4. Verifiera kopplingsordningen: Fetch Square LocationsExpand Location ListRetrieve Square OrdersFilter Nonempty Orders.

Steg 4: konfigurera bearbetning av försäljningssammanfattning

Aggregera försäljning, skatter, rabatter, dricks, returer och betalsättstotaler till en sammanfattning per plats.

  1. Öppna Assemble Sales Summary och låt Mode vara satt till runOnceForEachItem.
  2. Bekräfta att koden refererar till Subworkflow Trigger Input och Fetch Square Locations för att slå upp report_date och platsnamn.
  3. Verifiera att retur-objektet innehåller fält som gross_sales, net_sales, total_tax och net_total för vidare användning.
Tips: Om ni planerar att lagra eller skicka sammanfattningen, lägg till en destinationsnod efter Assemble Sales Summary (t.ex. databasinsert, Google Sheets eller e-post).

Steg 5: testa och aktivera ert arbetsflöde

Kör ett manuellt test för att validera Square API-svar och sammanfattningsberäkningar, och aktivera sedan arbetsflödet för produktion.

  1. Klicka på Execute Workflow och ange ett exempel på report_date som 2025-07-21 i Subworkflow Trigger Input.
  2. Bekräfta att Fetch Square Locations returnerar en locations-array och att Expand Location List skickar ut ett objekt per plats.
  3. Kontrollera att Retrieve Square Orders returnerar ordrar för varje plats och att Filter Nonempty Orders endast släpper igenom icke-tomma resultat.
  4. Verifiera att Assemble Sales Summary matar ut beräknade fält som gross_sales, total_tax och net_total.
  5. När ni är nöjda, slå på Active för att aktivera arbetsflödet för produktion.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Square-uppgifter kan löpa ut eller kräva specifika behörigheter. Om saker slutar fungera: kontrollera dina n8n Credentials (Header Auth) och bekräfta att access token fortfarande är giltig.
  • Om din verksamhet inte ligger i tidszonen Toronto/New York: uppdatera parametrarna “start_at” och “end_at” i order-requesten så att ditt report_date matchar din lokala dag.
  • Square API-begränsningar och stora ordervolymer kan ge saknade resultat. Om du hanterar platser med mer än 1 000 ordrar per dag, lägg till paginering så att sammanfattningen förblir korrekt.

Vanliga frågor

Hur lång tid tar det att sätta upp den här Square Sheets-sammanfattningsautomationen?

Cirka 30 minuter om du redan har din Square-token.

Behöver jag kunna koda för att automatisera Square Sheets-sammanfattningsrapportering?

Nej. Du kopplar dina Square-uppgifter och skickar in ett report_date i flödet.

Är n8n gratis att använda för det här Square Sheets-sammanfattningsflödet?

Ja. n8n har ett gratis alternativ för egen drift 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 Square API (oftast minimal för daglig rapportering).

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

Två alternativ: n8n Cloud (hanterad, enklast att komma igång) eller egen drift på en VPS. För egen drift är Hostinger VPS prisvärd och kör n8n bra. Egen drift ger obegränsade körningar men kräver grundläggande serverhantering.

Kan jag anpassa det här Square Sheets-sammanfattningsflödet för veckorapportering eller månadsavslut?

Ja, men du gör det i det överordnade flödet som anropar detta. Loopa över en lista av datum, skicka in varje datum i sub-workflow-triggerns input och skriv sedan varje resultat till Google Sheets (eller slå ihop dem i en vecko-/månadsflik). Många team justerar också tidszonsförskjutningarna i order-requesten så att “affärsdag” matchar hur Square rapporterar internt. Vill du ha flikar per plats kan du även dela upp slutoutputen innan du skriver till Sheets.

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

Oftast beror det på en utgången eller felaktig access token i din Header Auth-credential. Generera en ny Square-token, bekräfta att den är formaterad som “Bearer <token>” och uppdatera sedan credentialn som används av båda HTTP Request-noderna. Om det fortfarande misslyckas: kontrollera att token har behörigheter att läsa platser och ordrar, och håll koll på rate limiting om du kör detta över många platser samtidigt.

Hur många platser och ordrar kan den här Square Sheets-sammanfattningsautomationen hantera?

Den kan hantera så många platser som ditt Square-konto har, men dagar med väldigt hög volym kan kräva paginering när en plats passerar cirka 1 000 ordrar.

Är den här Square Sheets-sammanfattningsautomationen bättre än att använda Zapier eller Make?

Ofta, ja. Det här flödet bygger på direkta API-anrop, loopar per plats, filtrering och ett anpassat aggregeringssteg, och de mönstren kan bli klumpiga (och dyra) i Zapier eller Make i större skala. n8n ger dig dessutom möjligheten att köra egen drift med obegränsade körningar, vilket spelar roll om du bygger vidare från “daglig sammanfattning” till månadskörningar över många datum. Nackdelen är lite mer ansvar för uppsättning, särskilt kring API-uppgifter och tidszonshantering. Vill du ha hjälp att välja, prata med en automationsexpert.

När det här är på plats slutar din dagliga försäljningssiffra att vara en daglig uppgift. Flödet hämtar, filtrerar och sammanfattar. Du använder bara datan.

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

Launch login modal Launch register modal