Saltar a la navegación

Supabase

Guarda y busca registros en tu base de datos de Supabase con herramientas de webhook.

Tu recepcionista puede guardar los detalles de una llamada en una tabla de Supabase y buscar a quien llama por número de teléfono mediante la API REST de Supabase. La configuración siguiente usa la clave pública de tu proyecto con seguridad a nivel de fila, por lo que la recepcionista solo puede hacer lo que permitas.

No incluyas nunca la clave service_role ni la clave secreta en una herramienta de webhook. Estas claves omiten la seguridad a nivel de fila y otorgan acceso completo a tu base de datos.

Antes de empezar

En el panel de Supabase, abre Project Settings → API Keys y copia la clave publishable o la clave heredada anon. La URL de tu proyecto es https://PROJECT_REF.supabase.co.

Prepara la base de datos

Ejecuta esto en el SQL Editor. Crea una tabla en la que tu recepcionista solo puede insertar datos y una función que devuelve un cliente por número de teléfono exacto. La función presupone que existe una tabla customers con las columnas name, plan, notes y phone, así que ajusta los nombres a tu esquema.

Quienes llaman no pueden usar la función para listar clientes: no devuelve nada a menos que se conozca el número de teléfono exacto.

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 las herramientas

Para ambas herramientas, ve a Integraciones, selecciona Añadir integración, elige Herramienta de webhook y añade estas cabeceras de solicitud:

CabeceraValor
apikeyTu clave publishable o anon
AuthorizationBearer seguido de la clave anon. Omítela si usas una clave publishable.

Guardar una solicitud de devolución de llamada

CampoValor
Nombresave_callback_request
Descripción”Guarda una solicitud de devolución de llamada siempre que prometas a quien llama un seguimiento.”
MétodoPOST
URLhttps://PROJECT_REF.supabase.co/rest/v1/callback_requests
Parámetros del cuerpocaller_name, phone y reason (todas cadenas, obligatorios)
Asignar a agentesRecepcionista

Buscar un cliente

CampoValor
Nombrefind_customer
Descripción”Busca la cuenta de quien llama por número de teléfono. Úsala cuando alguien llame para preguntar sobre su plan o cuenta.”
MétodoPOST
URLhttps://PROJECT_REF.supabase.co/rest/v1/rpc/find_customer_by_phone
Parámetros del cuerpophone (cadena, obligatorio): “El número de teléfono de quien llama en formato E.164, por ejemplo +14155550123.”
Asignar a agentesRecepcionista

Selecciona Activar en cada herramienta y después prueba tu recepcionista con una solicitud de devolución de llamada. La fila aparecerá en Table Editor.

Solución de problemas

ProblemaQué comprobar
new row violates row-level security policyLa política de inserción debe dirigirse al rol anon.
Could not find the functionEl parámetro del cuerpo debe llamarse exactamente igual que el argumento de la función, aquí phone.
401 Invalid API keySi usas una clave publishable, elimina la cabecera Authorization.
No se encuentran clientesGuarda los números de teléfono en formato E.164, el mismo formato que envía tu recepcionista.