Zur Navigation springen

Supabase

Speichern Sie Datensätze in Ihrer Supabase-Datenbank und suchen Sie sie mit Webhook-Tools.

Ihr Empfangsassistent kann Details aus einem Anruf in einer Supabase-Tabelle speichern und über die REST API von Supabase nach einem Anrufenden anhand seiner Telefonnummer suchen. Die folgende Einrichtung verwendet den öffentlichen Schlüssel Ihres Projekts mit Row-Level Security, sodass der Empfangsassistent nur das tun kann, was Sie erlauben.

Fügen Sie niemals den Schlüssel service_role oder einen geheimen Schlüssel in ein Webhook-Tool ein. Diese Schlüssel umgehen Row-Level Security und gewähren vollen Zugriff auf Ihre Datenbank.

Bevor Sie beginnen

Öffnen Sie im Supabase-Dashboard Project Settings → API Keys und kopieren Sie den Schlüssel publishable oder den älteren Schlüssel anon. Ihre Projekt-URL lautet https://PROJECT_REF.supabase.co.

Datenbank vorbereiten

Führen Sie dies im SQL Editor aus. Es erstellt eine Tabelle, in die Ihr Empfangsassistent nur Daten einfügen kann, sowie eine Funktion, die einen Kunden anhand der exakten Telefonnummer zurückgibt. Die Funktion setzt eine bestehende Tabelle customers mit den Spalten name, plan, notes und phone voraus. Passen Sie die Namen daher an Ihr Schema an.

Anrufende können die Funktion nicht verwenden, um Kunden aufzulisten: Sie gibt nichts zurück, wenn die exakte Telefonnummer nicht bekannt ist.

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;

Tools erstellen

Gehen Sie für beide Tools zu Integrationen, wählen Sie Integration hinzufügen, dann Webhook-Tool, und fügen Sie diese Request Headers hinzu:

HeaderWert
apikeyIhr veröffentlichbarer oder anon-Schlüssel
AuthorizationBearer gefolgt vom anon-Schlüssel. Bei einem veröffentlichbaren Schlüssel weglassen.

Rückrufanfrage speichern

FeldWert
Namesave_callback_request
Beschreibung”Speichere eine Rückrufanfrage, wenn du dem Anrufenden eine Nachfassaktion zusagst.”
MethodePOST
URLhttps://PROJECT_REF.supabase.co/rest/v1/callback_requests
Body Parameterscaller_name, phone und reason (alle Strings, erforderlich)
Agenten zuweisenReceptionist

Kunden suchen

FeldWert
Namefind_customer
Beschreibung”Suche das Konto des Anrufenden anhand der Telefonnummer. Verwende dies, wenn ein Anrufender nach seinem Tarif oder Konto fragt.”
MethodePOST
URLhttps://PROJECT_REF.supabase.co/rest/v1/rpc/find_customer_by_phone
Body Parametersphone (String, erforderlich): “Die Telefonnummer des Anrufenden im E.164-Format, zum Beispiel +14155550123.”
Agenten zuweisenReceptionist

Wählen Sie bei jedem Tool Aktivieren und testen Sie Ihren Empfangsassistenten mit einer Rückrufanfrage. Die Zeile erscheint im Table Editor.

Fehlerbehebung

ProblemPrüfen Sie
new row violates row-level security policyDie Einfüge-Richtlinie muss auf die Rolle anon ausgerichtet sein.
Could not find the functionDer Body-Parameter muss exakt wie das Funktionsargument heißen, hier phone.
401 Invalid API keyEntfernen Sie bei einem veröffentlichbaren Schlüssel den Header Authorization.
Kunden werden nicht gefundenSpeichern Sie Telefonnummern im E.164-Format, also im selben Format, das Ihr Empfangsassistent sendet.