Du får en arabisk PDF i Telegram, och du vet redan vad som väntar. Någon måste “bara plocka ut texten”, fixa konstiga radbrytningar, lägga till sidnummer och sedan klistra in allt i något som teamet kan söka i.
Det här arbetsflödet för Telegram PDF OCR träffar driftteam och administratörer först, men marknadsförare som hanterar arabiska pressklipp och rapporter känner av det också. Vinsten är enkel: skicka en PDF, få tillbaka en länk till ett korrekt formaterat Google-dokument och sluta bränna cirka 1–2 timmar i veckan på copy-paste-städning.
Nedan ser du hur automatiseringen körs, vad du behöver koppla ihop och vilka tidsbesparingar du kan räkna med när den väl är igång.
Så här fungerar automatiseringen
Hela n8n-flödet, från trigger till slutresultat:
n8n Workflow Template: Telegram till Google Docs: arabisk PDF-text klar
flowchart LR
subgraph sg0["Telegram Bot 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/telegram.svg' width='40' height='40' /></div><br/>Download Document from Teleg.."]
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/telegram.svg' width='40' height='40' /></div><br/>Telegram Bot Trigger"]
n2@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check If Document Attached", 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/>Upload PDF to Mistral AI"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Get Mistral Signed URL"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Process OCR with Mistral"]
n6["<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/>Parse OCR Results by Page"]
n7@{ icon: "mdi:cog", form: "rounded", label: "Update Google Doc with Content", pos: "b", h: 48 }
n8@{ icon: "mdi:cog", form: "rounded", label: "Create New Google Doc", pos: "b", h: 48 }
n9@{ icon: "mdi:swap-vertical", form: "rounded", label: "Process Document Updates", pos: "b", h: 48 }
n10@{ icon: "mdi:cog", form: "rounded", label: "Aggregate OCR Results", pos: "b", h: 48 }
n11["<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/telegram.svg' width='40' height='40' /></div><br/>Send Document Link to User"]
n12["<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/telegram.svg' width='40' height='40' /></div><br/>Request PDF File Format"]
n13["<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/telegram.svg' width='40' height='40' /></div><br/>Status: File Received (1/5)"]
n14["<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/telegram.svg' width='40' height='40' /></div><br/>Status: Sent to Processor (2.."]
n15["<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/telegram.svg' width='40' height='40' /></div><br/>Status: File Signed (3/5)"]
n16["<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/telegram.svg' width='40' height='40' /></div><br/>Status: Results Received (4/5)"]
n17["<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/telegram.svg' width='40' height='40' /></div><br/>Status: Creating Document (5.."]
n1 --> n2
n10 --> n8
n10 --> n17
n8 --> n9
n4 --> n5
n4 --> n15
n9 --> n7
n5 --> n6
n5 --> n16
n3 --> n4
n3 --> n14
n6 --> n10
n2 --> n0
n2 --> n12
n7 --> n9
n7 --> n11
n0 --> n3
n0 --> n13
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 n1 trigger
class n2 decision
class n3,n4,n5 api
class n6 code
classDef customIcon fill:none,stroke:none
class n0,n1,n3,n4,n5,n6,n11,n12,n13,n14,n15,n16,n17 customIcon
Problemet: arabiska PDF:er är svåra att återanvända
Arabiska PDF:er är ofta “läsbara” för människor men värdelösa för dina verktyg. Du kan inte söka i dem ordentligt, du kan inte citera dem snabbt och när du kopierar text blir resultatet ofta rörigt (fel ordning, trasiga rader, saknad interpunktion). Sedan slutar det med att någon skriver om delar för hand eller lappar ihop stycken från olika sidor. Det går långsamt och ärligt talat är det mentalt dränerande arbete som ingen vill äga. Ännu värre: slutresultatet varierar beroende på vem som gjorde det, så teamet lägger extra tid på att dubbelkolla och formatera om.
Friktionen byggs på. Här är var det faller isär i vardagen:
- Folk kopierar text från PDF:er till WhatsApp eller mejl, och då tappas sammanhang och sidreferenser.
- Arabisk OCR är ojämn i generiska verktyg, så du slösar tid på att rätta uppenbara fel.
- Filer sparas på slumpmässiga ställen, vilket gör att “slutversionen” alltid är ett mysterium.
- Någon måste manuellt meddela beställaren att det är klart, oftast efter att de följt upp två gånger.
Lösningen: skicka en Telegram-PDF, få ett Google-dokument
Det här n8n-flödet gör Telegram till en enkel inkorg för arabiska PDF:er. En användare skickar en PDF till din bot, flödet validerar den, laddar ner filen och skickar den till Mistrals OCR-tjänst för att extrahera arabisk text sida för sida. Resultatet rensas och struktureras, inklusive sidnumrering så texten är enkel att referera till senare. Därefter skapar n8n ett Google-dokument i din Google Drive och matar in OCR-texten i batchar (så att långa dokument inte time-outar). Till sist svarar boten i Telegram med en klickbar Google Docs-länk, plus statusmeddelanden under vägen så användarna inte undrar om flödet har fastnat.
Flödet startar med ett Telegram-meddelande som innehåller en PDF-bilaga. Därifrån skickas dokumentet till Mistral för arabisk OCR, resultaten slås ihop till en formaterad textkropp och sedan skapas och fylls ett Google-dokument. Sista steget är det du bryr dig om: en delningsbar länk tillbaka i Telegram.
Det här får du: automatisering vs. resultat
| Vad det här arbetsflödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut i praktiken
Säg att du hanterar 10 arabiska PDF:er i veckan och att varje tar cirka 15 minuter att kopiera, rensa, formatera om och ladda upp någonstans där den går att dela. Det blir ungefär 2,5 timmar per vecka, och det är den typen av jobb som stjäl fokus mitt i dagen. Med det här flödet blir varje beställning: 1 minut för att vidarebefordra PDF:en till Telegram, sedan väntar du på OCR och att Google-dokumentet skapas (ofta cirka 5–15 minuter beroende på PDF:en). Du gör fortfarande en granskning om dokumentet är kritiskt, men grovjobbet försvinner.
Det du behöver
- n8n-instans (testa n8n Cloud gratis)
- Självhosting om du föredrar det (Hostinger fungerar bra)
- Telegram för att ta emot PDF-filer från användare.
- Mistral AI OCR för att extrahera arabisk text från sidor.
- Google Docs + Google Drive för att skapa och lagra slutdokumentet.
- Telegram bot token (hämta den från @BotFather i Telegram).
Kunskapsnivå: Medel. Du kopplar konton, klistrar in API-nycklar och bekräftar Google Drive-behörigheter för utdatamappen.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
Ett Telegram-meddelande triggar allt. När någon skickar ett dokument till din bot tar n8n emot uppdateringen i realtid via Telegram-triggern.
Filen valideras och laddas ner. Om det saknas bilaga, eller om den inte är en PDF, svarar flödet och ber om rätt format. När det är en PDF hämtar det själva dokumentets binärdata så att den kan bearbetas.
OCR körs och texten struktureras. n8n laddar upp PDF:en till Mistral, kör arabisk OCR, delar upp resultatet per sida och slår sedan ihop det till ett sammanhängande resultat. Sidnumrering ingår så att referenser inte tappas bort.
Ett Google-dokument skapas och fylls. Flödet skapar ett nytt Google-dokument i din Drive-mapp och infogar sedan texten i batchar. Det är batchningen som gör att stora filer inte fallerar halvvägs.
Du kan enkelt ändra målmapp och namngivningskonvention så att det matchar kund, projekt eller avdelning. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-implementeringsguide
Steg 1: Konfigurera Telegram-triggern
Det här arbetsflödet startar när ett Telegram-meddelande kommer in. Konfigurera triggern och verifiera att en PDF-bilaga finns med.
- Lägg till och öppna Telegram Update Trigger och behåll Updates inställt på
message. - Behörighet krävs: Anslut era telegramApi-uppgifter i Telegram Update Trigger.
- Öppna Validate Attachment Presence och bekräfta att villkoret kontrollerar
{{ $json.message.document.file_name }}med operatorn exists. - Verifiera att felgrenen är kopplad till Ask for PDF Format för meddelanden som inte är PDF.
Steg 2: Koppla hämtning av Telegram-fil och statusuppdateringar
Arbetsflödet hämtar den uppladdade filen från Telegram och skickar statusmeddelanden till användaren.
- I Fetch Telegram Document, ställ in Resource på
fileoch File ID på{{ $json.message.document.file_id }}. - Behörighet krävs: Anslut era telegramApi-uppgifter i Fetch Telegram Document.
- Öppna Ask for PDF Format och ställ in Text på
Please send the file in PDF formatoch Chat ID på{{ $('Telegram Update Trigger').item.json.message.chat.id }}. - Behörighet krävs: Anslut era telegramApi-uppgifter i Ask for PDF Format.
- Anslut Telegram-uppgifter till alla statusnoder: Progress: File Received, Progress: Sent to OCR, Progress: File Signed, Progress: Results Ready och Progress: Creating Doc.
Steg 3: Konfigurera Mistral OCR-bearbetning
Dessa noder laddar upp PDF:en till Mistral, hämtar en signerad länk och kör OCR. Flera steg körs parallellt för att skicka statusuppdateringar.
- I Upload PDF to Mistral, ställ in URL på
https://api.mistral.ai/v1/files, Method påPOSToch Content Type påmultipart-form-data. - Konfigurera Body Parameters i Upload PDF to Mistral med
purpose=ocrochfilesom formBinaryData med indatafältetdata. - Behörighet krävs: Anslut era httpHeaderAuth-uppgifter i Upload PDF to Mistral.
- I Retrieve Mistral File Link, ställ in URL på
=https://api.mistral.ai/v1/files/{{ $json.id }}/urloch lägg till query-parameternexpiry=24. - Behörighet krävs: Anslut era httpHeaderAuth-uppgifter i Retrieve Mistral File Link och Run Mistral OCR.
- I Run Mistral OCR, ställ in JSON Body på
{ "model": "mistral-ocr-latest", "document": { "type": "document_url", "document_url": "{{ $json.url }}" }, "include_image_base64": true }.
Upload PDF to Mistral skickar utdata både till Retrieve Mistral File Link och Progress: Sent to OCR parallellt. Retrieve Mistral File Link skickar utdata både till Run Mistral OCR och Progress: File Signed parallellt. Run Mistral OCR skickar utdata både till Split OCR Pages och Progress: Results Ready parallellt.
Steg 4: Bearbeta OCR-sidor och aggregera resultat
Efter OCR delas resultaten upp per sida och aggregeras för att förbereda det slutliga dokumentinnehållet.
- I Split OCR Pages, behåll JavaScript-koden som den är för att mata ut
pageNumberochcontentför varje sida. - I Combine OCR Output, bekräfta att aggregeringsfälten inkluderar
=pageNumberochcontent.
Combine OCR Output skickar utdata både till Generate Google Doc och Progress: Creating Doc parallellt.
Steg 5: Konfigurera Google Docs-utdata och leverans till användaren
Arbetsflödet skapar ett Google-dokument, infogar OCR-texten och skickar tillbaka länken till Telegram-användaren.
- I Generate Google Doc, ställ in Title på
=OCR Result from {{ $('Telegram Update Trigger').item.json.message.document.file_name }}och Folder ID på ert mål-ID för mappen (ersätt[YOUR_ID]). - Behörighet krävs: Anslut era googleDocsOAuth2Api-uppgifter i Generate Google Doc och Insert Text into Doc.
- I Insert Text into Doc, ställ in Operation på
updateoch Document URL på{{ $json.id }}. - Säkerställ att åtgärdstexten för Insert i Insert Text into Doc använder hela uttrycket:
{{ $('Combine OCR Output').item.json.content.map((c, i) => `${c}\n\n(Page Number: ${$('Combine OCR Output').item.json.pageNumber[i]})` ).join('\n\n--------\n\n') }}. - I Batch Doc Updates, behåll Batch Size inställt på
1för sekventiella uppdateringar. - I Send Doc Link to User, ställ in Text på
={{ $('Generate Google Doc').item.json.name }}och Chat ID på{{ $('Telegram Update Trigger').item.json.message.chat.id }}. - Behörighet krävs: Anslut era telegramApi-uppgifter i Send Doc Link to User.
[YOUR_ID] kommer Generate Google Doc att misslyckas. Ersätt det med ett faktiskt mapp-ID i Google Drive.Insert Text into Doc skickar utdata både till Batch Doc Updates och Send Doc Link to User parallellt.
Steg 6: Testa och aktivera ert arbetsflöde
Kör ett fullständigt test med en PDF i Telegram och verifiera att varje steg slutförs utan fel.
- Klicka på Execute Workflow och skicka en PDF till er Telegram-bot för att trigga Telegram Update Trigger.
- Bekräfta att ni får statusmeddelanden från Progress: File Received till Progress: Creating Doc.
- Verifiera att ett Google-dokument skapas med OCR-texten och att Send Doc Link to User postar dokumentlänken till Telegram.
- När allt fungerar, växla arbetsflödet till Active för att aktivera användning i produktion.
Vanliga fallgropar
- Inloggningar för Google Docs/Drive kan gå ut eller kräva specifika behörigheter. Om det strular, kontrollera först det anslutna Google-kontot i n8n-credentials och bekräfta delningsinställningarna för Drive-mappen.
- Om du använder Wait-noder eller extern OCR-bearbetning varierar bearbetningstiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du redigera utdata för alltid.
Vanliga frågor
Cirka 20 minuter om dina nycklar är klara.
Nej. Du klistrar mest in inloggningsuppgifter och väljer målmapp i Google Drive.
Ja. n8n har ett gratis alternativ för självhosting och en gratis provperiod i n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volym. Du behöver också räkna med kostnader för Mistral OCR API-användning för varje PDF som bearbetas.
Två alternativ: n8n Cloud (hanterat, enklast uppsättning) eller självhosting på en VPS. För självhosting är Hostinger VPS prisvärd och hanterar n8n bra. Självhosting ger dig obegränsat antal körningar men kräver grundläggande serverhantering.
Ja, och det är en av de bästa justeringarna att göra tidigt. Ändra dokumentnamnet i steget där Google-dokumentet skapas och justera mappningen för “set/edit fields” som bygger titeln från Telegram-metadata. Vanliga anpassningar är att lägga till avsändarens namn, infoga datum, använda en projektkod som prefix och spara i olika Google Drive-mappar per chatt eller användare.
Oftast är det bot-token eller webhook-setup. Skapa en ny token i @BotFather vid behov, uppdatera sedan Telegram-credentials i n8n och kontrollera att webhooken är aktiv. Bekräfta också att boten faktiskt finns i chatten du testar (gruppbehörigheter ställer ofta till det) och att meddelandet innehåller en riktig dokumentbilaga, inte en vidarebefordrad “förhandsvisning”.
Mer än tillräckligt för normal teamanvändning. På n8n Cloud Starter begränsas du av månatliga exekveringar, medan självhosting saknar exekveringstak (det beror på din server). I praktiken är OCR-tiden den riktiga flaskhalsen, så större PDF:er hamnar bara i kö och tar längre tid.
Ofta, ja, eftersom det här flödet har förgreningar, batchning och OCR-bearbetning i flera steg som blir dyr eller klumpig på andra plattformar. n8n ger dig också möjligheten att köra självhostat, vilket spelar roll om du hanterar många dokument och vill ha förutsägbara kostnader. Zapier eller Make kan fortfarande vara bättre för väldigt små, enkla flöden med två steg. Om du är osäker, prata med en automationsexpert så får du en rak rekommendation baserad på volym och risk.
När detta väl kör är arabiska PDF:er inte längre en återvändsgränd. Du får sökbar text, ett delningsbart Google-dokument och färre avbrott under veckan.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.