Zapier
Connect PerfectParser to 6,000+ apps with Zapier — no code required. Extract data from documents and send it straight to Sheets, CRMs, or Slack.
PerfectParser's Zapier integration lets you extract structured data from documents and send it anywhere Zapier connects — without writing any code. This guide covers setup and the recommended two-Zap pattern.
The PerfectParser Zapier app is currently invite-only while we finish testing. Contact support for an invite link if you don't see it in the Zapier app directory yet.
Setup (5 steps)
- Create a parser — in PerfectParser, go to Parsers → New Parser and upload a sample document so the schema is ready to use.
- Copy your API key — go to Developer → API Keys → Generate Key, then copy it immediately (it's shown only once).
- Create your Zaps — in Zapier, search for "PerfectParser" as your trigger or action app, and connect using the API key from step 2.
- Map your fields — pick your parser from the dropdown, map the document file from a previous step, and map extracted fields into your destination app.
- Test and turn on — run a test with a real document, confirm the mapped fields look right, then publish your Zaps.
Recommended pattern: two Zaps
Document extraction is asynchronous. Use two Zaps — one to submit the file, one to receive the results when processing finishes:
Available triggers and actions
| Zapier step | Type | What it does |
|---|---|---|
| Document Processed | Trigger | Fires once when PerfectParser finishes extracting a document. Optionally scope it to a single parser. |
| Import Document | Action | Sends a document to PerfectParser for extraction. Returns immediately — pair with the Document Processed trigger. |
Field mapping
Extracted data uses the same dot-notation field names as CSV/Excel export and your parser schema (e.g. buyer.name, invoiceDetails.invoiceNumber, taxSummary.totalInvoiceAmount).
Line items (e.g. line_items) appear as Zapier line items — an array you map in the Line Items section of actions like Google Sheets Create Multiple Spreadsheet Rows.
Need the full nested JSON? Use extraction_id and document_id from the trigger with the Public API document endpoint.
Google Sheets example
- Map scalar fields (
buyer.name,invoiceDetails.invoiceNumber, etc.) to your header columns. - In the Line Items subsection, map
line_itemsfields (description,quantity,amount, etc.) to line-item columns. - Use Create Multiple Spreadsheet Rows (not the single-row action) when your parser has line items.
Related
- Automation Integrations — the underlying webhook and polling patterns Zapier uses
- Webhooks — build a custom integration instead of using Zapier
- API Reference — full endpoint documentation