Skip to content

Updating visuals

If you see any images containing outdated UI, please bear with us.

We are updating all content as quickly as possible to mirror our new UI.

Cloudinary integration

Cloudinary is a media management platform for images, videos, and other files. This integration lets you manage Cloudinary assets from WeWeb workflows and generate delivery URLs for media stored in your Cloudinary account.

What this integration supports

  • Upload media from backend workflows with Upload Resource
  • Generate delivery URLs with Get URL
  • List and retrieve assets with Get All Resources and Get Resource by ID
  • Update tags, context, and moderation status with Update Resource
  • Delete assets with Delete Resource
  • Generate temporary private download links with Get Signed URL
  • Support signed direct uploads from the interface with:
    • Generate signature for upload
    • Direct Upload file using signature

Setup

  1. In the Cloudinary Console, copy your:
    • Cloud Name
    • API Key
    • API Secret
  2. In WeWeb, go to Integrations and add Cloudinary.
  3. Create a connection and fill in the credentials for each environment you use:
    • Editor
    • Staging
    • Production

How to use Cloudinary in WeWeb

Backend actions

Most Cloudinary actions are used in backend workflows. These are the main ones:

  • Upload Resource To send a file to Cloudinary from a URL, base64 data URI, or file path
  • Get URL To build a delivery URL for an existing asset
  • Get All Resources To list assets
  • Get Resource by ID To retrieve one asset
  • Update Resource To update tags, context, or moderation status
  • Delete Resource To remove an asset
  • Get Signed URL To create a temporary private download link
  • Generate signature for upload To prepare a signed browser upload

Direct uploads from the interface

This is a two-step flow:

  1. Your backend generates the upload signature.
  2. Your interface uses that signature to upload the file directly to Cloudinary.

1. Create an API Endpoint

Create an API Endpoint whose job is to run Generate signature for upload.

And define the upload settings you want to allow, for example:

  • Timestamp
  • Folder
  • Upload Preset
  • Public ID
  • Tags
  • Context
  • Moderation
  • Notification URL
  • Transformation

Then return the values your interface needs, usually:

  • The generated signature
  • The timestamp
  • Any upload parameters you want the interface upload step to reuse

2. Call that API from the interface

In your Interface:

  1. Use an Advanced file upload element.
  2. Create a workflow on the element using the On change trigger and call the API Endpoint you created in step 1.

3. Upload the file from the interface

In the same Interface workflow, after the API call, run Direct Upload file using signature.

In that action:

  • Set File to the file variable from the Advanced file upload component
  • Set Signature to the value returned by your API
  • Set Timestamp to the value returned by your API
  • Pass the same upload settings that were used when generating the signature

That means the values in the interface upload step must match the values used in the backend signature step.

If those values do not match, Cloudinary can reject the upload because the signature no longer matches the upload request.

In plain English

The backend does not upload the file for the user in this flow.

Instead:

  1. The backend gives the interface permission to upload by generating a signature.
  2. The interface receives that signature from your API.
  3. The interface then performs the actual upload with Direct Upload file using signature.

Transformations supported in WeWeb

WeWeb does not expose every Cloudinary transformation option as separate fields. In the Cloudinary actions, the built-in transformation object supports:

  • width
  • height
  • crop
  • aspect_ratio
  • quality
  • raw_transformation

Get URL also supports a separate Format field.

Crop modes available in the action UI

The Cloudinary transformation fields in WeWeb support these crop values:

  • scale
  • fit
  • limit
  • mfit
  • fill
  • lfill
  • fill_pad
  • pad
  • lpad
  • mpad
  • crop
  • thumb
  • auto

Use raw transformation for advanced options

If you need a Cloudinary transformation that is not exposed as a dedicated field in WeWeb, use Raw Transformation.

Example:

text
e_brightness:50/r_max

For the full Cloudinary transformation syntax, see the Cloudinary image transformations docs.

Common pitfalls

Wrong credentials

If Cloud Name, API Key, or API Secret is incorrect, Cloudinary requests will fail. Double-check that each environment is using the correct credentials.

Signed direct upload values do not match

For Direct Upload file using signature, the upload parameters must match the values used in Generate signature for upload. This includes fields like Timestamp, Folder, Upload Preset, Public ID, and transformation settings.

Using the wrong resource type

Several actions ask for Resource Type. Make sure it matches the asset you are working with:

  • image
  • video
  • raw

If you use the wrong type, Cloudinary may not find the asset or may return the wrong URL pattern.

Using the wrong storage type

Some actions also use Storage Type. The supported values are:

  • upload
  • private
  • authenticated

If the stored asset type and the action’s Storage Type do not match, retrieval or deletion can fail.

Direct upload requires an Advanced file upload component

The Direct Upload file using signature action expects a file from an Advanced file upload component. It is not meant for plain text URLs or manual strings.

All actions

This integration provides nine actions.

ActionDescription
Upload ResourceUpload a resource to Cloudinary
Get URLGenerate a delivery URL for an asset
Get All ResourcesList Cloudinary assets
Get Resource by IDRetrieve one asset by Public ID
Update ResourceUpdate tags, context, or moderation status
Delete ResourceDelete an asset
Get Signed URLGenerate a temporary private download URL
Generate signature for uploadGenerate a signature for signed browser uploads
Direct Upload file using signatureUpload from the interface with a signed request

Action details

Upload Resource

Use this action to upload a file from a backend workflow.

Main fields:

FieldDescription
FileRequired. Can be a URL, base64 data URI, or file path
Public IDOptional custom identifier
FolderOptional folder path
TagsOptional list of tags
Resource Typeauto, image, video, or raw
Storage Typeupload, private, or authenticated
ContextOptional key-value metadata
ModerationOptional moderation setting
OverwriteWhether to overwrite an existing resource

Get URL

Use this action to build a delivery URL for an existing Cloudinary asset.

Main fields:

FieldDescription
Public IDRequired asset identifier
TransformationOptional transformation object
SecureWhether to use HTTPS
Resource Typeimage, video, or raw
FormatOptional output format

Get All Resources

Use this action to list assets in your Cloudinary account.

Main fields:

FieldDescription
Resource Typeimage, video, or raw
Max ResultsMaximum number of results to return
Next CursorPagination cursor from a previous response
PrefixFilter by folder path or public_id prefix
Storage Typeupload, private, or authenticated
Include TagsInclude tags in the response
Include ContextInclude context metadata in the response
Include ModerationsInclude moderation data in the response

Get Resource by ID

Use this action to fetch one asset.

Main fields:

FieldDescription
Public IDRequired asset identifier
Resource Typeimage, video, or raw

Update Resource

Use this action to update metadata for an existing asset.

Main fields:

FieldDescription
Public IDRequired asset identifier
TagsReplace existing tags
ContextReplace existing context metadata
Resource Typeimage, video, or raw
Storage Typeupload, private, or authenticated
Moderation Statuspending, approved, or rejected

Delete Resource

Use this action to delete an existing asset.

Main fields:

FieldDescription
Public IDRequired asset identifier
Resource Typeimage, video, or raw
Storage Typeupload, private, or authenticated
InvalidateInvalidate cached CDN copies

Get Signed URL

Use this action to generate a temporary private download link.

Main fields:

FieldDescription
Public IDRequired asset identifier
Expires AtOptional Unix timestamp expiry
AttachmentForce download instead of display
Storage Typeupload, private, or authenticated
Resource Typeimage, video, or raw
FormatOptional file format

Generate signature for upload

Use this action before a signed direct upload from the interface.

Main fields:

FieldDescription
TimestampRequired Unix timestamp in seconds
FolderOptional folder path
Upload PresetOptional upload preset
Public IDOptional custom identifier
TagsOptional tags
EagerOptional eager transformation strings
ContextOptional metadata
ModerationOptional moderation setting
Notification URLOptional webhook URL
TransformationOptional transformation object

The signature is valid for 1 hour from the timestamp used to generate it.

Direct Upload file using signature

Use this action in an Interface workflow with an Advanced file upload component.

Main fields:

FieldDescription
FileRequired file variable from an Advanced file upload component
TimestampRequired Unix timestamp; must match the signature step
SignatureRequired signature returned by Generate signature for upload
Resource typeimage, video, or raw
FolderMust match the signed value if used
Upload PresetMust match the signed value if used
Public IDMust match the signed value if used
TagsMust match the signed value if used
EagerMust match the signed value if used
ContextMust match the signed value if used
ModerationMust match the signed value if used
Notification URLMust match the signed value if used
TransformationMust match the signed value if used

FAQs

Can I upload directly from the interface?

Yes. Use Generate signature for upload in a backend workflow or API Endpoint, then call Direct Upload file using signature from the interface with an Advanced file upload component.

Does WeWeb support every Cloudinary transformation field?

No. The built-in transformation object supports a smaller set of fields: width, height, crop, aspect_ratio, quality, and raw_transformation. Use Raw Transformation for more advanced Cloudinary syntax.

Can I list Cloudinary assets with pagination?

Yes. Use Get All Resources and pass Next Cursor from the previous response to fetch the next page.

Can I generate a signed URL for private assets?

Yes. Use Get Signed URL. Make sure the Storage Type and Resource Type match the stored asset.