# The contacts area

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

<Lead>
The **Contacts** area shows your central address book from the appointment perspective: who booked when, who comes back, who has not been in for a while. It is not a tool-specific store but a view on your workspace's contacts.
</Lead>

## The contact table

Two tabs split the area: **Mit Terminen** (with appointments) and **Nicht zugeordnete Gäste (N)** (unassigned guests). The table shows per contact:

- **Contact**, **email** and **phone**
- **Appointments**: the total count, extended by a note like "· 2x nicht da" for repeated no-shows
- **Last appointment** and **next appointment**
- **Source**: a CRM badge like "onOffice · 12345" (with customer number), Propstack or FlowFact, or "Booking" for contacts created through the tool

Above the table sit a **search** and filter chips: **all**, **new** (last 30 days), **no appointment in 30 days** and **booked multiple times**. The chips are practical prospecting lists: "no appointment in 30 days" is your follow-up list, for example.

## Unassigned guests

If someone books with an email address that matches no contact, the person lands in the **unassigned guests** tab. From there you have two routes:

<DefinitionList>
  <DefItem term="Adopt (Übernehmen)">Creates a new contact in the address book from the guest and links all of their appointments.</DefItem>
  <DefItem term="Assign (Zuordnen)">Links the guest to an existing contact, for example when someone booked with a second email address.</DefItem>
</DefinitionList>

<Tip title="Avoiding duplicates">
Before you adopt, the tool shows similar existing contacts under "Mögliche Treffer im Adressbestand" (possible matches in the address book) and advises you to check first whether the person already exists. Clicking a match assigns the guest instead of creating a duplicate.
</Tip>

## Creating and importing contacts

The **Kontakt** button (visible with the permission to create contacts) offers two routes:

- **Create contact**: a single contact via form. It lands in your workspace's central address book, not in a tool-specific store, and is therefore available to other tools too.
- **Import from CSV**: a CSV file whose first row contains the column names. Existing email addresses are skipped, nothing is created twice. The import summarizes its result: N contacts created, M already existed, K appointments linked. Existing, not yet assigned appointments are linked right away.

## The contact detail view

Clicking a contact opens the detail view with the complete **appointment history** and direct actions:

- **Enter appointment**: starts manual entry with the guest pre-filled, see [Meetings](/tools/booking/termine#entering-an-appointment-manually).
- **Copy booking link**: with an event type picker, so you send the person the right link.
- **Write email**: opens your email program with the contact's address.

The gear icon in the detail view leads to the tool's contact settings.

## Settings: auto-creation and exclusions

In the [tool settings](/tools/booking/einstellungen) under **Kontakte** you control whether bookings create contacts automatically:

- **Kontakte automatisch anlegen** (create contacts automatically, default: off): if someone books without a contact match, the tool automatically creates a contact and links the appointment. This also applies to bookings made via WhatsApp.
- **Ausgeschlossene Adressen und Domains** (excluded addresses and domains): one address or domain per line, for example `test@beispiel.de` or `@deinbuero.de`. For these emails a contact is never created automatically, handy for test bookings and colleagues. The list shows how many entries are active.

## Further reading

Back to the overview: [Appointment Booking](/tools/booking). Next page: [Booking page](/tools/booking/buchungsseite). Related: [Meetings](/tools/booking/termine) and [Settings](/tools/booking/einstellungen).
