---
title: "Klienci"
description: "Wyszukuj i twórz klientów z zaufanych integracji serwerowych."
canonical_url: "https://requiply.com/docs/pl/developers/typescript-sdk/clients"
---
# Klienci

> Wyszukuj i twórz klientów z zaufanych integracji serwerowych.

Zasoby klientów zawierają dane klientów i wymagają klucza tajnego w zaufanym kodzie na serwerze.

## `clients.lookup()`

```ts
clients.lookup(
  input: ClientLookupInput,
  options?: RequiplyRequestOptions,
): Promise<ClientLookupResponse>
```

Przekaż `email`, `phone` lub `search`. Wymagany jest co najmniej jeden z tych parametrów. Metoda działa w dwóch trybach:

<table>
<thead>
  <tr>
    <th>
      Dane wejściowe
    </th>
    
    <th>
      Tryb
    </th>
    
    <th>
      Odpowiedź
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        email
      </code>
      
       i/lub <code>
        phone
      </code>
    </td>
    
    <td>
      Dokładne dopasowanie, z uwzględnieniem wielkości liter. Gdy podasz oba, klient musi mieć oba.
    </td>
    
    <td>
      <code>
        client
      </code>
      
       to pasujący klient albo <code>
        null
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        search
      </code>
    </td>
    
    <td>
      Wyszukiwanie przybliżone po imieniu, nazwisku, adresie e-mail i telefonie.
    </td>
    
    <td>
      <code>
        client
      </code>
      
       ma wartość <code>
        null
      </code>
      
      , a <code>
        matches
      </code>
      
       wymienia do 10 klientów.
    </td>
  </tr>
</tbody>
</table>

```ts
const { client } = await requiply.clients.lookup({ email: 'customer@example.com' });

const { matches } = await requiply.clients.lookup({ search: 'Olena Koval' });
```

`search` dzieli tekst na słowa (do czterech), a klient pasuje, gdy każde słowo występuje gdzieś w jego imieniu, nazwisku, adresie e-mail lub telefonie. Imiona ukraińskie są sprawdzane także w drugim alfabecie, więc `Olena` znajduje *Олена*, a `Галина` znajduje *Halyna*.

Każdy klient ma `id`, `name`, `lastName`, `email`, `phone` i `discountPercentage` (`0` bez rabatu). Imię, nazwisko, e-mail i telefon mogą mieć wartość `null`.

## `clients.create()`

```ts
clients.create(
  input: ClientCreateInput,
  options?: RequiplyRequestOptions,
): Promise<ClientCreateResponse>
```

Dane wejściowe przyjmują opcjonalne pola `name`, `lastName`, `email` i `phone`. Wymagane jest co najmniej jedno z pól `email` lub `phone`.

```ts
const { client, created } = await requiply.clients.create({
  name: 'Alex',
  lastName: 'Morgan',
  email: 'alex@example.com',
  phone: '+380951234567',
});
```

<warning>

**phone musi być w międzynarodowym formacie E.164:** z `+` na początku, kodem kraju i łącznie od 7 do 15 cyfr, na przykład `+380951234567`. Numer w formacie krajowym jest odrzucany z kodem `400` i komunikatem *„Phone must be in international E.164 format with a country code, e.g. +380951234567”*. Ta sama zasada dotyczy formularzy klientów w aplikacji i asystentów AI tworzących klientów.

</warning>

Odpowiedź zwraca klienta i `created`. `clients.create()` zabezpiecza przed duplikatami: gdy klient z tym adresem e-mail, a w drugiej kolejności z tym telefonem, już istnieje, dostajesz z powrotem tego klienta z `created: false` zamiast drugiego rekordu.


## Sitemap

See the full [sitemap](https://requiply.com/docs/sitemap.md) for all pages.
