AI Voice Agents with ElevenLabs and Zadarma: A Complete Implementation Guide for Online SMEs

Samuel Martínez, 30 April 2026. Voice agents. 9 min read. Translated from the Spanish original.

A real technical guide: ElevenLabs ConvAI + Zadarma SIP + Fastify stack for AI voice agents in online SMEs. Costs €37-112/month, 2-4 weeks to implement, cases by sector.

A well-built AI voice agent answers calls in a natural Spanish voice, books appointments, qualifies leads and hands over to a human when needed. This guide is the real technical implementation, using an ElevenLabs + Zadarma + Fastify stack, for SMEs (PYMEs in Spain) and founders without a tech department.

TL;DR

Why an AI voice agent for an online SME

Online SMEs (SaaS, ecommerce, info products, agencies) receive calls that are typically:

An AI voice agent solves this: it answers on the first ring, speaks natural Spanish, qualifies the lead, books a demo if appropriate, and sends a summary to the founder via WhatsApp.

Minimum technical stack

ElevenLabs Conversational AI

A platform for building conversational agents with voice. What it offers:

Cost: from $22/month for 250 minutes on the Creator plan. The Pro plan is $99/month with 1,000 minutes.

Zadarma

A Spanish SIP provider that connects the voice agent to the telephone network:

Alternative: Twilio (more expensive but more global). For Spain and LATAM, Zadarma is 3-5x cheaper.

Fastify webhook handler

A Node.js server that receives the post-call webhooks from ElevenLabs and processes them:

Cost: ~€5/month on a Hetzner CX22 if it only runs the voice agent and the database.

Complete architecture

Cliente llama al número Zadarma España
   ↓
Zadarma SIP forward → ElevenLabs ConvAI
   ↓
Cristina (voice agent) atiende con LLM + KB
   ↓
Si lead: Tool capturar_lead() → POST a tu Fastify
   ↓
Si transferir: SIP transfer al fundador
   ↓
Al colgar: ElevenLabs POST webhook con transcript + analysis
   ↓
Fastify webhook → PostgreSQL + Telegram notify + CRM sync

Components to configure

  1. Zadarma: sign-up + landline number + point it to the ElevenLabs SIP
  2. ElevenLabs: create agent + voice + LLM + KB + tools + webhook
  3. Knowledge base: markdown with your information (services, prices, FAQ)
  4. System prompt: the agent’s personality + conversation rules
  5. Tools: capturar_lead, agendar_demo, transferir_a_humano
  6. Webhook handler: Fastify route that processes post-call data
  7. DB schema: voice_calls table with conversation_id, summary, sentiment, lead_id

Step-by-step implementation

1. Create the agent in ElevenLabs

ElevenLabs Conversational AI dashboard → Create new agent:

2. System prompt

The system prompt defines the personality. A real example:

Eres Cristina, asistente virtual de [Empresa]. Tu rol:

1. Atender al cliente con calidez profesional
2. Identificar qué necesita en 1-2 preguntas
3. Si es lead cualificado: capturar nombre, teléfono, empresa, servicio interés
4. Si quiere demo: agendar via tool agendar_demo()
5. Si pregunta algo no en KB: ofrecer enviar info por WhatsApp y transferir
6. Si pide hablar con humano directamente: tool transferir_a_humano()

Reglas:
- Habla natural, sin formalismos excesivos
- No inventes información que no tengas en KB
- Si no entiendes, pregunta de nuevo amablemente
- Llamadas máx 8 minutos, después invita a continuar por WhatsApp

3. Knowledge base

Upload markdown with:

Tip: use the same FAQs you have at /servicios/X/ with FAQPage schema. Reuse them.

4. Tools

Configure 3 minimum tools:

capturar_lead: when the customer gives personal details and shows interest.

{
  "name": "capturar_lead",
  "description": "Captura datos del lead cuando muestra interés concreto",
  "parameters": {
    "name": "string",
    "phone": "string",
    "email": "string (opcional)",
    "service": "string",
    "notes": "string"
  }
}

agendar_demo: when they ask for a demo or meeting.

{
  "name": "agendar_demo",
  "description": "Agenda una demo en el calendario del fundador",
  "parameters": {
    "preferred_date": "string YYYY-MM-DD",
    "preferred_time": "string HH:MM",
    "duration_minutes": "number"
  }
}

transferir_a_humano: when they ask to speak to a person or the case is complex.

{
  "name": "transferir_a_humano",
  "description": "Transfiere la llamada al fundador",
  "parameters": {
    "reason": "string"
  }
}

5. Post-call webhook

ElevenLabs sends a POST with the transcript + analysis at the end of every call. Endpoint:

fastify.post('/voice/calls/webhook', async (request, reply) => {
  // Validar HMAC para seguridad
  // Parse payload ElevenLabs
  // Persistir en voice_calls table
  // Notificar Telegram con resumen
  // Si lead capturado: crear en CRM
  return { success: true };
});

Important: protect the webhook with an HMAC signature. Without a signature, anyone can inject fake calls into your database.

6. Connect Zadarma

In the Zadarma dashboard:

Test: call the number from your mobile. The agent should answer within one ring.

Real monthly cost

For an SME with ~300 minutes/month of calls (10-15 calls/day):

ComponentCost/month
ElevenLabs Pro plan$99 (~€92)
Zadarma number + minutes€15
Hetzner server (Fastify + DB)€5
Telegram bot€0
Total~€112/month

For a small SME (~100 min/month):

ComponentCost/month
ElevenLabs Creator plan$22 (~€20)
Zadarma€12
Hetzner€5
Total~€37/month

Compare that with an average human call-centre operator: €1,200-1,800/month in salary plus Seguridad Social (Spanish social security contributions). A voice agent is 10-30x cheaper.

Typical implementation mistakes

MistakeConsequenceFix
Voice agent without a protected webhookAnyone can inject fake calls into the databaseHMAC signature is mandatory
KB with complex markdown tablesThe LLM doesn’t extract the data well and answers badlyPlain text with short paragraphs
System prompt without clear rulesThe agent invents prices or services that don’t existExplicit rules + authoritative KB
No transfer to a humanComplex cases get lostTool transferir_a_humano always available
Outbound without authToll fraud (someone makes premium-rate calls on your account)Mandatory API key + IP allowlist
English-sounding voice for a Spanish customerSounds odd, lowers conversionCristina/Bea in ElevenLabs
Max duration of 30 minEndless calls from people testing the botCap at 8-10 min

Real use cases by vertical

B2B SaaS

Ecommerce

Info products

Agencies

When NOT to use a voice agent

FAQ

How long does it take to implement from scratch?

An SME with its web stack already in place: 2-3 weeks. An SME starting from scratch: 4-6 weeks (includes Hetzner + Fastify + DB + ElevenLabs + Zadarma + tests).

Does the agent work without internet?

No. It needs a connection to ElevenLabs + the LLM provider + your webhook. If your server goes down, the agent still answers but can’t capture leads or transfer properly. That’s why monitoring and high uptime are critical.

Does the voice really sound human?

In Spanish, Cristina (ElevenLabs) passes the Turing test on short calls (under 3 minutes) in 70% of cases. On longer calls, users become suspicious because they notice the absence of typical human errors. It’s best to say “I’m a virtual assistant” in the first message.

What happens if it says something false?

It’s a real risk. Mitigations: authoritative KB + a system prompt with the rule “if you’re not sure, ask or transfer” + daily transcript monitoring for the first 30 days. After 100+ audited calls, the agent stabilises.

Can I use my current number?

Yes, either by porting it to Zadarma (free, takes 5-10 working days) or by forwarding from your current operator to the Zadarma number. To start with, a new Zadarma number is recommended, with the old one forwarded only once everything works.

Conclusion

An AI voice agent with ElevenLabs + Zadarma + Fastify costs €37-112/month depending on volume and delivers more qualified leads than a human call-centre operator at €1,500/month. Implementation takes 2-4 weeks if you have dev skills.

STAKKER SYSTEMS implements it on a turnkey basis for online SMEs (including server + monitoring + tuning): the scope and cost are agreed after a free diagnosis, depending on call volume and integrations. The first consultation is free, to assess whether your volume justifies a voice agent.