Image and File URLs

Overview

Glassix uses Amazon S3 to store and serve attachments such as images, PDFs, and other file types. To secure these files, we generate presigned URLs, which are time-limited links that allow access to specific objects stored in S3 without requiring authentication.

The most common places for you to encounter a presigned URL are:

  • Copying an image address
  • Copying an attachment address
  • Extracting an image or attachment URL via API or SDK
  • Sending an external email with an attachment from Glassix

Every time you do run into a presigned URL, it will look something like this:

https://glassix-private-prod.s3.eu-central-1.amazonaws.com/104062512182470_whatsappim_jt9bzvcu_890af5b7-d7d1-4f46-9e71-046ba12ae96a.jpg?X-Amz-Expires=21600&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAQ5NFYO37DHIHUM5Q%2F20250612%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20250612T084120Z&X-Amz-SignedHeaders=host&X-Amz-Signature=a11491c6e749e6557f1c2bfa919a6b7a03d875db086f1a7e3818f23cd3e81066

🚧

Note:

If you've copied a link either from the UI or from an API return, and the link follows the format above, you are working with a presigned URL.

Presigned URLs don't function like normal links so it's important to read through the information below.


Expiration

All S3 presigned URLs generated by Glassix expire 6 hours after they are created. This is a fixed limit defined by our implementation of Amazon S3

When you attempt to open a expires presigned URL, you will see an error message like the one below:

📘

Info:

For more details on how presigned URLs work, you can refer to the official AWS documentation:https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-presigned-url.html


Where You Will Find Presigned URLs

Agent Console (UI)

When viewing an attachment in a conversation, a new presigned URL is generated automatically each time the conversation is loaded.

Behavior: If the previous URL has expired, a new valid URL will be used without requiring any action from the agent. Expired links are seamlessly refreshed on page reload.

API Responses and Webhooks

When you retrieve a message using the API or receive a webhook event, the attachment URL provided is a presigned S3 link.

Important:These URLs are also valid for 6 hours. If accessed after that period, they will return an error such as 403 Forbidden.

Recommendation: Consume or download the file immediately upon receiving the API response or webhook. If needed later, call the relevant API again to obtain a new URL.

Outbound Emails (Customer-Facing)

File links sent to end users (for example, interactive documents or attachments) also use S3 presigned URLs.

❗️

Important:

Customer-facing presigned URLs expire after 6 hours just like other presigned URLs. If a user clicks on an expired link, they will receive an Access Denied error message.

👍

Tip:

Consider including a line in your email templates about the expiration of your attachments. For example:
“Note: This file link is only valid for 6 hours. If you're not able to access the file or if 6 hours have passed since you received this message, please reach back out to request the file again.”


Regenerating Presigned URLs

If you need a new presigned URL for one of your documents, you can get a new one by:

  • Re-fetching the conversation via the API (GET /conversations/{id})
  • Triggering a new webhook event (e.g., reassignment or tag update)
  • Refreshing the browser tab and copying the newly-generated link

Glassix will automatically refresh presigned URLs whenever they're loaded in the UI.