Skip to main content
ELTA Courier AI Voice Agent

Overview

FieldValue
MarketGreece - Package Tracking
VerticalLogistics & Postal Services
ModelGPT Realtime
LanguageGreek
ChannelsVoice, Chat

Challenge

ELTA, Greece’s national postal operator, faced a critical capacity crisis where only 60-70% of inbound calls were being answered during peak periods. Simple “Where is my package?” inquiries overwhelmed human agents, leading to high abandonment rates and customer frustration. The existing human-only support model, supplemented by basic IVR routing, couldn’t resolve issues or scale with demand. Adding complexity, tracking numbers spoken in Greek, often mixing Greek and Latin letters with unclear pronunciation, proved difficult to capture reliably through traditional automation. ELTA’s leadership sought a production-ready AI solution that could absorb peak demand without expanding headcount, while maintaining accuracy and customer trust.

Solution

Wonderful deployed an AI voice agent specifically designed for courier tracking, featuring intelligent phonetic fallback logic, word-based letter recognition, and digit grouping to reliably capture spoken tracking codes. Within months of November 2025 go-live, the agent now handles 61K interactions monthly (33% of ELTA’s total call traffic) with an 86% success rate. The system provides 24/7 availability and scales peak capacity from 500 to 2,000 calls without additional agents.

Skills

  • Package Status - Core functionality for tracking packages and managing call flow
    • get_package_status - Retrieves current package status from tracking number
    • welcome_message - Contextual greeting based on call center hours
    • end_call - Terminates call with goodbye message
    • end_with_feedback - Ends call while logging customer satisfaction
    • forward_call - Escalates to human agent when needed
    • call_timeout - Handles call timeout

Key Tools

ToolPurpose
get_package_status(tracking_number)Validates tracking number format, handles Greek-to-Latin conversion, runs validations and gived feedback to agent if any errors are detected, returns package status in TTS-friendly Greek; will iterate on a tracking number and will check multiple similar sounding tracking numbers
welcome_message()Plays contextual greeting based on time/day, handles blacklisted numbers
forward_call()Escalates to human agent (+302106073002) during business hours (Mon-Fri, 8am-6pm) – forwarding currently disabled upon client’s request
end_call()Terminates call with goodbye message – 10% chance to prompt the customer for feedback and prompt the agent to proceed with end_with_feedback
end_with_feedback(customer_satisfied)Ends call and logs satisfaction feedback

Prompting Techniques

Critical Tracking Number Parsing for Greek Voice Input: The agent handles extensive Greek-to-Latin letter mapping for voice transcription, including Greek letter names, words, and phonetic equivalents.
CRITICAL TRACKING NUMBER PARSING RULE: When the customer provides a letter
followed by an example word (e.g., "D opos George," "H opos George"),
you MUST STRICTLY IGNORE THE EXPLICIT LETTER and ABSOLUTELY ALWAYS USE
THE FIRST LETTER OF THE EXAMPLE WORD to form the tracking number.

Example: "D opos George" -> Use 'G' (Ignore 'D')
Greek Letter Name Recognition: Maps Greek letter names to their Latin equivalents for accurate transcription. Certain edge cases have also been introduced to the prompt in an attempt to improve upon common transcription errros.
The client is encouraged to use the full Greek letter names:
A - alfa        H - ita, ITA (common mis-transcription)
B - vita        P - ro (Greek rho = Latin P sound)
E - epsilon     K - kapa
Z - zita        M - mi

IMPORTANT Edge Cases:
- "ITA" in Greek context -> H (misheard "ita")
- "ro" -> P (Greek rho sounds like Latin P)
- "eight" at start of tracking number -> H
- "Vita" -> B (not V)
- "I tatziou"/"I takiou" -> HQ (common mistranscription)
Digit Grouping Awareness: Customers may provide 9-digit sequences in various groupings.
digits in groups of two: (42, 00, 03, 83, 2)
digits in groups of three: (420, 003, 832)

VERY IMPORTANT: Do NOT add extra zeros to 9-digit numbers.
If transcription is "GJ 42 0 0 0 38 32 GR" -> "GJ420003832GR"
NOT "GJ4200003832GR" (notice the wrong extra zero)
TTS-Friendly Number Output: Digits must be spelled out individually in Greek for text-to-speech.
When writing digits ALWAYS use words instead of numbers:
1 - ena, 2 - dyo, 3 - tria, 4 - tessera, 5 - pente
6 - exi, 7 - epta, 8 - okto, 9 - ennia, 0 - miden

314 should be "tria, ena, tessera" NOT "triakosia dekatessera"
Character Spelling Alphabet: Consistent word examples for confirming letters with customers.
When confirming letters, use consistent examples:
A - Afstralia    G - George/Germany    R - Roumania
B - Vrazilia     H - Hotel             S - Sigkapoury
C - Chicago      I - India             T - Tailandi
Segment-by-Segment Error Recovery: When validation fails, work through tracking number segments systematically.
If get_package_status fails:
1. First verify the first two letters
2. Then verify the country code (last two letters) - suggest GR if unclear
3. Finally verify the 9 middle digits one by one

DO NOT try to fix multiple segments at once. Work with the customer
step by step to make the process smoother.

Lessons Learned

What worked
  • Extensive Greek phonetic mapping - Comprehensive rules for converting Greek letter names (alfa, vita, ita), Greek words, Greek names, and English phonetics in Greek (Mpi -> B, Si -> C) eliminated most transcription errors and resulted in a good feedback loop between the agent and the customer
  • Edge case handling for common mis-transcriptions - Specific rules for “ITA” -> H, “ro” -> P, “eight” -> H at start, and common bad transcriptions like “I tatziou” -> “HQ” improved accuracy
  • Digit grouping awareness - Supporting (groups of 3) and (groups of 2) matched how Greeks naturally dictate long numbers; prompting the customers to input numeric sequences in such sets also helped with STT
  • Segment-by-segment validation - Having the tool run validations on the tracking number based on known heuristics and instructing the agent accordingly reduced customer frustration – this was one of the more important additions to the agent and greatly contributed to a high resolution rate
  • Character spelling alphabet - Consistent word examples (G opos George, H opos Hotel) for both input and output created predictable interactions
  • TTS-friendly digit output - Spelling digits as Greek words (tria, ena, tessera) instead of numbers (314) ensured correct pronunciation
  • Iterating on commonly misheard characters - We found that certain characters are often misheard as other characters (for example D and G), when the tool had a tracking number that included such characters such as AD123, it would try and query both AD123 AND AG123; this greatly mitigated the impact of transcription errors
  • Country code defaulting - Most tracking numbers end in “GR” but transcription often mangled it; proactive suggestion of “GR” when country code validation fails improved success rate
Challenges
  • Long rigid inputs are problematic - Even with a relatively small character error rate, a single character being off will result in failure
  • Greek letters that look like latin letters - For example Greek rho (P) sounds like English R but maps to Latin P
  • “ITA” vs “ita” confusion - The Greek letter name “ita” (H) was often transcribed as “ITA” and misinterpreted; required specific edge case rule
  • Gendered language consistency - Greek requires grammatical gender agreement; agent must maintain consistent gender in pronouns and verbs even if customer uses opposite gender
  • Filler sound filtering - Greek thinking sounds (“Eee”, “aaamm”, “Err”) were being interpreted as input

Builder Kit

Everything below is a ready-to-go package for quickly building a package tracking demo agent using the Wonderful Agent Builder. Hand these materials to the builder and you’ll have a working agent in minutes.

Agent Builder Prompt

Copy-paste this prompt into the Agent Builder to generate a package tracking agent:
Make a customer support voice agent for a shipping company which accepts the
tracking number from the customer, and retrieves relevant package information.

The tool responsible for information retrieval should first validate the
tracking number format before making any API call:
- Total length: 13 characters
- Format: 2 Latin letters + 9 digits + 2-letter country code (e.g. "GR")
- Alternative format (rare): 11 digits + 2-letter country code

If validation fails, the tool should NOT call the API. Instead it should return
a specific error to the agent explaining where the problem is (e.g. "middle
segment has only 8 digits, expected 9", "invalid country code suffix", "prefix
contains a digit where a letter is expected"). The agent should then work with
the customer segment-by-segment to fix the number — first the two-letter
prefix, then the country code suffix, then the 9 middle digits.

Only after validation passes should the tool call the package tracking API
described below. Upon success the agent should announce the most recent status
of the order (the first entry in the result array), and ask the customer if
they want to track another shipment. If they do not, the agent should politely
end the call.

API details, sample responses, sample tracking numbers, and a store location
reference file are provided below as context.

API Reference

Endpoint

POST https://<client-host>/api/tracking
Content-Type: application/x-www-form-urlencoded

Request Payload

number=<TRACKING_NUMBER>&s=0
ParameterTypeDescription
numberstringThe 13-character tracking number
sintegerAlways 0

Response Format

{
  "status": 1,
  "result": {
    "<TRACKING_NUMBER>": {
      "status": 1,
      "result": [
        {
          "date": "DD-MM-YYYY",
          "time": "HH:MM",
          "place": "Store or hub name",
          "status": "Human-readable status text"
        }
      ]
    }
  }
}
The result array is ordered most recent first.

Sample API Response

{
  "status": 1,
  "result": {
    "HH430255172GR": {
      "status": 1,
      "result": [
        {
          "date": "06-10-2025",
          "time": "15:39",
          "place": "KALIMNOS 3- AGENCY",
          "status": "Return to sender"
        },
        {
          "date": "23-09-2025",
          "time": "14:42",
          "place": "",
          "status": "Absence of addressee -Please contact with store"
        },
        {
          "date": "23-09-2025",
          "time": "14:40",
          "place": "KALIMNOS 3- AGENCY",
          "status": "Out for delivery"
        },
        {
          "date": "20-09-2025",
          "time": "09:46",
          "place": "KALIMNOS 3- AGENCY",
          "status": "Shipment at store - Can be collected"
        },
        {
          "date": "20-09-2025",
          "time": "09:44",
          "place": "KALIMNOS 3- AGENCY",
          "status": "Arrive in"
        },
        {
          "date": "16-09-2025",
          "time": "17:02",
          "place": "",
          "status": "In transit"
        },
        {
          "date": "16-09-2025",
          "time": "09:07",
          "place": "",
          "status": "Pick up shipment"
        }
      ]
    }
  }
}

Sample Tracking Numbers

These are real ELTA tracking numbers that can be used for testing and demos:
HH430255172GR
NW870115982GR
HN416904971GR
HN416908528GR
XM630385155GR
XM163617684GR
NK810359673GR
YJ517474043GR
NI065510382GR
XI577975824GR

Tracking Number Format Spec

Use this reference when building the validation logic in the tool:
TRACKING NUMBER FORMAT
======================

Total length: 13 characters

Format A (most common):
  [A-Z]{2}  [0-9]{9}  [A-Z]{2}
  ├─ Prefix ─┤├─ Middle ─┤├─ Country Code ─┤
  e.g. HH 430255172 GR

Format B (rare):
  [0-9]{11}  [A-Z]{2}
  ├── Digits ──┤├─ Country Code ─┤

VALIDATION RULES
================
1. Strip whitespace and convert to uppercase
2. Total length must be exactly 13
3. Detect format:
   - If first char is a letter → Format A
   - If first char is a digit → Format B
4. Format A checks:
   - Chars 1-2: Latin letters only (A-Z)
   - Chars 3-11: Digits only (0-9)
   - Chars 12-13: Valid ISO country code
5. Format B checks:
   - Chars 1-11: Digits only (0-9)
   - Chars 12-13: Valid ISO country code
6. Country code is almost always "GR" — suggest it when unclear

ERROR MESSAGES (return to agent)
================================
- "Invalid length: got {n}, expected 13"
- "Invalid prefix: expected 2 Latin letters, got '{prefix}'"
- "Invalid middle segment: expected 9 digits, got '{middle}'"
- "Invalid country code: '{suffix}' is not a recognized ISO code"
- "Tracking number not found" (valid format, but API returned status 0)