{"product_id":"extract-hours-from-pdf-timesheets-to-excel-with-azure-openai","title":"Extract Hours from PDF Timesheets to Excel with Azure OpenAI","description":"\u003ch3\u003eInstantly Extract PDF Timesheet Hours to Excel Using Azure OpenAI\u003c\/h3\u003e\n\u003cp\u003eUpload one or more PDF timesheets in an n8n chat, and this workflow automatically extracts the text, uses \u003cstrong\u003eAzure OpenAI\u003c\/strong\u003e to total \u003cstrong\u003eonsite\u003c\/strong\u003e, \u003cstrong\u003eremote\u003c\/strong\u003e, and \u003cstrong\u003eunknown\u003c\/strong\u003e hours per consultant, then appends the results to \u003cstrong\u003eMicrosoft Excel\u003c\/strong\u003e, stores the same data in an \u003cstrong\u003en8n Data Table\u003c\/strong\u003e, and sends a confirmation email via \u003cstrong\u003eMicrosoft Outlook\u003c\/strong\u003e.\u003c\/p\u003e\n\n\u003ch3\u003eWhat this workflow does\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003eReceives an \u003cstrong\u003en8n chat\u003c\/strong\u003e message containing one or more uploaded \u003cstrong\u003ePDF\u003c\/strong\u003e files.\u003c\/li\u003e\n  \u003cli\u003eSplits uploads so each PDF is processed as its own item.\u003c\/li\u003e\n  \u003cli\u003eExtracts \u003cstrong\u003eplain text\u003c\/strong\u003e from each PDF.\u003c\/li\u003e\n  \u003cli\u003eSends the extracted text to an \u003cstrong\u003eAzure OpenAI\u003c\/strong\u003e-powered agent to classify entries and return results as \u003cstrong\u003eJSON\u003c\/strong\u003e, including consultant \u003cstrong\u003ename\u003c\/strong\u003e and total \u003cstrong\u003eonsite\/remote\/unknown\u003c\/strong\u003e hours.\u003c\/li\u003e\n  \u003cli\u003eParses the agent response into structured JSON and \u003cstrong\u003estops with an error\u003c\/strong\u003e if the output is not valid JSON.\u003c\/li\u003e\n  \u003cli\u003eAppends one row per timesheet to a specified \u003cstrong\u003eExcel worksheet\u003c\/strong\u003e and inserts the same values into an \u003cstrong\u003en8n Data Table\u003c\/strong\u003e.\u003c\/li\u003e\n  \u003cli\u003eSends a \u003cstrong\u003eMicrosoft Outlook\u003c\/strong\u003e email after all rows are saved to confirm processing is complete.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eUse cases\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003eOps and project teams consolidating consultant timesheets from PDFs into a single Excel tracking sheet.\u003c\/li\u003e\n  \u003cli\u003eSaaS operators automating monthly billing support by turning time logs into structured hour totals per consultant.\u003c\/li\u003e\n  \u003cli\u003eAutomation engineers standardizing data pipelines with Azure OpenAI classification and reliable JSON output validation.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eTechnical details\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003eAzure OpenAI\u003c\/strong\u003e: classifies extracted timesheet text and returns totals as JSON (name, onsite, remote, unknown).\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eMicrosoft Excel\u003c\/strong\u003e: appends rows to a workbook\/worksheet with columns \u003ccode\u003ename\u003c\/code\u003e, \u003ccode\u003eonsite\u003c\/code\u003e, \u003ccode\u003eremote\u003c\/code\u003e, \u003ccode\u003eunknown\u003c\/code\u003e.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003en8n Data Table\u003c\/strong\u003e: stores matching columns (\u003ccode\u003ename\u003c\/code\u003e, \u003ccode\u003eonsite\u003c\/code\u003e, \u003ccode\u003eremote\u003c\/code\u003e, \u003ccode\u003eunknown\u003c\/code\u003e).\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eMicrosoft Outlook\u003c\/strong\u003e: sends a completion confirmation email.\u003c\/li\u003e\n  \u003cli\u003eWorkflow nodes include: \u003cstrong\u003ecode\u003c\/strong\u003e, \u003cstrong\u003edata table\u003c\/strong\u003e, \u003cstrong\u003emicrosoft excel\u003c\/strong\u003e, \u003cstrong\u003eextract from file\u003c\/strong\u003e, \u003cstrong\u003en8n-nodes-langchainagent\u003c\/strong\u003e, and supporting steps such as \u003cstrong\u003esticky note\u003c\/strong\u003e.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003cp\u003e\u003cstrong\u003eDesigned for n8n users\u003c\/strong\u003e who need accurate, structured extraction from PDF timesheets—without manual spreadsheet updates.\u003c\/p\u003e","brand":"N8N Commerce","offers":[{"title":"Default Title","offer_id":46164237844659,"sku":"N8N-20465","price":68.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/6279\/6723\/files\/vxGAku3BAnTXkopYhcXYj_H3A5m1an.png?v=1791278698","url":"https:\/\/buyflowscripts.com\/products\/extract-hours-from-pdf-timesheets-to-excel-with-azure-openai","provider":"N8N Commerce","version":"1.0","type":"link"}