Skip to navigation

Supabase

Sla records op in je Supabase-database en zoek ze op met webhooktools.

Je receptionist kan gegevens uit een gesprek opslaan in een Supabase-tabel en een beller op telefoonnummer opzoeken via de REST API van Supabase. De onderstaande configuratie gebruikt de openbare sleutel van je project met row-level security, zodat de receptionist alleen kan doen wat jij toestaat.

Plaats nooit de sleutel service_role of de geheime sleutel in een webhooktool. Deze sleutels omzeilen row-level security en geven volledige toegang tot je database.

Voordat je begint

Open in het Supabase-dashboard Project Settings → API Keys en kopieer de sleutel publishable of de verouderde sleutel anon. Je project-URL is https://PROJECT_REF.supabase.co.

Bereid de database voor

Voer dit uit in de SQL Editor. Hiermee maak je een tabel waarin je receptionist alleen kan invoegen, en een functie die één klant retourneert op basis van een exact telefoonnummer. De functie gaat uit van een bestaande tabel customers met de kolommen name, plan, notes en phone, dus pas de namen aan je schema aan.

Bellers kunnen de functie niet gebruiken om klanten weer te geven: de functie retourneert niets tenzij het exacte telefoonnummer bekend is.

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;

Maak de tools

Ga voor beide tools naar Integrations, selecteer Add integration, kies Webhook Tool en voeg deze requestheaders toe:

HeaderWaarde
apikeyJe publishable- of anon-sleutel
AuthorizationBearer gevolgd door de anon-sleutel. Laat dit weg bij een publishable-sleutel.

Sla een terugbelverzoek op

VeldWaarde
Naamsave_callback_request
Beschrijving”Sla een terugbelverzoek op wanneer je de beller een follow-up belooft.”
MethodePOST
URLhttps://PROJECT_REF.supabase.co/rest/v1/callback_requests
Bodyparameterscaller_name, phone en reason (allemaal strings, verplicht)
Toewijzen aan agentsReceptionist

Zoek een klant op

VeldWaarde
Naamfind_customer
Beschrijving”Zoek het account van de beller op telefoonnummer op. Gebruik dit wanneer een beller naar het abonnement of account vraagt.”
MethodePOST
URLhttps://PROJECT_REF.supabase.co/rest/v1/rpc/find_customer_by_phone
Bodyparametersphone (string, verplicht): “Het telefoonnummer van de beller in E.164-indeling, bijvoorbeeld +14155550123.”
Toewijzen aan agentsReceptionist

Selecteer voor elke tool Enable en test je receptionist met een terugbelverzoek. De rij verschijnt in Table Editor.

Problemen oplossen

ProbleemWat je moet controleren
new row violates row-level security policyHet invoegbeleid moet gericht zijn op de rol anon.
Could not find the functionDe bodyparameter moet precies dezelfde naam hebben als het argument van de functie, hier phone.
401 Invalid API keyVerwijder bij een publishable-sleutel de header Authorization.
Klanten worden niet gevondenSla telefoonnummers op in E.164-indeling, dezelfde indeling die je receptionist verstuurt.