
Revolut selects ElevenLabs Agents to bolster customer support
Reducing time to ticket resolution by 8x with multilingual conversational agents.
Zbuduj agenta głosowego AI Świętego Mikołaja w czasie rzeczywistym w swojej aplikacji React z ElevenLabs. Skorzystaj z tego krótkiego przewodnika krok po kroku, by stworzyć świąteczne, interaktywne doświadczenie głosowe z WebRTC i Agents Platform od ElevenLabs.
W te święta dodaj Mikołaja do swojej aplikacji.
Z ElevenLabs Agents Platform i @elevenlabs/react SDK możesz dodać agenta głosowego Mikołaja do swojej aplikacji React w kilka minut. W tym przewodniku:
Powinieneś zobaczyć menu z sekcjami: Agents, Knowledge Base, Tools, oraz Voices w sekcji „Build”.
Teraz stworzymy agenta, który zachowuje się jak Mikołaj i mówi głosem Mikołaja.
Nazwij go: Santa.
W polu System Prompt wklej poniższy tekst:
| 1 | You are a helpful assistant. You are Santa Claus, a jolly, warm, and humorous character from the North Pole. Christmas is just around the corner, and you love reminding everyone of the festive season with your hearty "Ho, ho, ho!" You are deeply in love with Mrs. Claus, often mentioning her incredible cookies. |
| 2 | |
| 3 | When speaking to someone, keep your answers short and magical—just one festive sentence. Make it your top priority to ask for their name to check your naughty or nice list. Once you have their name, immediately ask about their wish-list, as it's crucial for your preparations. Always be warm and gentle. |
| 4 | |
| 5 | Once their name and wish-list are covered, guide the conversation toward learning more about what they've done throughout the year and why they believe they deserve to be on Santa's Nice List. Use this opportunity to celebrate their kindness or achievements, reinforcing the importance of spreading goodness and holiday cheer. You also love asking about their plans for the holidays and showing genuine interest in their answers. Compliment them if you know they've done something kind or helpful recently, reinforcing the importance of spreading goodness. |
| 6 | |
| 7 | Talk about your favorite gifts you've delivered or share quick, magical details about life at the North Pole, like mischievous elves or your reindeer team. Sprinkle in lighthearted jokes about your endless to-do list or how you struggle to resist cookies left out for you on Christmas Eve. Always express how much you love seeing people happy during the holidays and how their smiles make all your efforts worthwhile. |
| 8 | |
| 9 | If the user makes a request involving inappropriate, harmful, or dangerous items such as weapons or items that go against the spirit of Christmas. Politely remind the user to make kind and festive wishes instead. |
| 10 | |
| 11 | End every conversation with a warm farewell, suggesting you must return to your holiday preparations to ensure everyone gets their gifts on time. Wish them a Merry Christmas and encourage them to spread kindness and holiday cheer. Stay cheerful, engaging, and full of festive energy, spreading Christmas magic through humor, warmth, and storytelling. |
| 12 | |
| 13 | Be sure to maintain the conversation in the user's selected language. |
Ustaw First Message na:
Ho, ho, ho! Wesołych Świąt, przyjacielu. Jak masz na imię?
To usłyszą użytkownicy na początku rozmowy.
W sekcji Voice:
MDLAMJ0jxkpYkjXbmG4tTeraz Mikołaj naprawdę będzie brzmiał jak Mikołaj.
W tym przykładzie zostawiamy wszystko otwarte:
Na pierwsze demo możesz spokojnie zostawić Enable Authentication wyłączone, żeby każdy mógł połączyć się z agentem bez ograniczeń. Dzięki temu szybciej przetestujesz rozwiązanie — idealne na szybkie prototypy, hackathony czy prezentacje wewnętrzne.
Ale w przypadku produkcji lub aplikacji dostępnej z zewnątrz nigdy nie zostawiaj agenta otwartego. Zamiast tego użyj w ElevenLabs Token Endpoint, żeby generować krótkotrwałe, ograniczone tokeny dostępu dla każdej sesji użytkownika. Dzięki temu masz pełną kontrolę, kto się łączy, jak długo ma dostęp i co może zrobić. Włączenie uwierzytelniania chroni agenta przed nieautoryzowanymi połączeniami, nadużyciami czy użyciem poza twoimi limitami — i jest mocno zalecane przed uruchomieniem na produkcji.
Na górze strony agenta zobaczysz pole Agent ID.
Zapisz tę wartość — wkleisz ją później do komponentu React:
| 1 | agentId: "<AGENT_ID>" |
W swoim projekcie React / Next.js zainstaluj ElevenLabs React SDK:
| 1 | npm install @elevenlabs/react |
Teraz możesz użyć hooka useConversation, żeby rozpocząć i zakończyć rozmowę głosową.
Stwórz nowy komponent, np. CallSantaButton.tsx, i wklej ten kod:
| 1 | "use client"; |
| 2 | |
| 3 | import { useConversation } from "@elevenlabs/react"; |
| 4 | import { useCallback, useState } from "react"; |
| 5 | |
| 6 | export function CallButton() { |
| 7 | const [hasPermission, setHasPermission] = useState(false); |
| 8 | const [permissionError, setPermissionError] = useState<string | null>(null); |
| 9 | |
| 10 | const conversation = useConversation(); |
| 11 | |
| 12 | const requestMicrophonePermission = useCallback(async () => { |
| 13 | try { |
| 14 | await navigator.mediaDevices.getUserMedia({ audio: true }); |
| 15 | setHasPermission(true); |
| 16 | setPermissionError(null); |
| 17 | return true; |
| 18 | } catch { |
| 19 | setPermissionError("Microphone access is required"); |
| 20 | return false; |
| 21 | } |
| 22 | }, []); |
| 23 | |
| 24 | const startCall = useCallback(async () => { |
| 25 | const permitted = hasPermission || (await requestMicrophonePermission()); |
| 26 | if (!permitted) return; |
| 27 | |
| 28 | try { |
| 29 | await conversation.startSession({ |
| 30 | agentId: "<AGENT_ID>", |
| 31 | connectionType: "webrtc", |
| 32 | }); |
| 33 | } catch (error) { |
| 34 | console.error("Failed to start conversation:", error); |
| 35 | } |
| 36 | }, [conversation, hasPermission, requestMicrophonePermission]); |
| 37 | |
| 38 | const endCall = useCallback(async () => { |
| 39 | await conversation.endSession(); |
| 40 | }, [conversation]); |
| 41 | |
| 42 | const isConnected = conversation.status === "connected"; |
| 43 | |
| 44 | return ( |
| 45 | <div className="flex flex-col items-center gap-4"> |
| 46 | <button |
| 47 | onClick={isConnected ? endCall : startCall} |
| 48 | className={`px-6 py-3 rounded-lg text-white font-medium ${ |
| 49 | isConnected |
| 50 | ? "bg-red-600 hover:bg-red-700" |
| 51 | : "bg-green-600 hover:bg-green-700" |
| 52 | }`} |
| 53 | > |
| 54 | {isConnected ? "End Call" : "Start Call"} |
| 55 | </button> |
| 56 | |
| 57 | {isConnected && ( |
| 58 | <p className="text-sm text-gray-600"> |
| 59 | {conversation.isSpeaking ? "Agent speaking..." : "Listening..."} |
| 60 | </p> |
| 61 | )} |
| 62 | |
| 63 | {permissionError && ( |
| 64 | <p className="text-sm text-red-500">{permissionError}</p> |
| 65 | )} |
| 66 | </div> |
| 67 | ); |
| 68 | } |
| 69 |
Teraz zamień "<AGENT_ID>" na prawdziwy Agent ID, który skopiowałeś z panelu.
Następnie wyświetl przycisk gdzieś w swoim UI, np.:
| 1 | import { CallButton } from "./CallSantaButton"; |
| 2 | |
| 3 | export default function HomePage() { |
| 4 | return ( |
| 5 | <main className="min-h-screen flex flex-col items-center justify-center gap-6"> |
| 6 | <h1 className="text-3xl font-bold text-center"> |
| 7 | Call Santa 🎅 |
| 8 | </h1> |
| 9 | <p className="text-gray-600"> |
| 10 | Press the button and talk to Santa in real time. |
| 11 | </p> |
| 12 | <CallButton /> |
| 13 | </main> |
| 14 | ); |
| 15 | } |
Otwórz aplikację w przeglądarce i kliknij Start Call:
Potem Mikołaj zapyta cię o imię, listę życzeń i co zrobiłeś w tym roku, żeby trafić na Listę Grzecznych.
Gdy podstawy działają, możesz:
Ale cała integracja to tylko:
agentIduseConversation i przyciskTo wszystko, czego potrzebujesz, żeby dodać rozmowy z Mikołajem na żywo do swojej aplikacji React.

Reducing time to ticket resolution by 8x with multilingual conversational agents.
.webp&w=3840&q=95)
Yampa leverages ElevenLabs Flash V2.5 to scale human-like outbound voice agents with ultra-low latency and massive concurrency.