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
flowchart LR
subgraph sg0["When Executed by Another Workflow 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/httprequest.dark.svg' width='40' height='40' /></div><br/>Get Square Locations"]
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Turn Locations Into List", pos: "b", h: 48 }
n2@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Ignore Locations w/o Sales", pos: "b", h: 48 }
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Get Sales from Square"]
n4@{ icon: "mdi:play-circle", form: "rounded", label: "When Executed by Another Wor..", 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/>Compile Sales Reports"]
n0 --> n1
n3 --> n2
n1 --> n3
n2 --> n5
n4 --> n0
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 n2 decision
class n0,n3 api
class n5 code
classDef customIcon fill:none,stroke:none
class n0,n3,n5 customIcon
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
| Det här flödet automatiserar | Resultat du får |
|---|---|
|
|
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.
- Lägg till eller öppna Subworkflow Trigger Input.
- I Workflow Inputs, lägg till ett fält med namnet
report_date. - Säkerställ att uppströmsarbetsflöden skickar ett datum i formatet
YYYY-MM-DDtill Subworkflow Trigger Input.
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.
- Öppna Fetch Square Locations och ställ in URL till
https://connect.squareup.com/v2/locations. - Aktivera Send Headers och lägg till en header Content-Type med värdet
application/json. - Inloggningsuppgifter krävs: Anslut era
httpHeaderAuth-inloggningsuppgifter i Fetch Square Locations. - Öppna Retrieve Square Orders och ställ in URL till
https://connect.squareup.com/v2/orders/search. - Ställ in Method till
POSToch Specify Body tilljson. - 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 }. - Inloggningsuppgifter krävs: Anslut era
httpHeaderAuth-inloggningsuppgifter i Retrieve Square Orders.
Steg 3: konfigurera platsuppdelning och orderfiltrering
Dela upp platslistan i enskilda objekt och filtrera bort tomma ordersvar.
- Konfigurera Expand Location List med Field To Split Out satt till
locations. - Ställ in Include till
selectedOtherFieldsoch Fields To Include tillid. - Öppna Filter Nonempty Orders och säkerställ att villkoret använder Left Value
={{ $json.orders }}med operatornnotEmpty. - Verifiera kopplingsordningen: Fetch Square Locations → Expand Location List → Retrieve Square Orders → Filter 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.
- Öppna Assemble Sales Summary och låt Mode vara satt till
runOnceForEachItem. - Bekräfta att koden refererar till Subworkflow Trigger Input och Fetch Square Locations för att slå upp
report_dateoch platsnamn. - Verifiera att retur-objektet innehåller fält som
gross_sales,net_sales,total_taxochnet_totalför vidare användning.
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.
- Klicka på Execute Workflow och ange ett exempel på
report_datesom2025-07-21i Subworkflow Trigger Input. - Bekräfta att Fetch Square Locations returnerar en locations-array och att Expand Location List skickar ut ett objekt per plats.
- Kontrollera att Retrieve Square Orders returnerar ordrar för varje plats och att Filter Nonempty Orders endast släpper igenom icke-tomma resultat.
- Verifiera att Assemble Sales Summary matar ut beräknade fält som
gross_sales,total_taxochnet_total. - När ni är nöjda, slå på Active för att aktivera arbetsflödet för produktion.
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
Cirka 30 minuter om du redan har din Square-token.
Nej. Du kopplar dina Square-uppgifter och skickar in ett report_date i flö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).
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.
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.
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.
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.
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.