Stacksync File System
Stacksync File System provides standard way to receive, securely store, and reuse files across workflow modules.
Stacksync File System is the platform capability for file ingestion in workflows. Files sent to workflow triggers are stored by Stacksync and represented as reusable file_id references. This removes raw file payload handling from downstream execution and provides a consistent integration model across workflow modules.
Files are workspace scoped and can be reused across workflows in the same workspace.
1. Processing Flow
When a POST Trigger webhook request includes file input, Stacksync automatically:
- Ingests the incoming file payload.
- Stores the file in Stacksync-managed storage.
- Replaces file content with a Stacksync-managed file object containing the
file_idreference. - Passes the updated payload to downstream workflow steps.
Supports both multipart file uploads and JSON payloads with embedded base64 file content.
2. Usage
Get the POST Trigger URL from your workflow trigger configuration:
https://.api.workflows.stacksync.com/workspaces/<workspace_id>/workflows/<workflow_id>:latest_draft/triggers/post_trigger/run 
Format 1: Multipart Upload
HTTPS Request:
curl --request 'POST' \
--url 'https://<region>.api.workflows.stacksync.com/workspaces/<workspace_ID>/workflows/<workflow_ID>:latest_draft/triggers/post_trigger/run' \
--form 'file=@/absolute/path/to/invoice.pdf;type=application/pdf'
Transformed payload in workflow execution Trigger Output:
{
"body": {
"files": [
{
"file_id": "72ef30a9-ea74-41b2-96da-a0643c6d5d4c",
"name": "invoice.pdf",
"mime_type": "application/pdf",
"pointer": "file"
}
]
}
}
Format 2: JSON with base64 file
HTTPS Request:
curl --request 'POST' \
--url 'https://<region>.api.workflows.stacksync.com/workspaces/<workspace_ID>/workflows/<Workflow>:latest_draft/triggers/post_trigger/run' \
--header 'Content-Type: application/json' \
--data '{
"attachments": [
{
"file": {
"name": "invoice.pdf",
"contentType": "application/pdf",
"contentBytes": "JVBERi0xLjQKJc..."
}
}
]
}'Transformed payload in workflow execution Trigger Output:
{
"body": {
"attachments": [
{
"file": {
"name": "invoice.pdf",
"contentType": "application/pdf",
"file_id": "72ef30a9-ea74-41b2-96da-a0643c6d5d4c",
"pointer": "attachments[0].file"
}
}
]
}
}Supported Usage Pattern
- Send files once through trigger ingestion
- Use file_id in downstream workflow modules
- Reuse the same file across multiple workflow steps without re-uploading
If you have any questions or run into any blockers, reach out anytime at hello@stacksync.com and the Stacksync team will be happy to help.
Note: The maximum supported file size is 20MB.