Alicja: AI voice agent.
Alicja talks to visitors on aiadvisors.pl in Polish and English. She answers questions about services and projects, assesses the enquiry and books a meeting in the calendar. Two AI models run the conversation; the business logic and integrations run in n8n.
- Industry
- Own product / customer service
- Timeline
- September 2026
- Outcome
- PL and EN · questions, qualification and booking in one conversation
Problem
A contact form and a calendar link share the same flaw: they can't answer questions. Anyone who wanted to know whether I build voice agents, or what a first project costs, had to book a meeting to find out. And some of the calls I did take showed within minutes that the company was not yet ready for a project.
I also wanted to try on myself what I build for clients: a voice agent that doesn't just talk but works with real systems, namely a knowledge base, a calendar and email.
What I built
Alicja sits in the bottom-right corner of every page on aiadvisors.pl, this one included. Clicking her starts a conversation through the microphone, and the call carries on when the visitor moves to another page of the site.
- Two models instead of one. The GPT-Live voice model runs the conversation. When the agent needs knowledge, has to assess the enquiry or call a tool, the GPT-5.6 Terra reasoning model takes over in the background. Both run on Microsoft Azure in the France Central region.
- My own voice gateway. It manages the session, holds the keys, executes tools and enforces limits: call length, calls per address and a daily budget of minutes. The browser sends audio only and cannot issue commands to the model. I develop the gateway as my own component and start client implementations from it, telephone ones included.
- Business logic in n8n. More than a dozen workflows: agent configuration, a tool router, knowledge, qualification, open slots, booking, company research, the post-call summary and deletion of old data. I change instructions and knowledge in n8n without deploying code.
- Knowledge from this site. A script moves the case studies and guides into a knowledge base in n8n. At the start of a call the agent gets a table of contents and fetches details only when the caller asks about them.
- Qualification on two scales. The agent assesses whether the company knows what it wants to do and whether it is ready to decide. It offers meeting times only when both scores are high. Companies that are not ready yet get no slot; the agent asks for an email address and says I will be in touch.
- n8n checks the booking, not the model. Before a meeting is created, n8n checks the enquiry's assessment, a company email address and whether the slot is still free. A caller cannot talk the model into a booking.
- Contact details through a form, not the model. The caller types their name and email into an on-screen form, and the data goes to the gateway without passing through the model. An email address dictated by voice is a lottery for speech recognition.
- Company research in the background. When a company name comes up, n8n looks it up in public sources and adds the result to the model's context. The agent doesn't recite it; it uses it to ask better questions. I only look up the company, never the person.
- After a call with a prospective client, n8n stores the session and emails me a summary, the assessment, the quotes that justify it and the booked slot. Transcripts are deleted after 30 days and enquiry data after 12 months.
The unexpected problem: silence
The most serious problem didn't show up in automated tests. It showed up in calls with people. In one in three test calls the agent went quiet at some point and the caller asked whether anyone was there. I built four safeguards against it, including a silence watchdog and fetching calendar slots in advance. None of them helped.
What helped was changing how the two models split the work. At first most of the conversation went through the reasoning model, and the voice model spoke its answers. Every turn therefore waited for the background model: 3.6 seconds at the median, and more than 8 seconds for one turn in ten. Now the voice model runs the ordinary conversation, and the background model gets only what needs knowledge, tools or a decision. Along the way the instructions got a quarter shorter. I use this split in every agent since.
What else I learned
- A bare prohibition backfires. When I told the model not to start sentences in certain ways, those openings became more frequent: 5.3% of turns instead of 0.4%. A prohibition that named a replacement worked: an unnecessary "I'm passing this on" fell from 2.0% to 0.6%.
- The voice model can say anything the background model writes. Delegation text enters the conversation verbatim, so I write the background model's instructions as if every sentence it produces will be spoken aloud.
- Names need phonetic spelling. In Polish, Alicja pronounces AiAdvisors, n8n and MCP correctly because the instructions spell them out phonetically.
- Research by email domain can attach the wrong company. So the company name in the enquiry record comes from the caller's own words, not from search results.
- The model wanted to confirm bookings itself. Confirmation now comes only from the n8n result and also appears on screen as a card with the meeting details.
Outcome
Alicja has been live on aiadvisors.pl since September 2026, on both the Polish and English versions of the site. She answers questions about services and projects, assesses the enquiry and books a 30-minute meeting in the calendar. After every call with a prospective client I get an email with a summary. The gateway has more than 270 automated tests, and call limits and the minute budget protect against abuse.
The same gateway and the same n8n patterns are the starting point for the agents I build for clients: with a phone line instead of a browser, the client's CRM instead of my inbox, and the languages their customers call in. The details are on the AI voice agents for customer service page.