Quick overview This workflow collects purchase order PDFs through an n8n form, extracts header fields and line-item tables with easybits Extractor, appends one row per article to Google Sheets, and shows a completion summary highlighting any missing or incomplete extracted fields. How it works Receives a form submission with one or more uploaded purchase order PDF files. Splits the upload into one workflow item per PDF and processes the PDFs one at a time. Sends each PDF to easybits Extractor to extract purchase order header details and the articles table. Flattens the extracted articles into one row per line item, repeats the PO header fields on each row, and records per-document flags for missing header values or incomplete article fields. Appends the generated rows to a Google Sheets worksheet. After all PDFs are processed, builds a summary of any flagged documents and displays it on the n8n form completion screen. Setup Create an easybits Extractor account, generate an API key, add it as an easybits Extractor credential, and configure the extractor fields (mark_for, po_number, po_date, delivery_date, pr_number, reference_no, and an articles array with article/unit/quantity).
Tags
Related workflows
See all Google Sheets→Track buyer query citation sources with GPT-4o and Google Sheets
Quick overview This workflow tracks which sources ChatGPT cites for buyer queries.vIt runs weekly to test buyer queries against OpenAI’s GPT-4o web search, extracts the cited URLs, and logs per-query citation counts and domain classifications to Google Sheets. How it works Runs every week on a schedule trigger. Reads a list of buyer queries (including brand and competitor context) from the queries tab in Google Sheets. Sends each query to OpenAI’s gpt-4o-mini-search-preview three times with web search enabled and extracts the url_citation annotations from each response. Aggregates citations per query and domain, calculating citation totals and a sample hit rate across the three runs. Sends the unique cited domains to OpenAI’s gpt-4o-mini to classify each domain into a source taxonomy (brand site, competitor site, review platform, community, publisher, or docs/other). Appends the aggregated rows with the domain classification and an example URL to the citations tab in Google Sheets. Setup Add an OpenAI API key as an HTTP Header Auth credential (Authorization: Bearer YOUR_KEY) for both OpenAI HTTP requests. Add a Google Sheets credential with access to the target spreadsheet. Create
Log nearby businesses from OpenStreetMap to Google Sheets by proximity
Quick overview This workflow collects a location and business search criteria via an n8n form, geocodes the location with OpenStreetMap Nominatim, finds nearby matching businesses using the Overpass API, and appends normalized results (including website availability) to a Google Sheets spreadsheet. How it works Receives a submission from an n8n form with a location, business category, search radius, and maximum results. Sends the location text to OpenStreetMap Nominatim to retrieve latitude and longitude coordinates. Stops if the location cannot be geocoded, preventing an invalid proximity search. Builds an Overpass QL query for the selected business category and radius around the geocoded coordinates. Calls the OpenStreetMap Overpass API to return matching nodes/ways and their tags (for example website, phone, and opening hours). Normalizes the returned elements into a consistent set of fields, flags whether a website is present, and appends the rows to Google Sheets. Setup Add a Google Sheets credential and select the target spreadsheet and sheet in the Google Sheets append step. Update the User-Agent value to include a real contact email to comply with OpenStreetMap usage policy
Classify documents and extract invoice data with LDXhub AnalyzeDoc and Google Sheets
Quick overview This workflow collects uploaded PDFs or images, classifies each document type using LDXhub AnalyzeDoc, and routes it accordingly; invoices get high-detail field extraction and are appended as a new row in Google Sheets. How it works Receives a file upload through an n8n form for a PDF, JPG, or PNG business document. Sends the file to LDXhub AnalyzeDoc (low-detail) to classify it as invoice, receipt, business_card, contract, blank, or other. Parses the returned JSON and routes the execution based on the detected document_type. For invoices, reattaches the original uploaded file and runs LDXhub AnalyzeDoc (high-detail) to extract key invoice fields in structured JSON. Flattens the extracted fields and appends them as a new row in a selected Google Sheets worksheet. For receipts, business cards, and other types, sends the item to placeholder routes where you can add your own processing. Setup Create an LDXhub account, generate an API key, and configure an LDXhub API credential in n8n for both AnalyzeDoc steps. Connect a Google Sheets OAuth2 credential and select the target spreadsheet and worksheet in the append step. Ensure the first row of your sheet contains headers