Skip to main content

Camila

Market: Telecommunications | Vertical: Billing & Payments Camila is a Movistar Colombia voice agent for the “Facturación y Pagos” (Billing and Payments) department. She verifies the customer’s identity, answers questions about debt status, invoice breakdowns, and bill comparisons, and closes each call with a mandatory satisfaction survey. She speaks natural Colombian Spanish and handles both mobile and fixed telephone lines.

View Agent

Open in Wonderful Platform

Overview

FieldValue
MarketColombia - Telecommunications
VerticalBilling & Payments / Customer Service
CompanyMovistar Colombia (Telefonica)
PersonaFemale, Professional, Friendly, Calm, Empathetic
LanguageColombian Spanish
ChannelVoice

Skills

Identification Process - Validates the customer’s phone number (Colombian mobile and fixed-line formats) and verifies their identity against Telefonica’s systems. Handles the nuances of Colombian ID numbers dictated over voice, normalizing varied formats into a single digit string. Escalates gracefully after three failed verification attempts. Billing & Debt Inquiry - Answers billing questions using real-time data from Telefonica’s APIs. Covers debt status, current and previous invoice breakdowns, equipment installments, and bill comparisons. Enforces a strict source-of-truth rule where the agent only states exact values returned by tools. Closes with a mandatory two-question satisfaction survey submitted to a tracking sheet.

Key Tools

ToolPurpose
read_varcognitivoGlobal tool that runs before the first message. Reads telephony metadata from the SIP header to seed customer context into the session.
phone_number_validatorValidates and normalizes Colombian phone numbers (10-digit mobile starting with 3, fixed-line with department-based area codes). Returns line type and whether a department is needed.
verify_userVerifies customer identity against Telefonica’s billing system using phone number and ID. Stores verification status in session for downstream skills.
end_after_reoccuring_failureTerminates the call after three failed verification attempts with a message directing the customer to alternative support channels.
check_user_debt_statusRetrieves debt summary, status code, due date, last payment, and aging buckets. The single source of truth for “how much do I owe” questions.
get_user_billing_info_currentFetches the current invoice with charge breakdowns, equipment installments, billing cycle, and payment reference. Used for bill explanation questions.
get_user_billing_info_previousFetches the previous billing cycle data for side-by-side comparisons when a customer asks why their bill increased.
survey_questionsReturns the two mandatory survey questions (satisfaction score 0-9 and service quality score 1-5).
submit_survey_to_sheetSubmits the completed survey with both scores, optional remarks, and resolution status to a tracking webhook.
is_user_solvedTags the interaction as resolved or unresolved based on the customer’s confirmation after the clarity question.

Prompting Techniques

Query Triage with Three Paths

The base prompt routes every inbound query into one of three paths before any skill is activated: in-scope billing inquiries go straight to identification, soft out-of-scope Movistar topics (tech support, cancellations) are redirected to the Mi Movistar app, and hard out-of-scope requests get a short boundary response. This prevents the agent from drifting into topics it cannot resolve.

Colombian ID Concatenation

Colombian IDs can be dictated in fragments with separators (slashes, dashes, pauses). The prompt instructs the agent to treat any format containing digits as complete, concatenate into a single digit string, and call verification immediately rather than asking the customer to repeat without separators.
Colombian IDs can have variable length. If the user provides an ID in ANY format
that contains digits (even with separators like "/", "-", spaces, dots, or pauses),
treat it as the complete ID immediately. Convert to digits and concatenate into one
continuous digit string, then call verify_user right away.
Example: "24/07/30/978" → "240730978"

Numbers and Dates as Words

Because this is a voice interaction in Colombian Spanish, all monetary amounts and dates are spelled out as words rather than digits. This avoids ambiguity when the language model reads numbers aloud.
NUMBERS AS WORDS: Spell out monetary amounts and totals as words
(e.g., cuarenta y cuatro mil).
DATES AS WORDS: Spell out full dates as words
(e.g., diez de julio de dos mil veinticinco).

Clarity Confirmation Loop

After every billing answer, the agent asks “Quedó clara la información?” before moving on. The customer’s response determines whether to mark the issue as resolved, handle a follow-up question, or proceed to the survey offer. This ensures the customer is never rushed past an answer they did not fully understand.

”Cancelar” Dual Meaning

In Colombian Spanish, “cancelar” can mean both “pay” and “terminate.” The prompt includes explicit disambiguation: if the conversation has billing context (debt, balance, invoice), treat it as a payment question; only if the customer explicitly mentions leaving Movistar or switching carriers, treat it as cancellation.

Lessons Learned

What worked:
  • Pre-call ID extraction from telephony metadata: Extracting the customer’s national ID from the SIP header (X-Varcognitivo1) before the conversation starts allowed the agent to verify customers automatically when they were calling about the line associated with that ID. This significantly reduced call duration and avoided the repeated failed attempts that occurred when customers tried to dictate their ID over voice.
  • Structured survey protocol: Embedding the two-question survey as a mandatory step in the conversation flow (with a strict state machine: Q1 score, optional remark, Q2 score, then submit) ensured consistent data collection without the survey being accidentally skipped or partially submitted.
  • Colombian phone number normalization: Building a dedicated validator that handles 10-digit mobile numbers, 7-digit fixed-line numbers with department-to-area-code mapping, and various prefix formats (country code stripping, leading zeros) covered the range of number formats Colombian customers use.
  • Source-of-truth enforcement: Instructing the agent to never approximate or round amounts and to always use exact values from tool responses prevented a class of errors where the language model would paraphrase or estimate billing figures.
Challenges:
  • Colombian ID dictation over voice: National ID numbers like 1005745399 are naturally spoken as “un millón cinco, setenta y cuatro…” in Spanish, which frequently led to transcription errors, wrong verifications, and multiple failed attempts. The ID concatenation technique in the prompt helped, but voice-to-number accuracy for long digit sequences remains inherently difficult.
  • Fixed-line number variety: Colombian fixed-line numbers require a department-based area code prefix, and customers rarely provide it upfront. The validator needs to ask for the department, map it to the correct area code, and re-validate, adding friction to the verification step.
  • Preventing hallucinated amounts: Without explicit guardrails, the agent would occasionally paraphrase or round billing amounts. The strict “no approximate” rule and tool-notes-first approach were necessary to keep responses accurate, but required verbose prompting.
  • Survey interruptions: Customers sometimes ask a new billing question mid-survey. The prompt handles this with a pause-resolve-resume pattern, but maintaining survey state across the interruption adds complexity to the conversation flow.