# Change Detection

> Use content hashing to avoid re-processing unchanged items.

URL: https://docs.reaktly.com/docs/integrations/change-detection

## How It Works

When you include a `hash` field in your ingestion payload, Reaktly compares it against the previously stored hash. If they match, the item is skipped — saving processing time and embedding costs.

## Generating a Hash

Create a SHA-256 hash of the content fields that matter:

```ts
import crypto from 'crypto';

function computeHash(item: { title: string; content: string }): string {
  return crypto
    .createHash('sha256')
    .update(JSON.stringify({ title: item.title, content: item.content }))
    .digest('hex');
}
```

## Force Refresh

To bypass hash checking and force re-processing:

```json
{
  "options": {
    "forceRefresh": true
  }
}
```

Use this when you've changed your embedding model or want to re-process all content.