Squidex 7.19.0 replaces rule actions with a new flow system, adds a cron trigger, JSON response compression and persistent AI chat history. This is what changed in the second quarter of 2025, including the one migration detail you should check before you upgrade.
Two releases went out this quarter, 7.19.0 and 7.20.0. The largest change is in the rule engine: what used to be a single action attached to a trigger is now a flow, with each step tracked separately. The rest of the quarter covers API compression, a new trigger type, AI chat history in the UI and a set of database and logging changes.
Until now, a rule was a trigger plus one action. The action definition has been replaced by a flow, which is a sequence of steps. A flow can branch with an If step, so you can react differently depending on the content of the event instead of creating several rules with overlapping conditions.
The flow system is backwards compatible. Existing rules are migrated to flows automatically, so you do not have to rewrite anything after the upgrade. What changed underneath is how executions are stored: each action attempt is tracked on its own. In the old model a rule run was one record, which made it hard to tell which part of a rule had failed and how often it had been retried. Now you can look at an individual attempt, see its result and debug the step that actually broke.
Because the database representation changed, existing rule logs could not be migrated. This matters if you are sitting on failed items in your log:
If your rule log is clean, there is nothing to do.
7.20.0 followed one day later with three fixes in this area: validation of If flow steps in the UI, the size of the rule flow icons and the background color of the button that disables and enables a rule.
Rules used to react to something happening in Squidex: content being published, an asset being uploaded, a schema being changed. The new cron trigger removes that dependency. A flow can now run on a schedule, with a minimum time of four hours between jobs.
That interval is deliberate. This is not a replacement for a job scheduler that runs every minute, it is for periodic work such as notifying a downstream system, kicking off a rebuild of a static site or calling a webhook that reconciles state. Because the trigger feeds the same flow system as every other trigger, you get the same steps and the same per-attempt tracking for scheduled runs.
{
"trigger": {
"triggerType": "CronJob"
}
}
The content API now supports compression for JSON endpoints. Content responses are text and compress well, so this reduces the number of bytes on the wire for large query results without any change to your queries or your schemas.
Your client asks for it the usual way:
GET /api/content/my-app/posts?$top=50 HTTP/1.1
Host: cloud.squidex.io
Accept-Encoding: gzip
Authorization: Bearer <token>
Most HTTP clients and browsers send Accept-Encoding by default and decompress transparently. If you use a hand-rolled client that disables automatic decompression, check that it handles the Content-Encoding response header before you rely on this.
The AI chat in the UI now keeps the history of a conversation and restores it. Previously a conversation was gone when you navigated away. Now you can leave the chat, come back and continue where you stopped, which makes it usable for longer, iterative work instead of one-off questions.
The remaining changes are smaller but worth knowing about.
On the SQL side, bulk updates were migrated to a new framework, and 7.20.0 added pooling for DbContext creation. Both reduce overhead on write-heavy workloads; neither requires a configuration change.
Logging now redacts sensitive configuration values, so secrets that appear in your configuration are no longer written to the log in clear text. Review any log-based tooling that relied on reading those values.
For custom authentication servers, there is a new option to disable the OIDC profile scope. If your identity provider does not support the profile scope or returns claims you do not want, you can now turn it off instead of working around it.
The UI got a batch of fixes: expanded mode for editors, the title service that sets the title in the browser tab, several fixes in the onboarding system and a proper default value for star controls. Autocompletion is now disabled for password fields, and the API models used by the UI are generated from the API definition rather than maintained by hand, which keeps the client and the server in sync as the API changes.
If you run Squidex yourself, read the rule log note above before you upgrade, then look at your existing rules after the migration to see how they were converted into flows. The full list of changes for both releases is in the changelog, and the flow system is documented alongside the rest of the rule engine in the documentation.