Key takeaways
- Treat the uploaded file as a review candidate, not automatically as approved campaign artwork.
- Create one predictable JPEG rendition for review while retaining the editable or high-fidelity master separately when required.
- Have a trusted server authorize the campaign identifier used in the Box path; do not expose arbitrary folder choice to the browser.
Creative teams often receive PNG, TIFF, or oversized JPEG artwork that is awkward to preview consistently during review. A processing workflow can create a bounded JPEG rendition and place it in an Assembly-specific review subfolder under a controlled campaign path in Box, while the editable master remains under its own source and retention policy.
What matters most
- Keep Box JWT configuration in Template Credentials and ensure the Platform App remains authorized by the Box administrator.
- Leave create_sharing_link false so export does not turn collaboration access into possession of a link.
- Store the Assembly ID and expected destination path, then resolve the Box file ID through the Box API before notifying collaborators.
Define the review rendition and source of truth
Decide whether the upload is an editable master, a flattened export, or only a review candidate. This workflow creates a bounded JPEG for consistent preview and discussion; it does not preserve layers, transparency, every color characteristic, or the editability of the source. Keep the master in the system chosen by the creative team when those properties matter.
Create a campaign review record before processing. It should identify the campaign, source version, uploader, intended rendition policy, workflow version, and current approval state. A file appearing in Box is not by itself evidence that the correct campaign received it or that a reviewer approved it.
Build the JPEG-to-Box review Template
The Template receives one artwork upload, creates a JPEG derivative that fits within the chosen review dimensions, and stores only that derivative in Box. zoom is false so a small source is not enlarged, and strip removes embedded metadata from the review copy. The campaign-specific path also includes Assembly uniqueness to avoid collisions between repeated filenames.
Keep allow_steps_override false. Let the browser send only the file and a bounded campaign_id that the server has already authorized. The client must not choose the Box credential, folder root, sharing behavior, dimensions, or format. Template upload limits complement the application’s own type, tenant, quota, and campaign-state checks.
{
"allow_steps_override": false,
"auth": {
"max_number_of_files": 1,
"max_size": 104857600
},
"steps": {
":original": {
"robot": "/upload/handle"
},
"review_jpeg": {
"use": ":original",
"robot": "/image/resize",
"width": 2000,
"height": 2000,
"resize_strategy": "fit",
"zoom": false,
"format": "jpg",
"quality": 88,
"strip": true
},
"box_review": {
"use": "review_jpeg",
"robot": "/box/store",
"credentials": "box-campaign-review",
"path": "campaigns/${fields.campaign_id}/review/${assembly.id}/${file.url_name}",
"create_sharing_link": false,
"result": true
}
}
}Prepare Box access before running production work
Box Template Credentials use a Platform App configured for Server Authentication with JWT. Store the downloaded JSON key configuration in the credential rather than source control, browser code, or Assembly Instructions. A Box administrator or co-administrator must authorize the app before it can operate.
The JWT identity is the app’s Service Account. /box/store walks the configured path from that account’s root and creates missing folder segments. For the sample, make the intended campaigns root available to the Service Account through Box collaboration, verify its folder ID and the campaign child’s identity, and grant the permissions needed to create the review subfolders and upload files. Sharing only a nested campaign folder does not make the sample’s full campaigns path resolve from the Service Account’s root. A missing path can create a separate private folder tree instead of failing, so verify the destination and collaborator access before notifying reviewers.
If the app configuration or scopes change, coordinate reauthorization and test a known folder before resuming unattended work. A valid JWT does not guarantee access to every enterprise folder.
Keep export, collaboration, and publication separate
Set create_sharing_link to false. Box collaboration membership, enterprise policy, and application authorization should determine who reviews the file. Enabling the flag makes /box/store explicitly request an open shared link, intended for anyone holding the URL, subject to Box policy. The Robot replaces the result URL with that link; it does not request a collaborators-only link.
If a campaign later needs a shared link, create it as a separate authorized action with an explicit access level, audience, expiry, and revocation owner. Verify the effective access under the enterprise’s Box policy before distributing the link.
Export
The normalized JPEG reaches the authorized Box destination.
Collaboration
Known Box users or groups receive folder access under enterprise policy.
Publication
The application advances approved artwork to its delivery destination.
Review fidelity and identity before approval
Test transparent PNGs, CMYK or profile-bearing images, text-heavy artwork, gradients, fine lines, orientation metadata, very large dimensions, and unusually small sources. Compare the JPEG against the source at realistic review sizes. A technically valid conversion may still introduce unacceptable color, transparency, or compression changes.
After export, persist the Assembly ID and expected destination path with the campaign review record. /box/store does not return the uploaded Box file ID; with create_sharing_link false, the result keeps the input file’s Transloadit identity and URL. Resolve the destination folders and exact filename through the Box API’s folder-items endpoint, following pagination, then save the matching Box file ID separately. Do not treat the Transloadit result ID or URL as a Box identity or review link. Folder names and filenames can change, so reconcile before moves or renames and use the resolved Box ID for later operations. Notify collaborators only after confirming the intended campaign and source version.
Recover from collisions and partial failure
Test an unauthorized app, missing-folder creation, a destination where the Service Account lacks create permission, duplicate uploaded names, processing failure, and a successful resize followed by Box failure. A missing folder is normally created, not reported as a clean failure; check for an unintended private folder tree as well as explicit export errors. Box requires names to be unique within a parent folder; Assembly uniqueness in the sample path prevents an unrelated existing file from becoming an accidental overwrite target.
A missed webhook or client timeout does not prove export failure. Reconcile the existing Assembly before retrying. If a new rendition is required, record it as a new campaign source or workflow version rather than silently replacing the file reviewers already discussed. Remove rejected and superseded review copies through a deliberate retention process.
Technical details worth knowing
- /image/resize can convert accepted image inputs to JPEG, apply fit resizing, prevent enlargement with zoom set to false, and strip embedded metadata from the derivative.
- /box/store accepts an Assembly-variable path and defaults to a unique-prefix path when none is supplied.
- /box/store resolves paths from the authenticated account’s root and creates missing folder segments. With JWT credentials, that is the Service Account’s root.
- Box Template Credentials use a Platform App configured for Server Authentication with JWT and contain its JSON key configuration.
- A Box JWT Platform App requires explicit administrator authorization. Its Service Account can access only content available to that account unless broader enterprise access is configured.
- /box/store create_sharing_link defaults to false. When enabled, the Robot requests an open shared link for anyone with the URL, subject to Box policy, and replaces the result file’s url property with that link.
- /box/store does not return the uploaded Box file ID. With create_sharing_link false, its result retains the input file’s Transloadit identity and URL, not a Box review URL.
- Box file names must be unique within a parent folder, so this workflow includes Assembly uniqueness in the destination path rather than relying on the uploaded name alone.
A practical approach
- 1
Define the accepted artwork formats, review dimensions, JPEG quality, source role, and campaign-folder policy.
- 2
Authorize a Box Platform App, save its JWT configuration as Template Credentials, and lock the Template.
- 3
Test image fidelity, duplicate names, missing-folder creation, and a destination where the Service Account lacks create permission.
- 4
Reconcile the Box result with the campaign review record before inviting review or advancing approval state.
When Transloadit is useful
Use /upload/handle for designer intake, /image/resize for a bounded JPEG review rendition, and /box/store for a campaign-specific review subfolder. Keep create_sharing_link false, authorize the destination through the application, and let Box collaboration—not an automatically created URL—control review access.
Architecture boundary
Transloadit turns one campaign artwork upload into a normalized JPEG and places it in Box. The application and Box administrators still control campaign identity, collaboration membership, review status, source ownership, sharing, and the decision to publish the artwork.
Frequently asked questions
Is the JPEG review rendition the editable master?
Usually not. It is a normalized review copy. Keep the layered, transparent, or high-fidelity source separately when the creative workflow requires it.
Should /box/store create a sharing link?
No for this workflow. Keep create_sharing_link false and manage reviewer access through the authorized Box collaboration folder.
Why can a valid Box app still fail to reach a folder?
JWT normally authenticates the app’s Service Account. That account needs access to the destination content, and the Platform App must have suitable scopes and administrator authorization.
Can the browser submit any campaign folder?
No. A trusted application should authorize a bounded campaign identifier, while the locked Template controls the actual Box path.
Does export mean the campaign image is approved?
No. Export means the review rendition reached Box. Approval and publication remain separate application transitions.