We are excited to announce the general availability of request template file uploads, a major feature supported by Freshworks Developer Kit (FDK) version 10.0.1 (ensure engines.fdk is updated in your app manifest).
Why This is Important
This feature simplifies integrations that need to send attachments or generated files to external APIs. Instead of building complex multipart or streaming logic, you can now use declarative request templates that reference files already stored in the Object Store.
Key Capabilities
You can now:
-
Upload files to the Object Store and obtain a unique reference ID.
-
Pass this reference ID into invokeTemplate() from either the front-end or serverless code (client.request.invokeTemplate / $request.invokeTemplate).
-
Support two outbound HTTP request shapes:
-
multipart/form-data: Supports up to 5 files per template invocation, along with optional form fields.
-
application/octet-stream: Supports a single file per request for raw uploads.
-
Detailed documentation, schema examples, and constraints are available here: File upload using request template.
Critical Limitations
Please review these points before development:
-
Files Must Be in Object Store: The platform streams the file directly from storage into the outbound HTTP call, so files must be uploaded to the Object Store before the template runs.
-
Multipart Limit: A maximum of 5 files per template is allowed when using multipart mode.
-
Freshdesk Exception: File upload via request templates using Object Store reference IDs is not supported for Freshdesk. This is because Object Storage is not available for this specific path in Freshdesk. This design applies to Freshservice and other supported products that support Object Store integration.
How to Get Started
-
Upgrade FDK: Update your FDK and set engines.fdk to 10.0.1 in your app manifest.
-
Configure Templates: Add or extend templates in config/requests.json, declare them under modules.common.requests in manifest.json.
-
Invoke: Call invokeTemplate() with the appropriate context (e.g., ref / file_ref placeholders matching your template).
Try It Out with Sample Apps
To see this feature in action end-to-end, explore our sample application (available on https://github.com/freshworks-developers):
- fw-attach: fw-attach is a Platform 3.0 sample for a serverless pipeline: ticket attachment → Object Store → Google Drive using a request template
(application/octet-stream with "file": { "ref": ... }). It also uploads to Box withmultipart/form-dataand platform OAuth, includes optional mock templates for octet-stream and multipart, and completes a Slack external file upload using request templates for the Web API steps.
This sample covers both octet-stream and multipart templates, and how to integrate templates with APIs that still require custom fetch flows.
We encourage you to try this on a supported product and share how it simplifies your integration workflows, especially when compared to previous manual workarounds.