Vai alla navigazione

Supabase

Salva e cerca record nel tuo database Supabase con strumenti webhook.

La tua receptionist può salvare i dettagli di una chiamata in una tabella Supabase e cercare un chiamante in base al numero di telefono tramite l’API REST di Supabase. La configurazione qui sotto usa la chiave pubblica del tuo progetto con la sicurezza a livello di riga, quindi la receptionist può fare solo ciò che autorizzi.

Non inserire mai la chiave service_role o la chiave segreta in uno strumento webhook. Queste chiavi aggirano la sicurezza a livello di riga e concedono accesso completo al tuo database.

Prima di iniziare

Nella dashboard di Supabase, apri Project Settings → API Keys e copia la chiave publishable oppure la chiave anon legacy. L’URL del tuo progetto è https://PROJECT_REF.supabase.co.

Prepara il database

Esegui questo nell’SQL Editor. Crea una tabella in cui la tua receptionist può solo inserire dati e una funzione che restituisce un cliente in base al numero di telefono esatto. La funzione presuppone una tabella customers esistente con le colonne name, plan, notes e phone, quindi adatta i nomi al tuo schema.

I chiamanti non possono usare la funzione per elencare i clienti: non restituisce nulla se non è noto il numero di telefono esatto.

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;

Crea gli strumenti

Per entrambi gli strumenti, vai a Integrations, seleziona Add integration, scegli Webhook Tool e aggiungi questi header della richiesta:

HeaderValore
apikeyLa tua chiave publishable o anon
AuthorizationBearer seguito dalla chiave anon. Omettilo per una chiave publishable.

Salva una richiesta di richiamata

CampoValore
Nomesave_callback_request
Descrizione”Salva una richiesta di richiamata ogni volta che prometti un follow-up al chiamante.”
MetodoPOST
URLhttps://PROJECT_REF.supabase.co/rest/v1/callback_requests
Parametri del bodycaller_name, phone e reason (tutte stringhe, obbligatori)
Assegna agli agentiReceptionist

Cerca un cliente

CampoValore
Nomefind_customer
Descrizione”Cerca l’account del chiamante in base al numero di telefono. Usalo quando un chiamante chiede informazioni sul proprio piano o account.”
MetodoPOST
URLhttps://PROJECT_REF.supabase.co/rest/v1/rpc/find_customer_by_phone
Parametri del bodyphone (stringa, obbligatorio): “Il numero di telefono del chiamante in formato E.164, ad esempio +14155550123.”
Assegna agli agentiReceptionist

Seleziona Enable su ogni strumento, quindi testa la tua receptionist con una richiesta di richiamata. La riga appare in Table Editor.

Risoluzione dei problemi

ProblemaCosa controllare
new row violates row-level security policyLa policy di inserimento deve avere come destinazione il ruolo anon.
Could not find the functionIl parametro del body deve avere esattamente lo stesso nome dell’argomento della funzione, qui phone.
401 Invalid API keyCon una chiave publishable, rimuovi l’header Authorization.
I clienti non vengono trovatiMemorizza i numeri di telefono in formato E.164, lo stesso formato inviato dalla tua receptionist.