Is it possible to export documents

I want to export unstructured data (mostly pdfs) intoi snowflake. I'm able to run the GET in Postman but running into errors in Celigo. Before I proceed further, I want to make sure that this is something Celigo can handle.

Exporting PDF to Snowflake is possible. You would create a flow that would export the PDF data from source system and import it into Snowflake.

Could you elaborate further on the issue you're facing with some screenshots ? It seems PDF export is an issue ?

Adding some nuance here — the answer splits cleanly by direction.

Uploading PDFs into Snowflake

This isn't supported through our Snowflake connector today, but I want to be straight about where the gap is. Snowflake's SQL PUT command is driver-only (no public REST endpoint exists for file upload), so any third party that wants to do it has to go through one of the official drivers. Our connector uses the Snowflake Node driver under the hood, which means PUT is technically reachable — we just haven't exposed it as a file operation in the connector yet. So this is a gap on our side, not a Snowflake limitation.

Until that lands, the workaround is to land the PDFs in S3 / Azure Blob / GCS using our connector for that storage provider, and configure an external stage in Snowflake pointed at that location. Snowflake then sees the files via the stage without any upload going through the Celigo Snowflake connector itself. I'll get a product enhancement filed for native PUT support in the connector.

Downloading PDFs from a Snowflake stage

Confirmed working today — we just built and ran this against a demo Snowflake account. Three steps:

1. Snowflake (RDBMS) export — page generator. Lists files and fetches a presigned URL for each:

SELECT RELATIVE_PATH AS "relative_path",
       SIZE AS "size",
       LAST_MODIFIED AS "last_modified",
       GET_PRESIGNED_URL(@DB.SCHEMA.STAGE, RELATIVE_PATH, 3600) AS "presigned_url"
FROM DIRECTORY(@DB.SCHEMA.STAGE)

The stage must be created with ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE') and DIRECTORY = (ENABLE = TRUE). Internal stages with default client-side encryption will return scrambled bytes — the URL works but the file is unreadable. You can't retroactively change encryption; recreate the stage and re-upload. (External stages don't have this problem — they inherit the cloud provider's server-side encryption.)

2. HTTP export (lookup) — pulls the bytes through Celigo. Uses the Integrator IO connection (/v1/mirror is a no-op echo endpoint) with two key fields:

{
  "http": {
    "relativeURI": "/v1/mirror",
    "method": "POST",
    "body": "{{{jsonSerialize record}}}",
    "sendAuthForFileDownloads": false,
    "response": {
      "fileURLPaths": ["presigned_url"]
    }
  }
}

fileURLPaths is the magic: mirror echoes the record back, Celigo sees a URL at that path in the response, follows it, downloads the file, and attaches a blobKey to the record. sendAuthForFileDownloads: false strips the auth header before hitting the cloud-storage URL — required, because S3 will return 400 InvalidArgument — Only one auth mechanism allowed if you send both a V4 query signature and an Authorization header.

3. Destination import (S3 / FTP / NetSuite file cabinet / wherever). Set blob: true and blobKeyPath: "blobKey" (or wherever the response mapping put the blobKey) and the import writes the binary content as-is.

Attached flow zip

6a0fcaff7202049b32ecc6ca.zip (6.0 KB)