Hlasový agent s českým číslem ve tvé Lovable appce
Lovable staví appky na Reactu se Supabase backendem - volání REST API volai proto patří na server, do jedné Edge Function, ne do appky v prohlížeči.
1Ulož API klíč jako Supabase secret
V Supabase projektu, který Lovable appce založila, přidej proměnnou prostředí VOLAI_API_KEY s hodnotou svého klíče (portál, sekce API a MCP). Nikdy ho nedávej do frontendového kódu ani do repozitáře - kdokoli by ho uviděl, mohl by tvým jménem utrácet kredit.
2Zavolej volai z Edge Function
Vytvoř Edge Function, která přijme požadavek z appky a teprve ONA zavolá https://volai.cz/v1/messages s hlavičkou Authorization: Bearer ${VOLAI_API_KEY}. Stejně půjde postavit funkce pro POST /v1/calls (hovor přes hlasového agenta).
// 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 });
});3Zavolej funkci z uživatelského rozhraní
Z komponenty appky zavolej Edge Function přes supabase.functions.invoke(...) - klíč zůstává jen na serveru, appka posílá jen to a text zprávy.
const { data, error } = await supabase.functions.invoke("send-sms", {
body: { to: "+420777123456", body: "Objednavka je pripravena." },
});4Nastav webhook, ať appka pozná výsledek hovoru
Založ druhou Edge Function, která přijme událost (call.completed, call.failed, call.no_answer, call.missed, message.sent) a zapíše ji do tabulky v Supabase - odtud si ji appka přečte přes Realtime nebo běžný dotaz. Adresu ulož přes PUT /v1/webhook; prázdné pole events by znamenalo úplně všechny události, radši je vyjmenuj.
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"]}'5Volitelně: ať si volai umí přidat sama Lovable AI
Lovable umí při stavbě appky sáhnout i po cizím nástroji přes vlastní MCP server (Custom MCP servers / Custom connectors v jejím nastavení integrací). Adresa serveru je https://volai.cz/mcp, autentizace Authorization: Bearer vk_TVUJ_KLIC - přesné tlačítka v UI Lovable se mění rychleji než tahle stránka, aktuální postup najdeš v docs.lovable.dev/integrations.
Co s tím uděláš
Potvrzovací SMS po objednávce nebo rezervaci
E-shop nebo rezervační appka z Lovable po zaplacení zavolá vlastní Edge Function, která pošle potvrzovací SMS s detaily objednávky.
Hlasový agent, který zvedne telefon za appku
Appka koupí telefonní číslo a založí agenta přes REST (nebo je nastavíš ručně v portálu) - zákazníci appky pak volají na skutečné české číslo, ne na cizí platformu.
Lovable AI si samo přidá volání a SMS do appky
Při stavbě appky necháš Lovable AI sáhnout po volai přes Custom MCP - popíšeš funkci slovy („přidej tlačítko, co zavolá zákazníkovi“) a AI si sama vybere správný nástroj.
Časté otázky
- Můžu zavolat volai API přímo z frontendového kódu appky?
- Ne. API klíč do prohlížeče nepatří - kdokoli by si otevřel vývojářskou konzoli, mohl by ho vidět a utrácet tvůj kredit. Vždy přes Edge Function nebo jiný server route, který klíč drží jen na backendu.
- Existuje pro Lovable nativní konektor volai?
- Zatím ne - nativní konektory v Lovable jsou vždy partnerství (tak funguje třeba ten pro ElevenLabs). Dnes vede cesta přes REST z Edge Function, případně přes obecný Custom MCP server popsaný výš.
- Jak appka pozná, že hovor skončil, bez neustálého dotazování?
- Webhook
call.completedzapíšeš do tabulky Supabase Edge Function a appka si změnu přečte přes Supabase Realtime - žádné pollování. - Kolik appku bude stát provoz?
- Stejné sazby jako v ceníku, žádný příplatek za Lovable: SMS 1,36 Kč, odchozí hovor 0,92 Kč/min, hlasový agent navíc 2,50 Kč/min. Přesný ceník je na
/cenik.