Automatically archive CMS items in Webflow with Make.com
Have you ever had the problem that expired events, promotions, or other temporary content still remain visible on your Webflow website? In this blog, I'll show you how to fully automate this with Make.com (formerly Integromat).
Written by:

Webflow has no built-in functionality to automatically archive CMS items based on an expiration date. This means manually going through your collections to archive expired items - a time-consuming process that is often forgotten.
The solution: Make.com automation
I've built an automation that:
- Retrieves all CMS items in a collection
- Checks if items have expired (end date < today)
- Automatically archives expired items
- Works with Webflow Localization (multiple languages)
Step 1: Get CMS items
The first step is to fetch all live CMS items from your Webflow collection.
Webflow API Call configuration:

Method: GET
URL: collections/{{YOUR_COLLECTION_ID}}/items/live
Headers:
Content-Type: application/json
Query String:
cmsLocaleId: {{YOUR_LOCALE_ID}}

Important note for Webflow Localization: The CMS Local ID
parameter is crucial when using Webflow Localization. Without this parameter, your automation only works on the main locale. More about this later in this blog.
API Response: The API returns all CMS items in an array format:

Step 2: Iterate Through Each Item
With the Iterator module, you can go through each individual CMS item to process them separately.
Flow Control configuration:
Type: Iterator
Array: body: items[]

Step 3: Filter for expired items
This is where the logic takes place. We only filter items that:
- Have an end date that is earlier than today
- Not archived yet
Filter conditions:
// Conditie 1: Datum controle
formatDate(fieldData: einddatum ; YYYY-MM-DD) Earlier than formatDate(now ; YYYY-MM-DD)
// EN // Conditie 2: Archive status controle
isArchived Equal to false

Why this formatting? By converting both dates into the same YYYY-MM-DD format, we ensure that the comparison always works correctly, regardless of the original date formatting in Webflow.
Step 4: Archive Items
For items that pass through the filter, we perform a PATCH API call to archive them.
Webflow PATCH API configuration:
Method: PATCH
URL: collections/{{YOUR_COLLECTION_ID}}/items/{{id}}/live?skipInvalidFiles=true
Headers:
Content-Type: application/json
{
"isArchived": true,
"fieldData": {},
"cmsLocaleId": "{{YOUR_LOCALE_ID}}"
}

Why an empty FieldData? By keeping FieldData empty, we only change the archive status without touching other fields. This prevents accidental changes to your content.
Webflow Localization: The Challenge
Here's where it gets interesting. If you use Webflow Localization, the standard Webflow modules in Make only work on the main locale. This means that items in other languages are not automatically archived.
The Solution: Dual Flow with Router
To solve this, I use a Router module that splits the flow into multiple routes - one for each locale.

Route 1 - Main Locale:
// In GET API call
Query String: cmsLocaleId = "{{YOUR_LOCALE_ID}}"
// In PATCH API call
Body: {
"isArchived": true,
"fieldData": {},
"cmsLocaleId": "{{YOUR_LOCALE_ID}}"
}
Route 2 - Second locale:
// In GET API call
Query String: cmsLocaleId = "{{YOUR_SECOND_LOCALE_ID}}"
// In PATCH API call
Body: {
"isArchived": true,
"fieldData": {},
"cmsLocaleId": "{{YOUR_SECOND_LOCALE_ID}}"
}
How to find your Local IDs
You can find your local IDs by making an API call to your Webflow site:
API Call to fetch locales:

The response shows you all available locales:
{
"locales": {
"primary": {
"id": "686e63afec9cfa367eaa1fa1",
"cmsLocaleId": "686e63afec9cfa367eaa1fa2",
"displayName": "NL"
},
"secondary": [
{
"id": "686e8cc3474b9171c378488f",
"cmsLocaleId": "686e8cc3474b9171c3784892",
"displayName": "EN"
}
]
}
}
Important: Use the CMS Local ID
value, not the ordinary id
for your CMS operations.

Automation scheduling
I set the automation to run once a day, in the middle of the night (for example, at 00:01). This ensures that:
- The automation runs when there is little website traffic
- Items are archived before visitors can see them
- There is no impact on website performance during the day
You can set this up with Make's Schedule trigger that runs at a fixed time every day.
With this Make.com automation allows you to fully automatically archive expired CMS items in Webflow, even when you use Webflow Localization. The automation runs reliably and ensures that your website always shows current, relevant content.
Key points to remember:
- Replace
{{YOUR_COLLECTION_ID}}
through your own Webflow collection ID - Replace
{{YOUR_LOCALE_ID}}
through your own local IDs - In the PATCH URL, use
{{id}}
to extract the specific item ID from the iterator - Always test with a few items before fully implementing automation
Written by:
