# Customer view & REOS AI

{/* AUTO-SYNCED SOURCE: this page lives in apps/app/src/modules/db-leads/docs/ and is mirrored into the docs app by `bun sync:module-docs`. Edit it in the module, not in apps/docs. */}

<Lead>
For deep work on a contact, expand the lead into its own page: everything the platform knows about them, plus an AI assistant that works directly with this lead. The natural next step after accepting a [finding from the database scan](/tools/db-leads/datenbank-scan).
</Lead>

## Expand into a new tab

Open a lead (click on the board, in the list, or from a finding). In the header of the side panel, expand it via the **expand** icon into a **new tab**, the full customer view.

## What the customer view shows

<DefinitionList>
  <DefItem term="Header">Name, contact type, city, and the key markers (sales readiness, phase, assignee) at a glance.</DefItem>
  <DefItem term="Ownership">What is known about this person's properties: address, type, size and year built, each with the sentence it came from. See [Ownership](/tools/db-leads/objekte).</DefItem>
  <DefItem term="AI briefing">The structured briefing (seller signals with evidence quotes, sales-readiness, key facts, next step, opener), or the option to create it here.</DefItem>
  <DefItem term="Pipeline & assignment">Change stage, set assignee, disqualify, all inline.</DefItem>
  <DefItem term="Note & history">Record outcomes and see the full activity timeline: the same activities the scan mines for its signals.</DefItem>
</DefinitionList>

<Divider label="AI" />

## REOS AI on the lead

On the right runs the platform assistant, the same input bar and chat as under **/agent**, but bound to exactly this lead. On open, a dedicated **session** for the contact starts automatically, and the full **lead dossier** (contact, briefing, signals, history, known properties) is attached as context.

<Steps>
  <Step title="Just ask">
    Type what you need: "Write an opener that picks up the mentioned follow-up mandate", "Phrase a polite decline", "What's the best next step?".
  </Step>
  <Step title="The AI knows the lead">
    Because the dossier is attached, the AI answers with this lead's real facts, without you retyping them.
  </Step>
  <Step title="Your own attachments">
    Via the paperclip you can attach additional text or Markdown files (e.g. a listing brochure) for the AI to read.
  </Step>
</Steps>

<Tip title="One session per contact">
Reopen the same lead and the existing session continues with its dossier refreshed to the current state. Your conversation is preserved.
</Tip>

<Callout tone="note" title="AGG-compliant">
The assistant only evaluates documented behavior and statements from the activities, never personal characteristics. The final decision about a lead is always yours.
</Callout>

## Actions on a single contact

The three-dot menu next to the briefing button holds the actions that affect only this one contact. Most of these previously worked on the whole database or not at all.

<DefinitionList>
  <DefItem term="Synchronise">Syncs both ways: pulls record data and the full history including email bodies from onOffice, then writes the qualification fields back. Worth doing right before an assessment so the AI reads the current state. The confirmation names both directions, even when there was nothing to do. Available once every 30 seconds per contact.</DefItem>
  <DefItem term="Re-qualify">The whole run in one step: synchronise, analyse, set the pipeline phase and write the result back to onOffice. The button below shows which step is running.</DefItem>
  <DefItem term="Open in onOffice">Jumps straight to the address record in onOffice.</DefItem>
  <DefItem term="Copy opener">Puts the ready-made opening message on the clipboard.</DefItem>
  <DefItem term="Exclude from scan">Takes this one person out of future scans, for when they have made clear more than once that they are not selling. The contact stays in list and board, it is just no longer analysed or suggested. Reversible at any time.</DefItem>
  <DefItem term="Delete and block AI assessment">For when a person objects to being assessed. Deletes everything the AI computed about them (assessment, summary, persona, signals, sales readiness, findings, AI property hints) and stops any scan from creating it again. The contact itself, its history, and your own entries stay. This is not the same as "Exclude from scan": that is your decision and undone with one click, this is the request of the person concerned. You can allow assessment again, but the deleted one does not come back. Requires the permission to delete contacts.</DefItem>
  <DefItem term="Follow-up">For "interesting, but not now": in a week, 1, 3, 6 months, a year, or on a date you pick. This creates a real task carrying the contact name. It shows up under Tasks, it shows up in onOffice, and checking it off there checks it off here. On the day you get a notification, either you as the assigned owner or otherwise the workspace owner.</DefItem>
</DefinitionList>

## Many contacts in a row

When you are not working one contact but forty, the panel is the wrong path: searching, opening, closing and searching again costs more actions than the work itself. That is what the [run-through](/tools/db-leads/durchgang) is for: it turns the visible list into a queue.

## Keeping an eye on follow-ups

The **Follow-ups** tab lists every parked contact, grouped into overdue, today, this week and later. One click opens the contact.

You deliberately cannot check them off there. A follow-up is the same task that also lives under Tasks and in onOffice; being able to complete it in two places means being able to complete it differently in two places. You set it on the contact and complete it under Tasks or in onOffice.

<Tip title="Rescheduling works anywhere">
Change the due date under Tasks or in onOffice and DB-Leads shows the same date shortly after, with the reminder going out again for the new date.
</Tip>

## History: activities and system, kept apart

The history has two sections. **Activities** shows the real exchange with the person: emails, calls, appointments, notes and remarks from onOffice. **System** shows what the tool logged about itself: synchronisations, AI runs, phase changes and error messages.

<Tip title="Why they are separate">
On a grown database every scan produces log entries. Mixed in with the correspondence, the actual history was hard to find underneath them, and the question "when did we last talk to this person" could no longer be answered at a glance.
</Tip>

### Retracting a note

If you wrote a note on the wrong contact, or recorded something that turns out to be untrue, your own entries carry a **Retract** action.

**The row disappears from the history**, and the retraction takes effect immediately once you confirm. It does not wait for the CRM to answer. That is the difference to before: until early September the button stayed on "Retracting" for as long as onOffice took, and if things went wrong over there the note ended up not retracted at all.

<Warning title="In the CRM the entry stays">
If the note was transferred to the agent's log, it is marked as retracted there, but not deleted. The onOffice agent's log has no delete for an entry; it is a history, not a scratch pad. What stands there can be corrected, but not made to have never happened.

That is why the row on our side only goes once nothing is left open over there. If the CRM does not answer right away, the note shows **Verschwindet, sobald der Eintrag im CRM gekennzeichnet ist** (goes as soon as the entry is marked in the CRM); the tool catches up in the background, nothing else is needed from you. If it fails for good, the note stays struck through with **Im CRM steht der Eintrag noch unverändert** (the entry still stands unchanged in the CRM) and a button **Erneut anstoßen** (try again). That way you can see when a note that no longer counts is sitting in the agent's log.

Notes you retracted before this change stay struck through in the history.
</Warning>

**You can only retract what was created in this tool.** An entry imported from onOffice stays untouchable. A colleague wrote it in their CRM, and overwriting it from here would mean reaching into the history of a foreign system. It can be corrected where it was created.
