Agent głosowy z czeskim numerem w Państwa aplikacji Lovable
Lovable buduje aplikacje w React z backendem Supabase - wywołania REST API volai należą więc na serwer, do Edge Function, a nie do aplikacji działającej w przeglądarce.
1Zapisanie klucza API jako sekretu Supabase
W projekcie Supabase, który Lovable utworzył dla Państwa aplikacji, dodajcie Państwo zmienną środowiskową VOLAI_API_KEY o wartości swojego klucza (portal, sekcja API i MCP). Nigdy nie umieszczajcie go w kodzie frontendu ani w repozytorium - każdy, kto by go zobaczył, mógłby zużywać Państwa saldo.
2Wywołanie volai z Edge Function
Utwórzcie Edge Function, która przyjmuje żądanie z Państwa aplikacji i dopiero ONA wywołuje https://volai.cz/v1/messages z nagłówkiem Authorization: Bearer ${VOLAI_API_KEY}. W ten sam sposób można zbudować funkcję dla POST /v1/calls (połączenie przez agenta głosowego).
// supabase/functions/send-sms/index.ts
Deno.serve(async (req) => {
const { to, body } = await req.json();
const res = await fetch("https://volai.cz/v1/messages", {
method: "POST",
headers: {
Authorization: `Bearer ${Deno.env.get("VOLAI_API_KEY")}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ to, body }),
});
return new Response(await res.text(), { status: res.status });
});3Wywołanie funkcji z interfejsu użytkownika
Wywołujcie Państwo Edge Function z komponentu aplikacji przez supabase.functions.invoke(...) - klucz pozostaje wyłącznie na serwerze, aplikacja wysyła tylko to i treść wiadomości.
const { data, error } = await supabase.functions.invoke("send-sms", {
body: { to: "+420777123456", body: "Państwa zamówienie jest gotowe do odbioru." },
});4Konfiguracja webhooka, aby aplikacja poznała wynik połączenia
Utwórzcie drugą Edge Function, która przyjmuje zdarzenie (call.completed, call.failed, call.no_answer, call.missed, message.sent, message.received) i zapisuje je do tabeli Supabase - stamtąd aplikacja odczytuje je przez Realtime lub zwykłe zapytanie. Adres zapiszcie przez PUT /v1/webhook; puste pole events oznaczałoby wszystkie zdarzenia, dlatego lepiej wymienić potrzebne pojedynczo. Supabase domyślnie wpuszcza do Edge Function tylko żądania z kluczem w nagłówku Authorization, a w przeciwnym razie odpowiada 401: wyłączcie dla tej funkcji verify_jwt i weryfikujcie zdarzenie na podstawie podpisu Volai-Signature, albo wysyłajcie klucz we własnym nagłówku przez pole headers.
curl -X PUT https://volai.cz/v1/webhook \
-H "Authorization: Bearer vk_TVUJ_KLIC" \
-H "Content-Type: application/json" \
-d '{"url": "https://tvuj-projekt.supabase.co/functions/v1/volai-webhook", "events": ["call.completed", "message.sent"]}'5Opcjonalnie: pozwolić Lovable AI samej dodać volai
Lovable może podczas budowy aplikacji sięgać po zewnętrzne narzędzie także przez własny serwer MCP (Custom MCP servers / Custom connectors w ustawieniach integracji). Adres serwera to https://volai.cz/mcp, uwierzytelnianie Authorization: Bearer vk_TVUJ_KLIC - dokładne przyciski w interfejsie Lovable zmieniają się szybciej niż ta strona, aktualną procedurę znajdą Państwo pod docs.lovable.dev/integrations.
Co Państwo z tym zrobią
SMS z potwierdzeniem po zamówieniu lub rezerwacji
Sklep internetowy lub aplikacja rezerwacyjna zbudowane w Lovable po opłaceniu wywołują własną Edge Function, która wysyła SMS z potwierdzeniem i szczegółami zamówienia.
Agent głosowy, który odbiera telefon w imieniu Państwa aplikacji
Aplikacja kupuje numer telefonu i przez REST tworzy agenta (albo konfigurują go Państwo ręcznie w portalu) - klienci Państwa aplikacji dzwonią wtedy na prawdziwy czeski numer, a nie na cudzą platformę.
Lovable AI sama dodaje połączenia i SMS-y do aplikacji
Pozwólcie Państwo Lovable AI sięgać po volai przez Custom MCP podczas budowy aplikacji - opisują Państwo funkcję słowami („dodaj przycisk, który zadzwoni do klienta“), a AI sama wybiera odpowiednie narzędzie.
Często zadawane pytania
- Czy mogę wywoływać API volai bezpośrednio z kodu frontendu aplikacji?
- Nie. Klucz API nie należy do przeglądarki - każdy, kto otworzy konsolę deweloperską, mógłby go zobaczyć i zużywać Państwa saldo. Zawsze korzystajcie Państwo z Edge Function lub innej trasy serwerowej, która trzyma klucz wyłącznie w backendzie.
- Czy istnieje natywny konektor volai dla Lovable?
- Jeszcze nie - natywne konektory w Lovable są zawsze efektem partnerstw (tak działa na przykład konektor ElevenLabs). Dziś droga prowadzi przez REST z Edge Function albo przez opisany wyżej ogólny serwer Custom MCP.
- Skąd aplikacja wie, że połączenie się zakończyło, bez ciągłego dopytywania?
- Webhook
call.completedzapisują Państwo przez Edge Function do tabeli Supabase, a aplikacja odczytuje zmianę przez Supabase Realtime - zupełnie bez pollingu. - Ile kosztuje działanie aplikacji?
- Obowiązują te same stawki co w cenniku, bez dopłaty za Lovable: SMS 1.36 CZK (~EUR 0.06), połączenie wychodzące 0.92 CZK/min (~EUR 0.04), agent głosowy dodatkowo 2.50 CZK/min (~EUR 0.10). Dokładny cennik znajdą Państwo pod
/cenik.
Proszę wypróbować od razu
Proszę się zarejestrować, a pierwsze 50 kr salda dostają Państwo od nas.