# Contacten beheren

**Contacten** bevat iedereen die bij je winkel koopt: accounts aangemaakt via de storefront, gasten die zonder registratie hebben afgerekend, en contacten die je zelf toevoegt. Het verschijnt als **Contacten** in de zijbalk voor elke onderneming (in tegenstelling tot de meeste groepen hangt het niet af van een ingeschakelde module), met twee pagina's: **Contacten** (de lijst) en **Groepen**.

Contacten worden automatisch aangemaakt wanneer iemand via je storefront bestelt. Je kunt ze ook handmatig toevoegen of in bulk importeren vanuit een CSV-bestand.

Voor extra velden op elk contact, zie [Eigen velden op contacten](/nl/docs/customers/custom-fields).

## Persoon- en bedrijfscontacten

Elk contact heeft een **soort**: **Persoon** of **Bedrijf**. Een persoonscontact is wat je eerder had: een naam, e-mail, telefoon. Een bedrijfscontact voegt zakelijke velden toe: bedrijfsnaam, registratienummer (bijvoorbeeld een KvK-nummer) en btw-nummer. Stel de soort in met de Persoon/Bedrijf-schakelaar bij het aanmaken of bewerken van een contact.

Bedrijfscontacten hoeven geen e-mailadres te hebben: sommige bedrijven factureren een bedrijf zonder ooit een individu daar te mailen. Persoonscontacten die via je storefront zijn aangemaakt hebben er altijd een (de eigen registratie van de storefront vereist dit); een bedrijfscontact toegevoegd vanuit het dashboard of CSV-import kan zonder e-mailadres worden aangemaakt.

Elk contact kan ook een **extern-id** dragen: een vrij te kiezen identifier die jij toewijst, bijvoorbeeld een ERP- of boekhoudsysteemreferentie, handig om contacten te matchen tussen systemen bij CSV-import en -export.

## De contactenlijst

Open **Contacten** in de zijbalk. De lijst toont alle contacten met deze kolommen:

| Kolom | Beschrijving |
| --- | --- |
| Naam | De weergavenaam van het contact: de bedrijfsnaam voor een bedrijfscontact, anders de naam van de persoon. Een neutrale **Gast**-badge verschijnt ernaast wanneer het contact als gast heeft afgerekend. Sorteerbaar. |
| E-mail | Het e-mailadres van het contact. Toont `-` wanneer leeg. Sorteerbaar. |
| Telefoon | Toont `-` wanneer leeg. Verborgen op smalle schermen. |
| Type | `B2B` of `B2C`. Verborgen op smalle schermen. |
| Sinds | De datum waarop het contact is aangemaakt. Verborgen op smalle schermen. |

Gebruik het zoekveld boven de tabel om contacten te vinden op naam, e-mail, bedrijfsnaam of extern-id; onder de tabel staan het totaalaantal, **Rijen per pagina** en **Vorige** / **Volgende**. Klik op een rij om de detailpagina van dat contact te openen.

Als je nog geen contacten hebt, toont de lijst "Nog geen contacten" met knoppen **Nieuw contact** en **CSV importeren** om te beginnen.

### Alle contacten exporteren als CSV

Klik op **CSV exporteren** boven aan de lijst. Het bestand `customers.csv` wordt direct gedownload met al je contacten, inclusief de bedrijfsvelden; er is geen opties-dialoog.

Dit verschilt van de actie **Gegevens exporteren** per contact onder **Meer acties** op de detailpagina, die een AVG-gegevensexport voor één contact produceert (zie [Privacy en AVG](#privacy-en-avg) hieronder).

### Contacten importeren vanuit CSV

1. Klik op **CSV importeren** boven aan de lijst.
2. Kies in het dialoogvenster **Contacten importeren** een `.csv`-bestand. De knop **Importeren** blijft uitgeschakeld tot er een bestand is gekozen.
3. Klik op **Importeren**. De knop toont **Importeren...** terwijl het bestand wordt geüpload.

Het CSV-bestand moet aan deze regels voldoen:

| Vereiste | Detail |
| --- | --- |
| Verplichte kolommen | `name` |
| Optionele kolommen | `email`, `phone`, `internal_notes`, `created_at`, `kind`, `company_name`, `registration_number`, `vat_id`, `external_id` |
| Maximaal aantal rijen | 1000 |
| Maximale bestandsgrootte | 2 MB |
| Dubbele e-mailadressen | Rijen waarvan het e-mailadres al bestaat worden overgeslagen en gerapporteerd als rijfouten |
| Dubbele extern-id's | Rijen waarvan het extern-id al bestaat worden overgeslagen en gerapporteerd als rijfouten |

`email` is optioneel in het bestand juist omdat een bedrijfscontact er misschien geen heeft; wanneer een rij `kind` weglaat, valt het terug op `person`. Na de import meldt het dialoogvenster hoeveel contacten zijn geïmporteerd (bijvoorbeeld "12 contacten geïmporteerd.") en, als sommige rijen zijn mislukt, hoeveel, met een scrollbare lijst met fouten per rij ("Rij 3: ..."). De knop **Annuleren** wordt hernoemd naar **Sluiten** zodra een resultaat wordt getoond, en de contactenlijst wordt automatisch ververst na een geslaagde import.

### Contacten in bulk verwijderen

Selecteer contacten met de selectievakjes in de lijst en voer vervolgens de bulkactie **Verwijderen** uit. Er verschijnt een bevestigingsdialoog voordat er iets wordt verwijderd. Verwijderen verwijdert de contactgegevens; gebruik in plaats daarvan **Contact anonimiseren** op de detailpagina als je de persoonsgegevens van een contact moet wissen voor een AVG-verzoek.

## Een contact aanmaken

1. Klik op **Nieuw contact** in de contactenlijst.
2. Kies de soort met de schakelaar **Persoon** / **Bedrijf** en vul vervolgens het profiel in:

   | Veld | Getoond voor | Beschrijving |
   | --- | --- | --- |
   | Naam | Persoon en Bedrijf | Verplicht. Bij een bedrijfscontact is dit de persoon met wie je contact hebt (een contactpersoon), niet het bedrijf zelf. |
   | Bedrijfsnaam | Alleen Bedrijf | Verplicht voor een bedrijfscontact. |
   | Registratienummer | Alleen Bedrijf | Optioneel, bijvoorbeeld een KvK-nummer. |
   | Btw-nummer | Alleen Bedrijf | Optioneel. Spaties worden verwijderd en de waarde wordt in hoofdletters omgezet voordat er wordt gevalideerd op 4 tot 20 letters en cijfers; een landprefix is niet vereist, dus niet-EU-formaten zoals een Turks VKN worden geaccepteerd (bijvoorbeeld `NL123456789B01` of `1234567890`). |
   | Extern-id | Persoon en Bedrijf | Optioneel. Je eigen referentie voor dit contact, bijvoorbeeld een ERP-id. Moet uniek zijn. |
   | E-mail | Persoon en Bedrijf | Verplicht voor een persoonscontact; optioneel voor een bedrijfscontact. |
   | Telefoon | Persoon en Bedrijf | Optioneel. |
   | Interne notities | Persoon en Bedrijf | Optioneel. Notities die alleen je team ziet. |

3. Klik op **Contact aanmaken**. Je komt op de detailpagina van het nieuwe contact terecht.

Op deze manier aangemaakte contacten hebben geen wachtwoord; de pagina vermeldt "Aangemaakt zonder wachtwoord; het contact kan er later via de storefront een instellen." Validatieproblemen (bijvoorbeeld een e-mailadres dat al in gebruik is) verschijnen onder het betreffende veld.

## Contactdetail

Klik op een contact in de lijst om de detailpagina te openen. De header bovenaan toont **Contacten** (terug naar de lijst), en daarna de weergavenaam van het contact (bedrijfsnaam wanneer die er is) met een neutrale **Gast**-badge wanneer het contact een gast is en de B2B-statusbadge (zie [B2B-goedkeuring](#b2b-account-goedkeuren-of-afwijzen)). Onder de naam staan het e-mailadres als klikbare mail-link en het telefoonnummer als klikbare belllink, indien aanwezig. Op een breed scherm blijft de header in beeld terwijl je scrolt. Rechts staan **Goedkeuren** zolang een B2B-aanvraag in afwachting is, en **Meer acties** (de knop **⋯**) met **Gegevens exporteren**, **Afwijzen** (alleen bij B2B-aanvragen in afwachting) en **Contact anonimiseren**.

Onder de header bevat de hoofdkolom de kaarten Profiel, eigen velden, Adressen, Bestellingen en (met de module Formulieren) Inzendingen. De kaarten Account en Interne notities staan op een breed scherm ernaast en op een smal scherm eronder.

### Accounttype en groep

De Account-kaart heeft twee selects:

- **Type**: B2C of B2B.
- **Groep**: **Geen groep** of een van je contactgroepen.

Beide worden direct opgeslagen zodra je ze wijzigt; er is geen opslaan-knop op deze kaart. Als de server de wijziging weigert, valt de select terug op de laatst opgeslagen waarde.

### B2B-account goedkeuren of afwijzen

De B2B-status van een contact staat als badge naast de naam (een contact met status **Niet van toepassing** toont geen badge):

| Status | Betekenis |
| --- | --- |
| Niet van toepassing | Het contact is geen B2B-account. |
| In afwachting van goedkeuring | Het contact heeft een B2B-account aangevraagd en wacht op je beslissing. |
| Goedgekeurd | Je hebt het B2B-account goedgekeurd. |
| Afgewezen | Je hebt de B2B-aanvraag afgewezen. |

Wanneer het type van een contact B2B is en de status **In afwachting van goedkeuring** is, biedt de header twee acties:

- **Goedkeuren**, de hoofdknop: bevestigt met "Dit B2B-account goedkeuren?" en markeert het contact als een goedgekeurd B2B-contact.
- **Afwijzen** (destructief, onder **Meer acties**): bevestigt met "Dit B2B-account afwijzen?" en markeert het contact als een afgewezen B2B-aanvrager.

Deze acties bestaan alleen zolang de status in afwachting is. Zodra je goedkeurt of afwijst, is er geen knop om de beslissing terug te draaien, dus beslis zorgvuldig.

### Het profiel bewerken

Met de Profiel-kaart bewerk je dezelfde velden als bij het aanmaken: **Naam**, de schakelaar **Persoon** / **Bedrijf** met de bijbehorende bedrijfsvelden (**Bedrijfsnaam**, **Registratienummer**, **Btw-nummer**), **Extern-id**, **E-mail** en **Telefoon**. Naam is altijd verplicht; Bedrijfsnaam is alleen verplicht wanneer de soort Bedrijf is. E-mail is optioneel voor elk contact dat je hier aanmaakt: alleen een contact dat zich via de storefront registreert moet er een hebben. In tegenstelling tot de Account-kaart worden deze velden niet automatisch opgeslagen: klik op **Wijzigingen opslaan**. De knop toont **Opslaan...** terwijl de update loopt en kort daarna een bevestiging "Opgeslagen." Validatiefouten verschijnen onder het betreffende veld.

### Interne notities

De kaart Interne notities bevat vrije tekst met de placeholder "Notities alleen zichtbaar voor je team". Klik op **Notities opslaan** om ze te bewaren. Deze notities worden nooit aan het contact getoond, maar ze zijn wel opgenomen in de AVG-gegevensexport van het contact, dus houd ze professioneel.

### Adressen

De Adressen-kaart toont de opgeslagen adressen van het contact, alleen-lezen: elk toont een badge met het adrestype (`shipping`, `billing` of `work`), een **standaard**-badge op het standaardadres, een optioneel label, en de naam, straat, postcode, plaats en land. Contacten beheren hun eigen adressen via de storefront; je kunt ze hier niet bewerken. Als er geen zijn, toont de kaart "Geen opgeslagen adressen."

Het adrestype **work** dekt een zakelijke locatie die losstaat van waar facturen naartoe gaan (`billing`) of waar goederen naartoe worden verzonden (`shipping`), bijvoorbeeld het kantoor of de projectlocatie van een bedrijfscontact.

### Bestelgeschiedenis

De Bestellingen-kaart toont de meest recente bestellingen van het contact, tot 50, met kolommen:

| Kolom | Beschrijving |
| --- | --- |
| Nummer | Het bestelnummer, weergegeven als `#1024`. Linkt naar de bestelling. |
| Status | De status van de bestelling. Hier weergegeven als de ruwe statuswaarde (bijvoorbeeld `pending`), niet de gekleurde badge die in de bestellingenmodule wordt gebruikt. |
| Geplaatst | De besteldatum. Verborgen op smalle schermen. |
| Totaal | Het bestelbedrag. |

Klik op een rij om de bestelling te openen in de Commerce-module. Als de Commerce-module niet is ingeschakeld voor je winkel, toont de kaart in plaats daarvan "Commerce is not enabled."; zonder bestellingen toont het "No orders yet."

### Formulierinzendingen

Als de module Formulieren is ingeschakeld, heeft de contactpagina een kaart **Inzendingen** met de formulierinzendingen die aan dit contact zijn gekoppeld: **Nummer**, **Formulier**, **Status** en **Ontvangen**. Klik op een rij om de inzending in de inbox te openen; zonder inzendingen staat er "Geen formulierinzendingen van dit contact." Inzendingen worden automatisch gekoppeld als het e-mailadres van de bezoeker overeenkomt met precies één contact, of met de hand vanuit de inzending (zie [Inbox](/nl/docs/forms/inbox#koppelen-aan-een-contact)).

## Privacy en AVG

Gegevensbeschermingsverzoeken handel je af via **Meer acties** (de knop **⋯**) in de header van de detailpagina van het contact.

### De gegevens van een contact exporteren

Kies **Gegevens exporteren** om alles wat over het contact is opgeslagen, inclusief de bedrijfsvelden, te downloaden als een JSON-bestand (`customer-{id}.json`). Het menu-item toont **Exporteren...** terwijl het bestand wordt voorbereid. Gebruik dit om een inzageverzoek te beantwoorden.

### Een contact anonimiseren

Kies de destructieve actie **Contact anonimiseren** om een verzoek tot gegevenswissing af te handelen. Het bevestigingsdialoogvenster "Dit contact anonimiseren?" waarschuwt je wat er gebeurt:

- Naam, e-mail, telefoon, interne notities, bedrijfsnaam, registratienummer, btw-nummer en extern-id worden gewist.
- Opgeslagen adressen worden permanent verwijderd.
- Actieve storefront-inlogsessies worden ingetrokken.
- Het record wordt uit je contactenlijst verwijderd.

Dit kan niet ongedaan worden gemaakt. Bevestig met **Permanent anonimiseren**; je wordt daarna teruggebracht naar de contactenlijst.

## Contactgroepen

Met groepen pas je gedeelde prijzen, kortingen en checkoutregels toe op een set contacten, persoon of bedrijf. Open **Groepen** in de zijbalk Contacten. De lijst toont van elke groep de **Naam** (sorteerbaar), **Slug** en **Status**-badge (**Actief** / **Inactief**), met een zoekveld erboven. Er is geen groepsdetailpagina: alles gebeurt in een dialoogvenster op deze pagina.

Gebruik de **Groep**-select op de detailpagina van dat contact om een contact aan een groep toe te wijzen.

### Een groep aanmaken of bewerken

1. Klik op **Nieuwe groep** (of **Bewerken** in het **⋯**-menu van een bestaande rij).
2. Vul het dialoogvenster in:

   | Veld | Beschrijving |
   | --- | --- |
   | Naam | Verplicht; de opslaan-knop blijft uitgeschakeld zolang dit leeg is. |
   | Slug | Automatisch gegenereerd op basis van de naam totdat je hem handmatig bewerkt. Laat leeg om de server er een te laten afleiden. |
   | Omschrijving | Optioneel. |
   | Prijsaanpassing | Een percentage van `-100` tot `999,99`. Negatief = korting, positief = toeslag. Toegepast op alle catalogusprijzen voor leden. |
   | Override winkelwagenidentiteitsmodus | **Overnemen van winkelwagen-instellingen**, **Gastcheckout toegestaan**, **Inloggen vereist**, of **Alleen gast**. Overschrijft je winkelbrede winkelwagenidentiteitsinstelling voor leden van deze groep. |
   | Altijd een offerte vereisen | Alleen zichtbaar als de module Verkoop is ingeschakeld, omdat de offerteflow bij Verkoop hoort. Wanneer aan, doorlopen leden van deze groep altijd de offerteflow, ongeacht winkelwagendrempels. Het werkt alleen zolang offerteaanvragen aan staan onder [Verkoop → Instellingen → Offertes](/nl/docs/sales/settings#offerteaanvragen). |

3. Klik op **Wijzigingen opslaan**.

De kolom **Status** toont of een groep Actief of Inactief is, maar er is geen bediening op deze pagina om dit te wijzigen.

### Een groep verwijderen

Open het **⋯**-menu van de groep, kies **Verwijderen** en bevestig in het dialoogvenster "Deze groep verwijderen?" Een groep met nog leden kan niet worden verwijderd: het dashboard toont een foutmelding zoals "Customer group has 2 member(s). Reassign them first." Verplaats die contacten eerst naar een andere groep (of **Geen groep**) op hun detailpagina's.
