> ## Documentation Index
> Fetch the complete documentation index at: https://docs.clustr-ai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Modes and settings

> Off, Ask me and Do it, the defaults, the schedule, exclusions, recipes and the other CRM Cleaning settings

Open **CRM Cleaning ▸ Settings**. Changes take effect when you click **Save settings**.

## One setting per check: Off, Ask me, Do it

Every check that can change your CRM has one setting. That setting is the only thing
that decides what happens to the changes it finds.

| Mode | What happens |
| - | - |
| **Off** | The check never runs. Nothing is proposed. |
| **Ask me** | Every change waits for your decision in **Review**. Nothing is written until you apply it. |
| **Do it** | Changes the check is certain about are written to your CRM on their own. Changes it is not sure about still wait in Review. Merges apply only when the match is certain. |

The checks that only report have **Off** or **Report** instead: Report lists what they
find in **Findings**, and Clustr never changes it.

### Apply to all rules

**Autonomy ▸ Apply to all rules** sets every check that changes your CRM at once. Pick
Off, Ask me or Do it, then change the few checks you want to treat differently in
**What the agent checks**. Findings keep their own setting: Apply to all rules never
turns them off. Do it never reaches **Standardise values**: it rewrites values to the
ones you mapped, so it stays on Ask me until you set that row itself to Do it. Off and
Ask me reach it like any other check.
A check you change shows "not the default", with a link to reset it. When your checks
use different modes, the control reads **Set per rule**.

### Suggestions to switch to Do it

When your team keeps accepting a check's changes, Clustr suggests letting it run on
its own. The suggestion appears under the check, with **Switch to Do it**; click it,
then **Save settings**. Nothing changes until you save.

A check is suggested when, over the last 90 days:

* it is on **Ask me**;
* it is **Format & casing** or **LinkedIn URL** (merges and company changes are never
  suggested);
* people accepted at least 20 of its changes, and dismissed or reverted none. From 50
  decisions on, one dismissal is allowed if at least 98% were accepted. Any revert rules
  it out.

Changes Clustr applied on its own do not count: only decisions people made. The weekly
email lists up to two of these suggestions under "Ready to run on its own". Over the
API, read them from [`GET /api/crm/cleaning/settings/suggestions`](https://docs.clustr-ai.com/crm-cleaning/api#suggestions).

### Defaults

Until you change anything:

| Check | Default |
| - | - |
| Format & casing | Do it |
| Company domain | Do it (but it always asks) |
| LinkedIn URL | Do it |
| Company association | Ask me (it always asks) |
| Contact duplicates, Company duplicates | Do it, for certain matches only |
| Enrichment fields | Do it, once enrichment is turned on. Contacts: LinkedIn URL, job title and company. Blank fields only. |
| When your CRM already has a different value | Contacts: Ask me. Companies: Keep yours |
| Findings | Report, except Deals that moved back a stage, which is Off. Unusable values are in the list too, and can be turned off. |
| Paid enrichment | Off |
| Schedule | Off: manual scans only |

The defaults apply to manual scans as well as scheduled ones. A new workspace with
these defaults gets formatting fixes written on its first manual scan.

> [!NOTE]
>
> Settings saved before this page existed keep working. The old Autopilot, Confirm and
> Flag choices are read as the nearest mode: Autopilot as Do it, Confirm and Flag as Ask
> me. Your next save stores the new shape.

## Schedule

Turn on **Run on a schedule** to scan automatically. Off means manual scans only. Pick
the cadence (hourly, daily, weekly or monthly), the day, the time and the time zone.
The app suggests weekly, Monday at 09:00 in your browser's time zone.

The schedule also turns on the rest of the automatic loop: cleaning a record soon after
it changes in your CRM, and the [weekly email](https://docs.clustr-ai.com/crm-cleaning/health-and-summary.md#the-weekly-summary-email).
The **On / Off** pill in the **Runs** header switches the schedule at once, without
Save; only a workspace admin can use it. More on [scans and runs](https://docs.clustr-ai.com/crm-cleaning/history.md#scans).

## Summary email recipients

**Summary email recipients (optional)** lists who gets the weekly email, separated by
commas or new lines. Leave it empty to send it to your workspace admins. The field is
shown while the schedule is on, because the email only runs then.

## Weekly summary highlights

CRM Cleaning sends one summary email a week, plus an immediate email only when changes
fail to write to your CRM. **Weekly summary highlights** has two switches that decide
what the summary's "Worth a look" section may mention. Both are on until you turn them
off, and neither sends an email of its own:

* **Many new duplicates**: when 25 or more new groups of possible duplicates show up in
  a week, and that is at least 3 times your usual week.
* **Field getting emptier**: when the share of contacts or companies with a field like
  job title or industry drops 5 points or more in a week, on an object with at least
  100 records.

What each one says is in
[Weekly summary highlights](https://docs.clustr-ai.com/crm-cleaning/health-and-summary.md#weekly-summary-highlights).

## Duplicates

**Check new records right away** checks a contact or company for duplicates as soon as
it is created in your CRM, instead of waiting for the next scan. It is on by default and
follows the Contact duplicates and Company duplicates checks: a certain match under Do
it is merged, anything else waits in Review. It needs the schedule on, and it is off
while merges are off. See [new records](https://docs.clustr-ai.com/crm-cleaning/checks.md#new-records).

Through the API the field is `realtime_duplicates`. Leaving it out means on.

## Enrichment

The **Enrichment** section has the master switch, **Fill in missing data**, the
**Credits this month** meter, **When your CRM already has a different value** and,
once something was sent this month, the match rate ("Found 412 of 640 records (64%):
300 filled, 112 already complete"). The fields to fill, their modes and **Which records
to enrich** are in the Enrichment group of the checks list. See
[Enrichment](https://docs.clustr-ai.com/crm-cleaning/enrichment.md).

**When your CRM already has a different value** is set for contacts and for companies.
Contacts default to **Ask me**: the new value is proposed as a change that always waits
for you in Review, even on Do it, and the weekly email does not count it. Companies
default to **Keep yours**: enrichment fills their blank fields only. Over the API it is
`enrichment.when_different`, per object type (`contact`, `company`), `keep` or
`suggest`.

## Record to keep

**Record to keep** is an ordered list of rules that decide which record a merge keeps:
has an owner, furthest lifecycle stage, oldest record, most recently updated, most
fields filled, or a field with a given value. Add up to 10 rules from the list, move
them up or down, or remove them. The first rule that tells two records apart decides; with no rules,
or when none decides, the record with an owner and the most filled fields is kept. See
[Which record is kept](https://docs.clustr-ai.com/crm-cleaning/queue-and-findings.md#which-record-is-kept).

## Match rules

**Match rules** adds your own duplicate rules, up to 5 for contacts and 5 for companies.
Click **Add rule**, then pick up to 6 fields that must all be the same, such as First
name, Last name and Company. A pair only your rule finds is always Likely and waits for you.
See [Your own match rules](https://docs.clustr-ai.com/crm-cleaning/queue-and-findings.md#your-own-match-rules).

## Configure a finding

**Ownerless records**, **Incomplete records** and **Lifecycle anomalies** have a
**Configure** button:

| Check | What you can set |
| - | - |
| Ownerless records | Include records not on an open deal; which object types to check; only open deals; deal pipelines; contact lifecycle stages to skip; ignore records older than a number of days; owner ids that count as owned, such as a shared inbox |
| Incomplete records | The required contact fields and company fields. Every required field that some records are missing is reported. |
| Lifecycle anomalies | Which [rules](https://docs.clustr-ai.com/crm-cleaning/checks.md#lifecycle-rules) run for deals, contacts and companies; the stuck-days threshold (90 by default); which stages count as SQL; which stages are not final |

## Exclusions

An exclusion tells Clustr never to propose a change. In the app, you create one by
choosing **Dismiss & stop suggesting this** on a group in Review, or **Dismiss and stop
reporting this** on a kind in Findings. They are listed under **Advanced ▸ Suppressed**,
where **Remove** brings the suggestions back.

Over the API, an exclusion can be narrower. Each one matches a change when every field
it sets matches:

| Example | Excludes |
| - | - |
| `{ "object_type": "contact", "object_id": "51234901" }` | Every change on one record |
| `{ "action": "format_normalize", "property": "mobile_phone" }` | Formatting of mobile phones |
| `{ "action": "associate_company" }` | Every company association |
| `{ "object_type": "deal" }` | Every change on deals |
| `{ "property": "jobtitle" }` | Every change to one field |

An exclusion with no field set excludes nothing. To stop automatic scans, turn the
schedule off. To stop every change to your CRM, set **Apply to all rules** to Off.

## Quick-start recipes

**Advanced ▸ Quick-start recipes** applies a ready-made preset. You see what it changes
before anything is saved, and nothing is saved until you click **Save settings**.

| Recipe | What it sets |
| - | - |
| Standardize formatting | Format & casing, Company domain and LinkedIn URL to Do it |
| Fill firmographics | Turns paid enrichment on for company industry, size, city, country, LinkedIn URL and domain, for active records. It adds to your enrichment settings and keeps your field modes. |
| Dedupe companies | Contact duplicates and Company duplicates to Ask me |
| Flag data gaps | Removes exclusions that hide Incomplete records, Deals missing contacts and Ownerless records |

## Settings only the API sets

These settings have no control in the app. Set them with
[`PUT /api/crm/cleaning/settings`](https://docs.clustr-ai.com/crm-cleaning/api#replace-settings):

* **`merge_enabled`**: the merge switch. It is on unless set to `false`. Turning it off
  stops every merge, and leaves formatting, links and enrichment running. Merges already
  accepted are held, not dropped, and continue when you turn it back on.
* **`survivorship`**: how a merge picks the record to keep. The app sets only
  `survivorship.primary_rules` (Record to keep); the strategy and field rules are API
  only. See [Duplicates and merges](https://docs.clustr-ai.com/crm-cleaning/queue-and-findings.md#duplicates-and-merges).
* **`alerts.duplicate_spike_threshold`**: the fewest new groups of possible duplicates
  in a week for the weekly summary to highlight them. Leave it out, or set 0, for the
  default of 25. The two switches are `alerts.duplicate_spike` and
  `alerts.completeness_drop`; leaving either out means on.
* **`enrichment.contact_budget_share`**: a fixed share of the monthly enrichment budget
  kept for contacts, from 0 to 1. Leave it out to let Clustr work it out from how many
  contacts and companies you have. See [the monthly budget](https://docs.clustr-ai.com/crm-cleaning/enrichment.md#the-monthly-budget).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.