Make (Integromat) Integration
Convert PDFs to structured data inside Make scenarios using the built-in HTTP module. No custom app or OAuth setup required.
Create a new scenario
Open Make and create a new scenario. Add a trigger module that provides a PDF URL:
- Google Drive - "Watch Files" (share the file as "anyone with the link" and use its direct download link)
- Dropbox - "Watch Files" (use a public shared link)
- Email (IMAP) - "Watch Emails" where the email body contains a public PDF link
- Webhooks - "Custom Webhook" to receive URLs from external systems
URL_UNAUTHORIZED, URL_FORBIDDEN, or REDIRECT_TO_LOGIN. Public links, links with an access token in the URL, and links that redirect before serving the file all work. Email attachments themselves are not URLs and cannot be sent to PDFPipe directly.Add an HTTP module
Click the + after your trigger and add HTTP → Make a request. Configure the module:
- URL:
https://api.pdfpipe.dev/v1/convert - Method: POST
- Headers:
Authorization:Bearer pk_your_key_hereContent-Type:application/json - Body type: Raw
- Content type: JSON (application/json)
Set the request body
In the Request content field, enter:
{
"url": "{{1.fileUrl}}",
"format": "json",
"returnMethod": "inline"
}Replace {{1.fileUrl}} with the mapped value from your trigger module. Adjust the format to text, markdown, csv, or any other supported format.
Parse the response
Check Parse response in the HTTP module settings. Make will automatically parse the JSON response, giving you access to individual fields:
{
"requestId": "req_a1b2c3...",
"status": "complete",
"format": "json",
"pagesProcessed": 4,
"creditsUsed": 1,
"contentType": "application/json",
"content": "{\"pages\":[{\"pageNumber\":1,\"text\":\"...\"}],\"metadata\":{...},\"totalPages\":4,\"extractedAt\":\"...\"}"
}With returnMethod: "inline", content is a string. For format: "text" or "markdown" use it directly. For format: "json" add a JSON → Parse JSON module on content to get pages[].text, metadata, and totalPages. For returnMethod: "file" (default), the presigned resultUrl is the download link.
Download and use the result
If you used the default file delivery, add another HTTP → Get a file module pointed at resultUrl to download the converted data. Then route it to your destination:
- Google Sheets - add rows from extracted data
- Airtable - create records
- Slack / Email - send a notification with extracted text
- Data Store - save for later processing
Handle async responses (large files)
For PDFs over 10 MB, the API returns 202 with a pollUrl. Use a Repeater module combined with a Sleep module and a Router with a filter:
- Set the Repeater to run up to 30 iterations
- Add a Sleep module with a 5-second delay
- Add an HTTP GET module to poll
https://api.pdfpipe.dev/v1/status/:requestId - Add a Router - one path continues when
status = complete, the other loops
See the Async Polling guide for the full pattern.
Tips
- Store your API key in a Make Connection or use the Keys vault for security.
- Use the JSON → Parse JSON module if you need to process nested JSON output from PDFPipe.
- Enable Error Handler on the HTTP module to gracefully handle failures.