n8n Integration
n8n has no dedicated DeckExtract node — and it doesn’t need one. Its built-in HTTP Request node calls the DeckExtract API directly, so any workflow can turn a DocSend or Papermark link into a PDF and a structured deck analysis, then route it wherever you like.
Workflow shape: Trigger (new email, form, or CRM record) → HTTP Request (DeckExtract) → use download.url + analysis in the next node.
1. Add an HTTP Request node
Add an HTTP Request node and set the method to POST with this URL:
POST https://deckextract.com/api/v2/extract Under Body, choose JSON and send the deck link. format is "pdf" (default) or "pptx":
{
"url": "https://docsend.com/view/abc123",
"format": "pdf"
} For gated decks, add an email and/or password field to the same body — DeckExtract completes the access steps for you.
2. Add your Pro key (for analysis)
Plain extraction is free and needs no key. To also get the structured analysis, set "analyze": true and add an authentication header. In the HTTP Request node, add a header:
- Name:
Authorization - Value:
Bearer dk_your_api_key— your Pro key
Then the body becomes:
{
"url": "https://docsend.com/view/abc123",
"format": "pdf",
"analyze": true
} Keep the key in an n8n credential (Header Auth) or an environment variable rather than pasting it inline, so it isn’t stored in the workflow JSON. analyze requires Pro; without a valid key the API returns 402.
3. Use the response
The node returns JSON. The extracted file lives at download.url (a short-lived link, valid about an hour), and the structured fields are under analysis:
{
"success": true,
"download": {
"url": "https://deckextract.com/dl/ab12cd….pdf",
"filename": "ab12cd….pdf",
"contentType": "application/pdf",
"bytes": 554790,
"expiresAt": "2026-06-14T17:24:33Z"
},
"analysis": {
"company": { "name": "Acme", "description": "…" },
"round": { "stage": "seed", "amount": { "value": 5000000, "currency": "USD" } },
"metrics": { "arr": { "value": 1200000, "currency": "USD" } }
},
"meta": { "platform": "docsend.com", "format": "pdf", "analyzed": true, "pages": 12 }
}To attach the actual PDF to a downstream record, add a second HTTP Request node that downloads the file as binary:
# Second HTTP Request node — fetch the file bytes
Method: GET
URL: {{ $json.download.url }}
Response: set "Response Format" to "File" (binary) so the PDF
is available as binary data for the next node From there, map the binary file and any analysis fields into your destination — see the Attio, Affinity, HubSpot, Salesforce, and Notion guides for the destination-side mapping.
Good to know
- Status codes: v2 uses real HTTP codes —
200success,422when a password/email step is needed (retry with the returnedsessionId),429rate limited. Use n8n’s “Continue On Fail” or an IF node to branch on these. - Timeout: extractions take 15–90 seconds. Raise the node’s timeout to at least 120 s so it doesn’t abort mid-extraction.
- Rate limits: the free tier allows 5 extractions per IP per 30 minutes; a Pro key lifts the cap to 30/hour. Add a small delay between items when looping over many links.
Related
Prefer a different tool? The same request works in Zapier and Make. Full reference lives in the API docs, and all integrations are listed on the Integrations page.