Load Paige documents into Salesforce with Data Loader
Two Data Loader runs per batch: insert or upsert the records from Paige's one-row-per-document CSV, then insert the PDFs as ContentVersion files linked to those records — no subscription, no automation platform.
Before you begin
- Salesforce Data Loader installed and a user with API access, create rights on the object, and rights to upload Files
- A Paige scan job whose document type's fields match the Salesforce fields you want filled
At the end of this guide, a batch of documents that Paige read becomes a batch of Salesforce records with their fields filled, each with its PDF attached as a File — two Data Loader runs, nothing to subscribe to.
The two runs exist because Salesforce stores files as their own object (ContentVersion) that links to a record. Run one loads the records and returns their IDs; run two loads the files with those IDs.
Step 1 — Get the batch out of Paige
In Paige, open Documents, click Export, and in the Export Documents dialog choose the Scope, the Filters (Reviewed only, Field Data with fields, Status not yet exported), tick Download under Destinations, and confirm. Paige emails a link; the zip contains the PDFs and the data files, including the one-row-per-document CSV. Extract it to a folder, say C:\PaigeBatch\.
What you should see in the CSV: a header row with the PDF file name, the document type, and one column per Paige field, then one row per document.
Step 2 — Load the records
Add an external ID column if you'll upsert (the Paige file-name column's unique part, or a document number Paige extracted), and make sure the Salesforce object has a matching External ID field.
Open Data Loader, click Insert (or Upsert), log in, choose the object, and select the CSV.
On the mapping step, map each Paige column to its Salesforce field (save the mapping as an
.sdlfile for next time). Match types: text to text, and format dates asYYYY-MM-DDbefore loading.Finish. Data Loader writes a success CSV containing the new records'
IDcolumn — keep it.
Step 3 — Load the PDFs as Files
Build a second CSV, one row per document, from the success file and Paige's CSV:
Column Value TitleA name built from Paige fields, for example the document number and customer name PathOnClientThe PDF's file name, for example INV-20441.pdfVersionDataThe full local path to the PDF, for example C:\PaigeBatch\scan_job_…_page_….pdfFirstPublishLocationIdThe record's IDfrom the success file — this links the File to the record
In Data Loader, open Settings, set Batch Size to
1, and tick Show all Salesforce objects. If you'll use the Bulk API, also tick Upload Bulk API Batch as Zip File.Click Insert, choose the ContentVersion object, and select the CSV. Map
Title,PathOnClient,VersionData, andFirstPublishLocationId.Finish. What you should see: the success file lists one ContentVersion per PDF, and each record in Salesforce shows its PDF under Files.
When it doesn't work
| Symptom | Where to look |
|---|---|
| Record load rejects a row | Type or picklist mismatch on a field; the error file names it. |
| ContentVersion rows fail with a file error | VersionData isn't a full local path the machine running Data Loader can read. |
| Files load but aren't on the records | FirstPublishLocationId was blank or wrong; it must be the 18-character record ID. |
| Records doubled | Use upsert with an external ID, and export each batch once from Paige with the Status: Not Exported filter. |
