---
title: "Collection triggers, step by step"
description: "Step-by-step Shopify Flow tutorials for collection updates and for collection title, handle and description changes with old and new values."
canonical: "https://docs.workflow-trigger-extensions.app/collection-trigger-tutorials"
---

# Collection triggers, step by step

Four triggers for collections: one for any update, three for the fields that matter for SEO and navigation. Collections have no tags in Shopify, which is why there are no tag triggers here.

**On this page:** [Collection Update](#collection-update), [Collection Title Changed](#collection-title-changed), [Collection Handle Changed](#collection-handle-changed), [Collection Description Changed](#collection-description-changed)

> [!TIP]
> **New to Shopify Flow?**
> Every example follows the same five moves: pick the trigger, add a condition, add an action, turn the workflow on, check Event History. [Your first workflow, step by step](https://docs.workflow-trigger-extensions.app/first-workflow-tutorial.md) shows each of them with screenshots.

![Shopify Flow's trigger picker inside Workflow Trigger Extensions, searched for Collection](https://cdn-dev.eu.codecreationlabs.cloud/crm-tool/uploads/SjJ78gKLnLlocopCui3Cs62dJbGZ7F1n/87d4705db334a016.png)
*Where you find them: in Shopify Flow choose Select a trigger, open Workflow Trigger Extensions and search for "Collection".*

## Collection Update

Fires on every save of a collection, including a change to the conditions of an automated collection.

| | |
| --- | --- |
| **Fires from** | Shopify webhook |
| **Permission** | **Product, Variant & Collection Data Access** |
| **Switched on** | Turning on a Flow workflow that uses it switches it on. Its own switch is on the app's **Triggers** page |

**Use it for**

- Invalidate a cache or rebuild a navigation menu when a collection changes.
- Review changes to the rules of automated collections.

### What Collection Update sends to your workflow

| Variable in Flow | Type | What it holds |
| --- | --- | --- |
| `collection` | Object | The collection that was updated |
| `collection.id` | ID |  |
| `collection.title` | Text |  |
| `collection.handle` | Text |  |
| `collection.description` | Text |  |
| `collection.descriptionHtml` | Text |  |
| `collection.updatedAt` | Text |  |
| `collection.ruleSet` | Object |  |
| `collection.ruleSet.appliedDisjunctively` | True / false |  |
| `collection.ruleSet.rules` | List of objects |  |
| `payload` | Text | JSON object containing the GID of the collection that was updated (e.g. {"id":"gid://shopify/Collection/123"}) |
| `eventId` | Text | The id of this event. Search for it in the app's Event History to see exactly what was sent. |

### Example: Get notified when a collection's rules change

1. Pick **Collection Update** as the trigger.
2. Add **Send internal email** with `{{collection.title}}` and, for automated collections, a loop over `collection.ruleSet.rules` printing `column`, `relation` and `condition`.
3. Turn the workflow on.

> [!NOTE]
> **Good to know**
> - If you only use the three field triggers below, keep this one switched off on the Triggers page.
> - Products entering or leaving an automated collection do **not** fire it. Only an edit of the collection itself does.

## Collection Title Changed

Fires when the title of a collection changes.

| | |
| --- | --- |
| **Fires from** | Shopify webhook plus change detection |
| **Permission** | **Product, Variant & Collection Data Access** |
| **Switched on** | Turning on a Flow workflow that uses it switches it on. Its own switch is on the app's **Triggers** page |

**Use it for**

- Keep menu labels, landing pages or ad groups in line with the collection name.

### What Collection Title Changed sends to your workflow

| Variable in Flow | Type | What it holds |
| --- | --- | --- |
| `collection` | Object | The collection whose title changed |
| `collection.id` | ID |  |
| `collection.title` | Text |  |
| `collection.handle` | Text |  |
| `collection.description` | Text |  |
| `collection.descriptionHtml` | Text |  |
| `collection.updatedAt` | Text |  |
| `collection.ruleSet` | Object |  |
| `collection.ruleSet.appliedDisjunctively` | True / false |  |
| `collection.ruleSet.rules` | List of objects |  |
| `oldTitle` | Text | The previous title of the collection |
| `newTitle` | Text | The new title of the collection |
| `eventId` | Text | The id of this event. Search for it in the app's Event History to see exactly what was sent. |

### Example: Tell marketing about a renamed collection

1. Pick **Collection Title Changed** as the trigger.
2. Add **Send internal email**: `"{{oldTitle}}" is now "{{newTitle}}"`.
3. Turn the workflow on.

## Collection Handle Changed

Fires when the URL handle of a collection changes.

| | |
| --- | --- |
| **Fires from** | Shopify webhook plus change detection |
| **Permission** | **Product, Variant & Collection Data Access** |
| **Switched on** | Turning on a Flow workflow that uses it switches it on. Its own switch is on the app's **Triggers** page |

**Use it for**

- Create the redirect from the old collection URL automatically.

### What Collection Handle Changed sends to your workflow

| Variable in Flow | Type | What it holds |
| --- | --- | --- |
| `collection` | Object | The collection whose handle changed |
| `collection.id` | ID |  |
| `collection.title` | Text |  |
| `collection.handle` | Text |  |
| `collection.description` | Text |  |
| `collection.descriptionHtml` | Text |  |
| `collection.updatedAt` | Text |  |
| `collection.ruleSet` | Object |  |
| `collection.ruleSet.appliedDisjunctively` | True / false |  |
| `collection.ruleSet.rules` | List of objects |  |
| `oldHandle` | Text | The previous URL handle of the collection |
| `newHandle` | Text | The new URL handle of the collection |
| `eventId` | Text | The id of this event. Search for it in the app's Event History to see exactly what was sent. |

### Example: Redirect the old collection URL

1. Pick **Collection Handle Changed** as the trigger.
2. Add **Create URL redirect** with **Path** `/collections/{{oldHandle}}` and **Target** `/collections/{{newHandle}}`.
3. Turn the workflow on.

> [!NOTE]
> **Good to know**
> Collection URLs are often linked from menus, emails and ads, so a missed redirect costs more here than on a single product.

## Collection Description Changed

Fires when the description of a collection changes.

| | |
| --- | --- |
| **Fires from** | Shopify webhook plus change detection |
| **Permission** | **Product, Variant & Collection Data Access** |
| **Switched on** | Turning on a Flow workflow that uses it switches it on. Its own switch is on the app's **Triggers** page |

**Use it for**

- Trigger a translation or an SEO check for category texts.

### What Collection Description Changed sends to your workflow

| Variable in Flow | Type | What it holds |
| --- | --- | --- |
| `collection` | Object | The collection whose description changed |
| `collection.id` | ID |  |
| `collection.title` | Text |  |
| `collection.handle` | Text |  |
| `collection.description` | Text |  |
| `collection.descriptionHtml` | Text |  |
| `collection.updatedAt` | Text |  |
| `collection.ruleSet` | Object |  |
| `collection.ruleSet.appliedDisjunctively` | True / false |  |
| `collection.ruleSet.rules` | List of objects |  |
| `oldDescription` | Text | The previous description (truncated to 4000 characters; fetch the full description via the collection reference if needed) |
| `newDescription` | Text | The new description (truncated to 4000 characters; fetch the full description via the collection reference if needed) |
| `eventId` | Text | The id of this event. Search for it in the app's Event History to see exactly what was sent. |

### Example: Queue a changed description for translation

1. Pick **Collection Description Changed** as the trigger.
2. Add **Send HTTP request** to your translation tool with `{{collection.id}}` and `{{newDescription}}`.
3. Turn the workflow on.

> [!NOTE]
> **Good to know**
> Both values are cut at 4,000 characters; use `collection.descriptionHtml` for the full text.

## Next steps

- [Complete trigger reference](https://docs.workflow-trigger-extensions.app/trigger-reference.md) - every trigger on one page.
- [Choosing the right trigger](https://docs.workflow-trigger-extensions.app/choosing-the-right-trigger.md) - which one fits your case.
- [Custom triggers](https://docs.workflow-trigger-extensions.app/custom-triggers.md) - when no built-in trigger fits, write your own.
- [Event history and troubleshooting](https://docs.workflow-trigger-extensions.app/event-history-and-troubleshooting.md) - see what fired and what it carried.
- [Trigger events on a record's admin page](https://docs.workflow-trigger-extensions.app/admin-blocks.md) - the latest events of one record, on its own page in the Shopify admin.
