Development Choices

Round-Tripping Assets Between Creative Tools and a Library

Author
Joseph TrasattiMember of technical staff
Published
Section
No-Code
Length
8 min read3 sources cited

Round-tripping means a designer places assets from the media library directly inside Figma or Adobe tools and publishes finished exports back, so the library stays the source of record. The integration removes file transfer, not judgement: which system holds the latest version, and which export is approved, still has to be decided and written down.

What round-tripping is

Round-tripping is the loop in which a designer pulls an asset out of a media library into a creative tool, works on it there, and pushes the result back into the same library — so the library, rather than a laptop, a shared drive or a chat thread, is where the current version of every image lives. Cloudinary supports the pattern through a Figma plugin and an Adobe Creative Cloud integration; the mechanics differ by tool, but the shape of the loop, and the decisions it forces, are the same.

The value is not that a designer saves a download. It is that every image that later reaches a website, a CMS or a product feed came from one place that can be searched, versioned and audited. The sections below cover what the integration does for you and, more usefully, what it does not.

Placing a live asset, not a local copy

Without a plugin, the way an asset gets into a mockup is a download: the designer fetches the file, drops it into the design, and from that moment the design holds a private copy. If the library asset is later replaced — a corrected product shot, a re-cropped hero, a logo with the new mark — nothing tells the mockup. The design keeps showing the old file, someone signs it off, and the discrepancy is found in review or, worse, after the export has shipped.

A design-tool plugin removes that failure by letting the designer place a live asset: a reference to the library object rather than a detached copy. The image in the design is the image in the library, and a replacement in the library is what the design shows the next time it is opened or refreshed. That single change eliminates the most common source of an outdated image in a mockup, because the mockup no longer has its own idea of what the asset looks like. Cloudinary’s Figma integration documentation covers the plugin side of this for Figma, including how assets in a product environment are browsed and placed from inside the design file; check it for what the current plugin does and does not support rather than relying on a description here.

The cost is that a design now depends on the library being reachable, and on the asset not being deleted or renamed underneath it. A team that routinely archives or restructures the library needs to know that mockups will follow those changes — which is the point, but it is also a surprise the first time a placeholder appears where a hero used to be.

Publishing back is the half that matters

A one-way integration — library into design tool — is easy to build and easy to demo, and it solves only the smaller problem. The final export still has to get from the designer’s machine into the library, and if the plugin does not carry it, that leg travels by file transfer: a download to disk, an upload through the console, or a file attached to a message for someone else to upload. That leg is where filenames drift, where the wrong export goes up, and where the library ends up with an approved asset that nobody can trace back to a source.

Publishing back from the creative tool closes the loop from the same surface where the work was done. The export lands in the library as a library asset — with whatever folder, tags or metadata the integration lets the designer set at publish time — rather than as an anonymous file that someone later has to place. When you evaluate any creative-tool integration, publish-back is the half to test first; placement alone leaves the manual step exactly where it was. Cloudinary’s Adobe Creative Cloud integration documentation is the place to check the publish-back behaviour for the Adobe applications, and its wording on what is and is not supported per application should be preferred over any summary.

Source files and delivered renditions are different things

A layered Photoshop or Figma source and the flattened PNG or WebP that a website serves are different objects with different audiences. The source is a working file: large, editable, meaningful to the person who will change it next. The rendition is a delivery artefact: fixed, optimised, meaningful to a CMS or a CDN. Once publishing back is easy, both start arriving in the same library, and unless there is a convention for telling them apart the library fills with working files that look, in a search result, exactly like deliverables.

The convention has to be decided before the loop is switched on, not after. It can be a folder split (a source/ tree and a delivery/ tree), a tag or a structured-metadata field that marks an asset as source or rendition, or a naming rule — the mechanism matters less than that it exists and that the publish step applies it every time. Two consequences follow. First, anything downstream that pulls from the library — a CMS plugin, a PIM sync, a feed — must filter on the convention, or it will happily surface a 300 MB layered file as a product image; the same discipline described for keeping product media in step with a PIM applies here. Second, storage is billed as a current total, so working files that were never meant to be delivered are a cost that grows silently until someone runs an export of the asset metadata and sees how much of the library is source material.

Cloudinary’s overview of its creative-tool integrations lists what is available across design and creative applications; the split between source and rendition is a team convention that sits on top of whichever of those you use, not something any of them decides for you.

Which system owns ‘latest’

Design tools and media libraries both keep versions, and they do not mean the same thing by it. A design tool versions the file: the history of the whole document, with an asset’s changes recorded as part of that. A media library versions the asset: each publish is a new version of one object, independent of the document it came from. When the same image has been edited in a Figma file, published once, edited again in the file and not yet republished, there are two candidates for latest, and each system will report its own.

The question of which system owns latest has to be answered explicitly, per asset type if necessary, and written where the team will see it. There are two defensible answers, and the condition decides:

What does not work is leaving it implicit. Two people asked which is current will look in different systems and both be right by their own definition.

The integration removes a step, not a decision

A plugin that places and publishes removes the transfer step from the loop. It does not remove the decision that step used to hide: someone still has to say which export is the approved one. A design tool holds several candidates — variants, artboards, work in progress — and publishing back is a mechanical act that any of them can go through. Nothing in the integration knows which one the reviewer signed off, and if the answer is ‘whichever was published last’ then approval has been delegated to whoever happened to press the button.

So the loop needs an approval point, and it needs to be somewhere the library can see it: a status field the designer sets on publish, an approval workflow that gates delivery on a metadata value, or a review step run inside a media automation — the pattern covered in routing assets through approval inside a media automation flow. Where the approval point lives is a team choice; that it exists somewhere other than in a person’s memory is not optional once assets flow into the library without a human upload in between.

What to check next

A reader setting this up will usually need three further things: how the library’s contents reach the site or app that displays them, which is covered under media handling inside a headless CMS; the current, per-application detail of what each Cloudinary integration supports, which lives in the documentation linked above and changes more often than this page; and the source-versus-rendition convention and the owner-of-latest rule, both of which are decisions to be recorded before the first designer installs the plugin rather than reconstructed afterwards from what ended up in the library.

Sources

  1. Cloudinary's Figma integration documentationcloudinary.com
  2. Cloudinary's Adobe Creative Cloud integration documentationcloudinary.com
  3. creative-tool integrationscloudinary.com

See also