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

# Asiakasprofiili

> Kattava tietue yksityis- tai yritysasiakkaasta: yhteystiedot, tilaushistoria ja asetukset.

<Frame caption="Asiakkaat > [Asiakas] > Yleiset">
  <img src="https://mintcdn.com/twicecommerce/Ab7tx7ih94KQsi0k/images/customer-general-tab.webp?fit=max&auto=format&n=Ab7tx7ih94KQsi0k&q=85&s=1c68dbe7173b85f8bc139897bcb7ef84" alt="Asiakkaan yleiset profiilitiedot hallinnassa" width="1920" height="1080" data-path="images/customer-general-tab.webp" />
</Frame>

## Määritelmä

<Snippet file="definitions/fi/customer-profile-definition.mdx" />

Asiakasprofiili on se yksi tietue, jolla TWICE tunnistaa jokaisen liiketapahtuman toisen osapuolen — henkilön tai yrityksen. Profiiliin viittaavat tilaukset, varaukset, liitetyt dokumentit, asiakkaan hallussa parhaillaan olevat varastoartikkelit sekä tunnisteet, jotka ohjaavat segmentointia hinnoittelussa, julkaisussa ja raportoinnissa.

## Missä sitä käytetään?

* Asiakkaan haku, kun tilaus luodaan hallinnassa
* Asiakkuuden elinkaariarvon, toistuvan vuokraustiheyden ja viimeisimmän ostopäivän seuranta
* Allekirjoitettujen sopimusten, henkilöllisyystodistusten ja vakuutustodistusten liittäminen henkilöön
* Tunnisteisiin perustuvan pääsyn myöntäminen vain henkilökunnalle tai jäsenille tarkoitettuihin listauksiin
* Asiakasraporttien ja vientien suodattaminen
* GDPR:n mukaisiin tietopyyntöihin ja poistopyyntöihin vastaaminen
* API-integraatioiden rakentaminen, kun ne hakevat tai luovat asiakkaita

## Keskeiset ominaisuudet

### Henkilöllisyys ja yhteystiedot

| Ominaisuus                  | Tyyppi    | Kuvaus                                                                                                                                                                                                                                                                                                                                                         |
| :-------------------------- | :-------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`                        | String    | Yksilöivä tunnus (`cust_*`)                                                                                                                                                                                                                                                                                                                                    |
| `createdAt`                 | Timestamp | Milloin profiili luotiin                                                                                                                                                                                                                                                                                                                                       |
| `firstName`                 | String    | Etunimi (pakollinen)                                                                                                                                                                                                                                                                                                                                           |
| `lastName`                  | String    | Sukunimi                                                                                                                                                                                                                                                                                                                                                       |
| `email`                     | String    | Ensisijainen sähköposti — API:ssa valinnainen, hallinnassa usein pakollinen. Tallennetaan pienaakkosina.                                                                                                                                                                                                                                                       |
| `phone`                     | String    | Puhelinnumero                                                                                                                                                                                                                                                                                                                                                  |
| `customerType`              | Enum      | `individual` (oletus) tai `business`. Yritysasiakkailla on käytössä lisäkenttiä.                                                                                                                                                                                                                                                                               |
| `companyName`               | String    | Yrityksen nimi (yritysasiakkaat)                                                                                                                                                                                                                                                                                                                               |
| `taxId`                     | String    | Y-tunnus tai ALV-numero (yritysasiakkaat)                                                                                                                                                                                                                                                                                                                      |
| `dateOfBirth`               | Date      | Syntymäaika (`YYYY-MM-DD`)                                                                                                                                                                                                                                                                                                                                     |
| `language`                  | String    | Ensisijainen viestintäkieli                                                                                                                                                                                                                                                                                                                                    |
| `marketingConsent`          | Boolean   | Onko asiakas antanut markkinointiluvan                                                                                                                                                                                                                                                                                                                         |
| `marketingConsentUpdatedAt` | Timestamp | Milloin `marketingConsent` viimeksi muuttui                                                                                                                                                                                                                                                                                                                    |
| `status`                    | Enum      | `active` (oletus) tai `archived`. Johdetaan siitä, onko asiakas arkistoitu — status muuttuu arkistoimalla tai palauttamalla tietue, ei kenttää asettamalla. Arkistoidut asiakkaat säilyvät järjestelmässä, mutta jäävät pois oletuslistauksista ja kohdistuksista. Katso [Arkistointi ja poistaminen](/docs/fi/concepts/repeating-patterns/archiving-and-deletion). |

Useimmat näistä vakiokentistä voidaan kerätä asiakkaalta myös verkkokaupan kassalla. Lisää ne Yhteystiedot-vaiheeseen [asiakasprofiilin kenttinä](/docs/fi/settings/checkouts/steps), jolloin annetut arvot tallentuvat asiakastietueelle tilauksen mukana.

### Osoite ja kielialue

Jokaisella asiakkaalla voi olla erillinen **laskutusosoite** ja **toimitusosoite**. Niitä käytetään keräilyssä, laskutuksessa sekä kielialuekohtaisten sähköpostien ja dokumenttien muodostuksessa.

### Koostetiedot

Asiakkaiden API-vastaukset sisältävät `aggregateData`-objektin, joka kuvaa sitä asiakasjoukkoa, josta tietue haettiin:

| Ominaisuus    | Tyyppi             | Kuvaus                                                           |
| :------------ | :----------------- | :--------------------------------------------------------------- |
| `totalCount`  | Integer            | Kyselyä vastaavien asiakastietueiden kokonaismäärä               |
| `lastCreated` | Timestamp tai null | Milloin viimeisin kyselyä vastaava asiakastietue luotiin         |
| `lastUpdated` | Timestamp tai null | Milloin kyselyä vastaavaa asiakastietuetta viimeksi päivitettiin |

Tilaushistoriaa ei tallenneta välimuistiin profiiliin. Tilaukset-välilehti ja raportit lukevat sen suoraan asiakkaan tilauksista.

### Attribuutit

Kauppiaan itse määrittelemiä kenttiä yllä lueteltujen vakiokenttien lisäksi. Attribuutit ryhmitellään **attribuuttiryhmiin**, jotka määritetään kohdassa **Asetukset → Attribuutit**. Näin voit tallentaa esimerkiksi kanta-asiakastason, sertifiointitilanteen, ruokavaliorajoitteet, ajokortin numeron tai minkä tahansa muun toimialakohtaisen tiedon. Jokaisella attribuutilla on muoto (teksti, numero, totuusarvo, päivämäärä, valinta tai monivalinta), ja se tallentaa asiakkaalle tyypitetyn arvon.

<Note>Attribuutit ovat eri asia kuin profiilikentät. Vakiokentät kuten `companyName`, `taxId` ja `dateOfBirth` ovat profiilikenttiä — ne näkyvät Yleiset-välilehdellä. Attribuutit näkyvät Attribuutit-välilehdellä ja määritetään asetuksissa.</Note>

### Tunnisteet

Tasarakenteinen lista nimilappuja (`vip`, `wholesale`, `staff`, `corporate-account-acme`), joka ohjaa segmentointia koko alustalla. Jokainen tunniste on `{ value, scope }` -pari — asiakastunnisteilla on `scope: "customers"`. Tunnisteet lisätään käsin hallinnassa tai API:n kautta. Koko segmentointimalli on kuvattu sivulla [Asiakasryhmät](/docs/fi/concepts/customers/customer-groups).

### Dokumentit

Asiakkaaseen liitetyt tiedostot — allekirjoitetut sopimukset, henkilöllisyystodistukset, vakuutustodistukset, vastuuvapautukset. Jokaisella dokumentilla on järjestysnumero ja valinnainen kommentti, ja siihen viitataan `fileId`-kentällä, joten se voidaan liittää myös tiettyyn tilaukseen. Hyödyllinen tunnistautumisessa, vastuuvapautuksissa ja jäljitettävyydessä.

## Profiilin välilehdet

Asiakkaan tarkastelusivu jakautuu välilehtiin, jotka vastaavat asiakastietueeseen liitettyä dataa:

<AccordionGroup>
  <Accordion title="Yleiset">
    Vakiokentät — nimi, sähköposti, puhelin, syntymäaika, asiakastyyppi (yksityis- tai yritysasiakas), yrityksen nimi, Y-tunnus, viestintäkieli, markkinointilupa, laskutusosoite ja toimitusosoite. Myös tilin status (active / archived) asetetaan täällä. Tunnisteet ovat tämän välilehden sivupalkin kortissa.
  </Accordion>

  <Accordion title="Attribuutit">
    Kauppiaan määrittelemät omat kentät vakiokenttien lisäksi. Ryhmitelty attribuuttiryhmittäin, määritetään asetuksissa.
  </Accordion>

  <Accordion title="Dokumentit">
    Asiakkaaseen liitetyt tiedostot. Dokumentti voidaan rajata myös tiettyyn tilaukseen.
  </Accordion>

  <Accordion title="Tilaukset">
    Kaikki asiakkaan tekemät tilaukset tilaustyypistä riippumatta. Pääset tilauksen tarkastelusivulle napsauttamalla tilausnumeroa.
  </Accordion>

  <Accordion title="Listaukset">
    [Listaukset](/docs/fi/concepts/catalog/listings), joiden kanssa asiakas on ollut tekemisissä, sekä niihin liittyvä tilaus ja alkupäivä. Hyödyllinen toistuvien vuokrausten tunnistamiseen artikkelikohtaisesti.
  </Accordion>

  <Accordion title="Varastoartikkelit">
    [Varastoartikkelit](/docs/fi/concepts/inventory/stock-item-state), jotka on tällä hetkellä kytketty asiakkaaseen — tyypillisesti vuokralla olevat artikkelit. Kullakin rivillä näkyy noutopäivä ja tilausnumero, joka sitoi artikkelin.
  </Accordion>

  <Accordion title="Tapahtumaloki">
    Tähän asiakastietueeseen rajattu kirjoitustapahtumien jäljitysketju. Samat sarakkeet kuin yleisessä [tapahtumalokissa](/docs/fi/concepts/admin/activity-logs) — aikaleima, toiminto, resurssityyppi, tekijä, päätepiste, status.
  </Accordion>
</AccordionGroup>

## Suhteet

* **Tilaukset** — jokaisella tilauksella on `customerId`. Asiakkaan profiili koostaa summat näistä.
* **Varastoartikkelit** — vuokralla olevat artikkelit seuraavat vuokraavaa asiakasta koko vuokra-ajan.
* **Dokumentit** — tiedostot voidaan rajata asiakkaaseen tai tiettyyn tilaukseen.
* **Tunnisteet** — ohjaavat julkaisunäkyvyyttä, kohdennettuja alennuskoodeja ja segmenttiraportointia. Katso [Asiakasryhmät](/docs/fi/concepts/customers/customer-groups).
* **Attribuutit** — kauppiaan määrittelemät omat kentät, jotka laajentavat asiakastietuetta vakiokenttien ulkopuolelle.
* **Kanava** — jokainen tilaus tallentaa kanavan, jonka kautta se tuli (`admin`, `api` tai `online`). Hyödyllinen hankintalähteen analysointiin.

## Elinkaari

### Luonti

Asiakkaita voi luoda usealla tavalla:

| Lähde                  | Milloin                                                                     |
| :--------------------- | :-------------------------------------------------------------------------- |
| **Hallinta**           | Työntekijä kirjaa tiedot tilausta luodessaan tai suoraan asiakastaulukosta. |
| **Verkkokaupan kassa** | Asiakas täyttää tietonsa verkkokaupassa ja tekee tilauksen.                 |
| **API**                | Kauppiaan integraatio luo asiakkaan julkisen API:n kautta.                  |

Jos olemassa oleva asiakas täsmää sähköpostin tai puhelinnumeron perusteella, TWICE liittää uuden tilauksen olemassa olevaan profiiliin sen sijaan, että loisi kaksoiskappaleen.

### Päivitykset ja yhdistäminen

* Profiilikenttiä voi muokata hallinnassa tai API:n kautta. Muokkaukset kirjataan tapahtumalokiin.
* Profiilin tilaushistoria luetaan suoraan asiakkaan tilauksista — päivitettävää asiakaskohtaista välimuistia ei ole.
* Päällekkäiset profiilit voi yhdistää asiakastaulukosta — molempien tietueiden tilaushistoria, dokumentit ja tunnisteet siirtyvät säilyvään profiiliin.

### GDPR ja tietojen säilytys

* **Tietopyyntö**: jokainen asiakastietueen kenttä on saatavilla API:n kautta rekisteröidyn tarkastuspyyntöjä varten.
* **Poisto**: asiakkaita voi poistaa hallinnasta tai API:n kautta. TWICE säilyttää tilaustason tietueet (kirjanpito ja arvonlisävero vaativat sen), mutta poistaa tunnistettavat henkilötiedot poistetun asiakkaan profiilista.
* **Markkinointilupa**: seurataan erikseen `marketingConsent`-kentässä, ja kaikki sisäänrakennetut sähköpostiprosessit noudattavat sitä. Verkkokaupan lomakkeissa on tähän kenttään kytketty suostumusvalinta.
* **Tapahtumaloki**: tarjoaa jäljitysketjun siitä, kuka on käyttänyt tai muuttanut tietuetta.

## Usein kysytyt kysymykset

<AccordionGroup>
  <Accordion title="Mitä eroa on attribuuteilla ja tunnisteilla?">
    **Attribuutit** ovat kauppiaan määrittelemiä omia kenttiä, joilla on avain ja tyypitetty arvo — hyödyllisiä kanta-asiakastasoille, sertifiointitilanteelle tai ruokavaliorajoitteille. **Tunnisteet** ovat tasarakenteisia nimilappuja segmentointiin. Käytä attribuutteja, kun tarvitset itse arvon; käytä tunnisteita, kun haluat ryhmitellä asiakkaita.
  </Accordion>

  <Accordion title="Voiko asiakkaalla olla useita osoitteita?">
    Kyllä. Osoiterakenne tukee erillistä laskutus- ja toimitusosoitetta, ja lisäosoitteita voi tallentaa attribuutteina yrityskohtaisia tapauksia varten.
  </Accordion>

  <Accordion title="Miten vältän päällekkäiset asiakkaat?">
    TWICE vertaa sähköpostia ja puhelinnumeroa tilausta luotaessa. Jos molemmat kentät ovat tyhjiä uudella paikan päällä asioivalla asiakkaalla, syntyy helposti kaksoiskappale. Yhdistä tietueet asiakastaulukon yhdistämistyökalulla.
  </Accordion>

  <Accordion title="Häviävätkö poistetut asiakkaat todella?">
    Heidän henkilötietonsa poistetaan, mutta tilaukset, maksut ja kirjanpitotiedot säilyvät. Näiden tilausten linkki asiakasprofiiliin katkeaa.
  </Accordion>

  <Accordion title="Tallennetaanko tilaushistoria välimuistiin profiiliin?">
    Ei. Tilaukset-välilehti ja elinkaarimittarit lukevat tiedot suoraan asiakkaan tilauksista. API-vastausten `aggregateData`-objekti kuvaa itse asiakasjoukkoa (`totalCount`, `lastCreated`, `lastUpdated`), ei tilaushistoriaa.
  </Accordion>
</AccordionGroup>

## Kehittäjän viitetiedot

Asiakkaat ovat API:ssa `customers`-resurssi.

<Card title="API: Customers" icon="code" href="https://server.twicecommerce.com/api/internal">
  Avaa päätepiste API-viitteessä.
</Card>

## Aiheeseen liittyvät

<CardGroup cols={2}>
  <Card title="Asiakasryhmät" icon="user-group" href="/docs/fi/concepts/customers/customer-groups">
    Segmentoi asiakkaat tunnisteilla.
  </Card>

  <Card title="Tilauksen elinkaari" icon="rotate" href="/docs/fi/concepts/orders/order-lifecycle">
    Tilaukset, joista tähän asiakkaaseen viitataan.
  </Card>

  <Card title="Hintataulukot" icon="table" href="/docs/fi/concepts/catalog/price-tables">
    Listauksiin sovellettavat uudelleenkäytettävät hinnoittelurakenteet (eivät asiakaskohtaisia).
  </Card>

  <Card title="Tapahtumaloki" icon="clock-rotate-left" href="/docs/fi/concepts/admin/activity-logs">
    Asiakastietueen muokkausten jäljitysketju.
  </Card>

  <Card title="Kassan vaiheet ja osiot" icon="list-check" href="/docs/fi/settings/checkouts/steps">
    Kerää profiilikentät asiakkaalta kassalla.
  </Card>
</CardGroup>
