Automating Invoice Processing with n8n, PDF.co, and Airtable
This workflow monitors an email inbox for invoice attachments, extracts structured invoice data with PDF.co’s AI Invoice Parser, and creates an Airtable record.
The workflow is:
Email Trigger → PDF.co Upload File → AI Invoice Parser → Airtable
Prerequisites
Prepare:
- An n8n instance
- A PDF.co account
- An email account with IMAP access
- An Airtable base and personal access token
- An Airtable table for invoice records
Install the PDF.co Node Before Importing
The JSON workflow uses the PDF.co community node. Install it before importing the blueprint:
- In n8n, open Settings → Community Nodes.
- Search for
n8n-nodes-pdfco. - Install the package.
- Reload the n8n editor.
- Import the workflow JSON.
After importing, select your email, PDF.co, and Airtable credentials. Installation details are available on the PDF.co node package page.
You can also build the workflow manually using the following steps.
Step 1: Trigger the Workflow from an Invoice Email
Add Email Trigger (IMAP) and connect your email account.
Configure the node:
- Mailbox:
INBOX - Download Attachments: True
- Action: Mark as Read
- Custom Email Rules:
["UNSEEN", ["SUBJECT", "Sales Invoice"]]
Send a test email with one PDF invoice attached. Confirm that the trigger returns the file as binary data, typically under attachment_0.
Step 2: Upload the Invoice to PDF.co
Add PDF.co API and select Upload File.
Configure the node:
- Binary File: True
- Input Binary Field:
attachment_0 - File Name:
invoice.pdf
The node uploads the attachment and returns a secure URL for the next step.
Step 3: Extract the Invoice Data
Add another PDF.co API node and select AI Invoice Parser.
In the source URL field, map the URL from the upload node:
={{ $json.url }}
The parser returns structured data such as:
- Vendor and customer details
- Invoice number and date
- Payment due date
- Total amount
- Line items
Step 4: Create the Airtable Record
Prepare an Airtable table with columns such as:
- Customer Name
- Customer Email
- Vendor Name
- Vendor Email
- Invoice Date
- Invoice Number
- Payment Due Date
- Total Amount
Add Airtable and choose Create a Record.
Select the base and table, then map the parser output:
- Customer Name:
={{ $json.body.customer.billTo.name }} - Customer Email:
={{ $json.body.customer.billTo.contactInformation.email }} - Vendor Name:
={{ $json.body.vendor.name }} - Vendor Email:
={{ $json.body.vendor.contactInformation.email }} - Invoice Date:
={{ $json.body.invoice.invoiceDate }} - Invoice Number:
={{ $json.body.invoice.invoiceNo }} - Payment Due Date:
={{ $json.body.paymentDetails.dueDate }} - Total Amount:
={{ $json.body.paymentDetails.total }}
Step 5: Test and Activate
Send another invoice PDF to the monitored inbox and run the workflow.
Confirm that PDF.co extracts the invoice data and that a corresponding record appears in Airtable. Once the test succeeds, activate the workflow.
Congratulations!
You’ve successfully automated invoice processing. Your workflow now:
- Captures invoices from email.
- Parses them with AI.
- Logs them into Airtable for tracking.
This setup scales easily—from startup use cases to enterprise-level automation.
Built something cool with this workflow? Share it with us @pdfdotco
Related Tutorials


