> For the complete documentation index, see [llms.txt](https://flowmate.gitbook.io/flowmate-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://flowmate.gitbook.io/flowmate-documentation/technical-fundamentals/flow-execution-behavior/snapshot-logic.md).

# Snapshot Logic

FlowMate uses **snapshot-based filtering** to ensure that integrations process only **new or updated data** during each execution. This mechanism is especially important for triggers that pull data from external systems on a recurring schedule.

{% hint style="info" %}
A **snapshot** in FlowMate is a stored record — typically a **timestamp** (such as `createdAt` or `updatedAt`) — representing the most recent object that was processed during a previous flow execution.
{% endhint %}

Snapshot logic ensures that each flow run processes only data that is **newer than the last execution**. Here's how it works step by step:

**1. Initial Execution**

* The trigger fetches **all available objects**
* FlowMate identifies the **most recent object** based on a timestamp field (e.g., `updatedAt`, `Etag`).
* This timestamp is saved as the **snapshot**.

**2. Subsequent Executions**

* The trigger fetches **all available objects**, but only passes on those where the timestamp is **greater than the stored snapshot** to the next step in the flow.
* After processing, FlowMate saves the **latest timestamp** from the current batch as the new snapshot.
