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.
Updated 2 days ago