# 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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://flowmate.gitbook.io/flowmate-documentation/technical-fundamentals/flow-execution-behavior/snapshot-logic.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
