Du kan det här vid det här laget. Någon måste logga in i Square, klicka sig in i rapporter, ställa in rätt datum, exportera, byta namn på filen och sedan mejla den. Missar man ett steg blir ”dagens siffror” en gissningslek innan dagen ens har börjat.
Den här Square Outlook-automatiseringen slår först mot butikschefer och ekonomiteam, men driftsansvariga känner också av den eftersom bemannings- och inköpsbeslut tas utifrån gårdagens totaler. Resultatet är enkelt: en korrekt formaterad CSV i inkorgen varje morgon, med siffror som matchar Squares egen rapport för försäljningssammanställning.
Nedan ser du hur flödet körs, vad det tar bort från din dag och vad som krävs för att göra det tillförlitligt för en eller flera platser.
Så fungerar automatiseringen
Se hur detta löser problemet:
n8n Workflow Template: Square till Outlook: dagliga försäljnings-csv skickas åt dig
flowchart LR
subgraph sg0["Schedule 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["<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"]
n5@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger", pos: "b", h: 48 }
n6@{ icon: "mdi:cog", form: "rounded", label: "Convert Sales Summary to CSV..", pos: "b", h: 48 }
n7@{ icon: "mdi:cog", form: "rounded", label: "Send Report", pos: "b", h: 48 }
n5 --> n0
n0 --> n1
n4 --> n6
n3 --> n2
n1 --> n3
n2 --> n4
n6 --> n7
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 n5 trigger
class n2 decision
class n0,n3 api
class n4 code
classDef customIcon fill:none,stroke:none
class n0,n3,n4 customIcon
Utmaningen: få ut gårdagens försäljning ur Square (varje dag)
Daglig försäljningsrapportering låter enkelt, men att manuellt plocka ut den från Square blir en återkommande belastning för teamet. Du måste komma ihåg att köra den, välja rätt datum (gårdagen, inte ”senaste 24 timmarna”) och exportera i ett format som folk faktiskt kan använda. Sedan kommer uppföljningen: ”Kan du skicka om den som CSV?” eller ”De här totalsummorna matchar inte instrumentpanelen.” Den verkliga kostnaden är inte bara minuterna det tar att exportera. Det är avbrotten, osäkerheten och den tröga starten på dagen när beslut bygger på siffror du inte helt litar på.
Det blir snabbt mycket. Och ju fler platser du har, desto skörare blir hela rutinen.
- Någon måste göra exporten vid samma tid varje dag, vilket är lätt att glömma vid öppning, stängning eller sjukfrånvaro.
- Filnamn och format glider, så ”samma rapport” ser olika ut beroende på vem som tog ut den.
- Rapportering för flera platser blir rörig eftersom totaler kan behöva hämtas plats för plats och sedan sättas ihop i efterhand.
- När siffror inte matchar Squares instrumentpanel slösar folk tid på avstämning i stället för att agera.
Lösningen: en daglig Square CSV för försäljningssammanställning, levererad via Outlook
Det här arbetsflödet körs enligt schema (inställt på 04:00) och hämtar gårdagens slutförda ordrar från Square för varje plats på ditt konto. Det börjar med att hämta dina Square-platser och loopar sedan igenom varje plats för att begära orderdata för rapportdatumet. Platser utan försäljning hoppas över automatiskt, så du slipper tomt brus. Därefter aggregerar ett bearbetningssteg ordrar till en sammanställning som är utformad för att matcha det du ser i Square Dashboard → Reports → Sales Summary. Slutligen gör flödet om sammanställningen till en CSV-fil och mejlar den via Microsoft Outlook till dem som behöver den (chef, ekonomi, bokförare, till och med en hyresvärd med provisionsupplägg).
Flödet är rakt på sak. Schemat triggar körningen, Square-data samlas in och rensas, och Outlook levererar en fil som teamet kan öppna direkt. Ingen export. Ingen omdöpning. Ingen tråd om ”vem tog ut rapporten i dag?”.
Vad som förändras: före vs. efter
| Detta elimineras | Effekt du kommer att se |
|---|---|
|
|
Praktisk effekt i verkligheten
Säg att du driver 3 Square-platser och mejlar en daglig rapport till två personer (en chef och en bokförare). Manuellt tar det oftast cirka 10 minuter per plats att välja rätt datum, exportera, namnge filen och rimlighetskontrollera totaler, plus ytterligare 5 minuter för att bifoga och skicka den två gånger. Det är ungefär 45 minuter per dag. Med det här flödet är ”arbetet” i princip noll efter uppsättning: det kör 04:00, skapar CSV:n och skickar den via Outlook automatiskt, så teamet startar dagen med filen redan i inkorgen.
Krav
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
- Square för att komma åt plats- och orderdata.
- Microsoft Outlook för att mejla CSV-rapporten automatiskt.
- Square åtkomsttoken (hämta den i Square Developer Dashboard).
Kunskapsnivå: Medel. Du kopplar in inloggningar, bekräftar rapportfält och testar en körning från start till mål.
Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).
Flödet i arbetsflödet
Ett dagligt schema startar det. Arbetsflödet triggar 04:00, så rapporten byggs efter att föregående dag är helt avslutad.
Square-platser hämtas först. En HTTP-förfrågan hämtar alla platser kopplade till ditt Square-konto, och sedan delar flödet upp listan så att varje plats behandlas separat.
Ordrar hämtas och sammanställs. För varje plats hämtar en ny HTTP-förfrågan slutförda ordrar för rapportdatumet. Om en plats saknar försäljning hoppas den över. Annars aggregerar flödet orderdata till en försäljningssammanställning som är utformad för att matcha Squares egen rapportering.
En CSV skapas och mejlas via Outlook. Sammanställningen blir en CSV-fil, och sedan skickar Microsoft Outlook den till de mottagare du väljer, med en konsekvent ämnesrad och meddelandetext.
Du kan enkelt ändra schemat (dagligen vs. veckovis) eller mottagarlistan efter behov. Se hela implementeringsguiden nedan för anpassningsalternativ.
Steg-för-steg-implementeringsguide
Steg 1: Konfigurera schematriggern
Detta arbetsflöde körs enligt ett schema för att generera gårdagens försäljningsrapport från Square.
- Lägg till noden Scheduled Run Starter som din trigger.
- Öppna Scheduled Run Starter och ställ in schemaregeln så att den matchar önskat intervall (t.ex. dagligen vid en bestämd tid).
- Lämna övriga standardinställningar som de är, om ni inte behöver en anpassad intervallkonfiguration.
Steg 2: Anslut Square och hämta orderdata
Dessa noder hämtar platser från Square och hämtar därefter slutförda ordrar för varje plats.
- Konfigurera Fetch Square Sites med URL satt till
https://connect.squareup.com/v2/locationsoch behåll Authentication satt tillgenericCredentialTypemed genericAuthTypehttpHeaderAuth. - Inloggning krävs: Anslut era
httpHeaderAuth-uppgifter i Fetch Square Sites. - I Split Location List ställer ni Field to Split Out till
locationsoch Fields to Include tillidför att behandla varje plats separat. - I Retrieve Square Orders ställer ni URL till
https://connect.squareup.com/v2/orders/search, Method tillPOSToch Body till det angivna JSON-uttrycket: - Klistra in detta i JSON Body i Retrieve Square Orders:
={ "location_ids": ["{{ $json.locations.id }}"], "query": { "filter": { "state_filter": { "states": ["COMPLETED"] }, "date_time_filter": { "created_at": { "start_at": "{{ $('Scheduled Run Starter').item.json.timestamp.toDateTime().minus(1, 'days').format('yyyy-MM-dd') }}T00:00:00-05:00", "end_at": "{{ $('Scheduled Run Starter').item.json.timestamp.toDateTime().minus(1, 'days').format('yyyy-MM-dd') }}T23:59:59-05:00" } } } }, "limit": 1000, "return_entries": false} - Inloggning krävs: Anslut era
httpHeaderAuth-uppgifter i Retrieve Square Orders. - I Filter Empty Locations lägger ni till ett villkor där leftValue är
={{ $json.orders }}och Operator ärarray→notEmpty.
Steg 3: Sätt upp försäljningsbearbetning och CSV-utdata
Detta steg beräknar totalsummor och konverterar dem till en CSV-fil för att bifoga i e-post.
- Öppna Assemble Sales Summary och behåll Mode satt till
runOnceForEachItem. - Klistra in den angivna JavaScript-koden i jsCode (som ingår i arbetsflödet) för att beräkna totalsummor som bruttoförsäljning, skatt, dricks och nettototal.
- I Generate CSV Report ställer ni Binary Property Name till
sales_report. - Ställ in filnamnet i Generate CSV Report till
=sales_report_{{ $('Scheduled Run Starter').item.json.timestamp }}.csv.
Steg 4: Konfigurera e-postleveransen
Rapporten levereras via Outlook med CSV-filen bifogad.
- I Dispatch Email Report ställer ni To Recipients till
[YOUR_EMAIL](ersätt med er faktiska adress). - Ställ in Subject till
=Your Square Sales Report for {{ $('Scheduled Run Starter').item.json['Readable date'].split(',')[0] }}. - Ställ in Body Content till
och behåll Body Content Type somHello,
|Please see the attached report containing yesterday's sales.
Best,
Automation Teamhtml. - Inloggning krävs: Anslut era
Microsoft Outlook-uppgifter i Dispatch Email Report.
Steg 5: Testa och aktivera ert arbetsflöde
Verifiera end-to-end-körning innan ni aktiverar den schemalagda körningen.
- Klicka på Execute Workflow för att köra Scheduled Run Starter manuellt.
- Bekräfta att Fetch Square Sites returnerar platsdata och att Retrieve Square Orders returnerar slutförda ordrar för datumintervallet.
- Verifiera att Generate CSV Report skapar en binär fil
sales_reportoch att Dispatch Email Report skickar e-postmeddelandet med en bifogad CSV. - När allt är verifierat, växla arbetsflödet till Active för att aktivera schemalagd körning.
Se upp för
- Square-inloggningar kan gå ut eller sakna åtkomst till rätt resurser. Om det fallerar, kontrollera först token i Authorization-headern i n8n Credentials och bekräfta sedan att token fortfarande är aktiv i Square.
- Om du lägger till paginering för platser med många ordrar (över 1 000 ordrar/dag) kan en saknad loop göra att ordrar tyst försvinner. När totalerna ser ”för låga” ut är det oftast därför.
- Skick via Microsoft Outlook kan misslyckas om din tenant blockerar programmatisk sändning eller om brevlådan saknar behörighet. Kontrollera Outlook-inloggningen i n8n och bekräfta att kontot kan skicka som vald avsändare.
Vanliga frågor
Cirka en timme om du redan har Square- och Outlook-inloggningar redo.
Ja. Du skriver ingen kod, men du klistrar in en åtkomsttoken, kopplar Outlook och kör ett test för att bekräfta att CSV:n ser rätt ut.
Ja. n8n har ett gratis alternativ för egen drift och en gratis provperiod på n8n Cloud. Cloud-planer startar på 20 USD/månad för högre volym. Du behöver också räkna med Square API-åtkomst (ingår normalt i ditt Square-konto).
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen drift på en VPS. För egen drift är Hostinger VPS prisvärd och klarar n8n bra. Egen drift ger obegränsat antal körningar men kräver grundläggande serverhantering.
Du kan ändra schemat till veckovis genom att redigera noden Scheduled Run Starter, och du kan justera mottagare i steget Dispatch Email Report. Om du behöver andra rapportkolumner uppdaterar du logiken i Assemble Sales Summary och mappningen i Generate CSV Report. För platser med hög volym lägger du till paginering i begäran Retrieve Square Orders så att rapporten inte missar något.
Oftast beror det på en utgången eller felaktigt formaterad åtkomsttoken i inloggningen Square Header Auth (Authorization-värdet ska se ut som ”Bearer …”). Det kan också vara att behörigheter saknas för de endpoints du anropar, särskilt om token skapades för en annan app eller miljö. Mindre vanligt, men verkligt: rate limiting när du hämtar många ordrar över flera platser samtidigt, vilket gör att retries eller paginering blir nödvändigt.
För de flesta små team är det i praktiken ”dagligen, för alltid”. På n8n Cloud beror kapaciteten på planens månatliga antal körningar, och varje plats som behandlas räknas mot det. Om du kör själv finns ingen körningsgräns, men servern behöver fortfarande tillräckligt med minne och timeout-inställningar för att hantera stora orderhämtningar, särskilt när du lägger till paginering.
Ofta, ja. Square-rapportering behöver ofta loopar över platser, filtrering av tomma resultat och anpassad aggregering så att din CSV matchar det instrumentpanelen visar. n8n hanterar den typen av logik snyggt och du kan köra själv för obegränsat antal körningar, vilket är en stor grej när du skalar. Zapier och Make kan fungera, men flersteglogik och iteration kan bli dyrt eller krångligt. Prata med en automationsexpert om du vill ha en snabb rekommendation baserad på din volym.
När det här väl rullar slutar daglig försäljningsrapportering vara en uppgift som teamet måste komma ihåg. Flödet hanterar det repetitiva, och du får tillbaka dina morgnar.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.