> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# Supabase

Twój recepcjonista może zapisywać dane z rozmowy do tabeli Supabase i wyszukiwać dzwoniącego po numerze telefonu przez REST API Supabase. Poniższa konfiguracja używa publicznego klucza projektu z zabezpieczeniami na poziomie wierszy, więc recepcjonista może robić tylko to, na co zezwolisz.

> **Warning**
>
> Nigdy nie umieszczaj klucza `service_role` ani tajnego klucza w narzędziu webhook. Te klucze omijają zabezpieczenia na poziomie wierszy
> i dają pełny dostęp do bazy danych.

## Zanim zaczniesz

W panelu Supabase otwórz **Project Settings** → **API Keys** i skopiuj klucz **publishable** albo starszy klucz **anon**. URL projektu to `https://PROJECT_REF.supabase.co`.

## Przygotuj bazę danych

Uruchom to w **SQL Editor**. Utworzy tabelę, do której recepcjonista może tylko dodawać wpisy, oraz funkcję zwracającą jednego klienta na podstawie dokładnego numeru telefonu. Funkcja zakłada, że istnieje tabela `customers` z kolumnami `name`, `plan`, `notes` i `phone`, więc dostosuj nazwy do swojego schematu.

Dzwoniący nie mogą użyć funkcji do wyświetlenia listy klientów: nie zwraca ona nic, jeśli nie jest znany dokładny numer telefonu.

```sql
create table callback_requests (
  id bigint generated always as identity primary key,
  created_at timestamptz not null default now(),
  caller_name text not null,
  phone text not null,
  reason text not null
);

alter table callback_requests enable row level security;

create policy "Receptionist can add callback requests"
  on callback_requests for insert to anon
  with check (true);

create function find_customer_by_phone(phone text)
returns table (name text, plan text, notes text)
language sql stable security definer set search_path = public
as $$
  select c.name, c.plan, c.notes from customers c where c.phone = find_customer_by_phone.phone limit 1;
$$;

revoke execute on function find_customer_by_phone from public;
grant execute on function find_customer_by_phone to anon;
```

## Utwórz narzędzia

Dla obu narzędzi przejdź do **Integrations**, wybierz **Add integration**, wybierz **Webhook Tool** i dodaj te nagłówki żądania:

| Nagłówek        | Wartość                                                      |
| --------------- | ------------------------------------------------------------ |
| `apikey`        | Twój klucz publishable lub anon                              |
| `Authorization` | `Bearer `, a potem klucz anon. Pomiń dla klucza publishable. |

### Zapisz prośbę o oddzwonienie

| Pole                    | Wartość                                                                   |
| ----------------------- | ------------------------------------------------------------------------- |
| **Nazwa**               | `save_callback_request`                                                   |
| **Opis**                | "Zapisz prośbę o oddzwonienie, gdy obiecasz dzwoniącemu kontakt zwrotny." |
| **Metoda**              | POST                                                                      |
| **URL**                 | `https://PROJECT_REF.supabase.co/rest/v1/callback_requests`               |
| **Parametry body**      | `caller_name`, `phone` i `reason` (wszystkie string, wymagane)            |
| **Przypisz do agentów** | **Recepcjonista**                                                         |

### Wyszukaj klienta

| Pole                    | Wartość                                                                                              |
| ----------------------- | ---------------------------------------------------------------------------------------------------- |
| **Nazwa**               | `find_customer`                                                                                      |
| **Opis**                | "Wyszukaj konto dzwoniącego po numerze telefonu. Użyj, gdy dzwoniący pyta o swój plan lub konto."    |
| **Metoda**              | POST                                                                                                 |
| **URL**                 | `https://PROJECT_REF.supabase.co/rest/v1/rpc/find_customer_by_phone`                                 |
| **Parametry body**      | `phone` (string, wymagane): "Numer telefonu dzwoniącego w formacie E.164, na przykład +14155550123." |
| **Przypisz do agentów** | **Recepcjonista**                                                                                    |

Wybierz **Enable** dla każdego narzędzia, a potem [przetestuj recepcjonistę](/docs/pl/reception-ai/receptionist/testing) za pomocą prośby o oddzwonienie. Wiersz pojawi się w **Table Editor**.

## Rozwiązywanie problemów

| Problem                                      | Co sprawdzić                                                                       |
| -------------------------------------------- | ---------------------------------------------------------------------------------- |
| `new row violates row-level security policy` | Polityka dodawania musi dotyczyć roli `anon`.                                      |
| `Could not find the function`                | Parametr body musi nazywać się dokładnie tak jak argument funkcji, tutaj `phone`.  |
| 401 `Invalid API key`                        | W przypadku klucza publishable usuń nagłówek `Authorization`.                      |
| Nie znaleziono klientów                      | Zapisuj numery telefonów w formacie E.164, takim samym, jaki wysyła recepcjonista. |