Make (formerly Integromat) is a visual workflow automation tool that connects apps and APIs without requiring code. If you receive invoices by email and want them automatically extracted and routed to a spreadsheet, accounting software, or internal system — this guide shows how to build that workflow from scratch.
No programming required. Total setup time: 20–30 minutes.
What You'll Need
- A Make account (free tier works for testing — make.com)
- A DocuParseAPI account — free at docuparseapi.com/signup, 20 documents/month, no credit card
- A destination for the extracted data (Google Sheets, Airtable, Xero, or any app Make supports)
The Workflow We're Building
Email arrives with PDF invoice attachment
↓
Gmail / Email module detects the attachment
↓
HTTP module calls DocuParseAPI with the PDF
↓
JSON response is parsed
↓
Structured data written to Google Sheets
↓
Optional: Slack notification sentStep 1 — Create a New Scenario in Make
- Log into Make and click Create a new scenario
- You'll see a blank canvas with a prompt to choose your first module
Step 2 — Add the Email Trigger
If your invoices arrive by email:
- Search for and select Gmail (or your email provider)
- Choose Watch Emails as the trigger
- Connect your Gmail account when prompted
- Configure the trigger:
- Folder: INBOX (or a dedicated AP folder)
- Criteria: Only emails with attachments
- Maximum number of results: 10 (adjustable)
If you want to trigger manually for testing: Use the Manual trigger (clock icon) while building and switch to email later.
Step 3 — Add the HTTP Module (DocuParseAPI Call)
This is the core of the workflow. The HTTP module sends your invoice file to DocuParseAPI and returns the extracted JSON.
- Add a new module after the email trigger
- Search for HTTP and select Make a Request
- Configure it as follows:
URL:
https://docuparseapi.com/api/v1/extract
Method: POST
Headers: Click Add item and add:
- Name:
Authorization - Value:
Bearer YOUR_API_KEY_HERE
(Replace YOUR_API_KEY_HERE with your actual key from the DocuParseAPI dashboard)
Body type: Multipart/form-data
Fields: Click Add item:
- Key:
file - Value: Click the file icon and map to the attachment from the email trigger (
Attachments[] > Data) - Content type:
application/octet-stream
Parse response: Toggle this to Yes — this tells Make to parse the JSON response automatically so you can map the fields in later modules.
Step 4 — Map the Extracted Fields
After adding the HTTP module, run the scenario once with a test email to populate the response structure. Make will show you all the available fields from the API response:
data.merchant data.total data.tax data.currency data.date data.due_date data.invoice_id data.payment_method data.line_items[] data.line_items[].description data.line_items[].quantity data.line_items[].amount
Step 5 — Write to Google Sheets
- Add a Google Sheets module after the HTTP module
- Choose Add a Row
- Connect your Google account
- Select your spreadsheet and sheet
- Map the columns to the extracted fields:
| Spreadsheet Column | Map to |
|---|---|
| Vendor | data.merchant |
| Invoice # | data.invoice_id |
| Date | data.date |
| Due Date | data.due_date |
| Currency | data.currency |
| Total | data.total |
| Tax | data.tax |
Your invoice spreadsheet now fills itself automatically every time a new email arrives.
Step 6 — Handle Extraction Failures
Not every PDF will extract successfully. Add error handling before the Google Sheets step:
- Add a Router module after the HTTP module
- Create two routes:
- Route 1: Filter condition:
data.success = true→ proceed to Google Sheets - Route 2: Filter condition:
data.success = false→ send a Slack message or email alert
- Route 1: Filter condition:
Slack notification for failures:
Invoice extraction failed.
File: {{1.attachments[].filename}}
Error: {{3.data.error.code}}
Please review manually.Complete Module Configuration Reference
HTTP Module Settings
URL: https://docuparseapi.com/api/v1/extract Method: POST Headers: Authorization: Bearer [your API key] Body Type: Multipart/form-data Fields: Key: file Value: [mapped from email attachment Data field] Content-Type: application/octet-stream Parse Response: Yes
Router Conditions
Success route:
Condition: {{3.data.success}} Equal to trueFailure route:
Condition: {{3.data.success}} Not equal to true(The 3 refers to the HTTP module's step number — adjust if your scenario has a different numbering)
Sending to Xero Instead of Google Sheets
Replace the Google Sheets module with an HTTP module calling the Xero API, or use Make's native Xero module:
- Add a Xero module
- Choose Create Invoice (this creates a payable bill)
- Map the fields:
- Contact Name:
data.merchant - Invoice Number:
data.invoice_id - Date:
data.date - Due Date:
data.due_date - Total:
data.total - Currency Code:
data.currency
- Contact Name:
Make's Xero module handles the authentication; you just connect your Xero account.
Alternative Trigger: Google Drive
If invoices are dropped into a Google Drive folder rather than emailed:
- Replace the Gmail trigger with Google Drive > Watch Files in a Folder
- Set the folder to your invoice intake folder
- The rest of the workflow is identical — map
data(the file content) to the HTTP module'sfilefield
Testing Your Workflow
- Click Run once in Make while in the scenario editor
- Send a test email with a PDF invoice to your Gmail
- Make will process one email and show you the data at each step
- Check the HTTP module output to see the full API response
- Check Google Sheets to confirm the row was created
If the HTTP module shows an error:
- Verify your API key is correct (check the DocuParseAPI dashboard)
- Confirm the attachment is being mapped correctly — it should be binary data, not a URL
- Check that
Parse Responseis set toYes
Monthly Cost
- Make free tier: 1,000 operations/month (each module execution = 1 operation; a 3-module workflow uses 3 per invoice)
- DocuParseAPI free tier: 20 documents/month, no credit card
- For higher volume: DocuParseAPI Starter at $14.99/month covers 3,000 documents
At 100 invoices/month, the Make Core plan ($9/month) plus DocuParseAPI free tier (or $14.99/month if over 20) is well under $25/month total.