Yes, an operation can monitor an old IVR and a newer AI voice agent together. The useful way to do it is to preserve each system's raw records, then map both into one small event contract built around the customer interaction, its call legs, and the outcome.
Putting two exports into one dashboard is not enough. An IVR may record menu choices, queue changes, transfers, and call identifiers. A voice agent may add transcript turns, tool calls, model versions, and structured outcomes. If those fields are compared directly, the modern path will always look richer. The team still will not know whether the customer completed the job.
The shared layer should answer a simpler set of questions. What happened, when did it happen, which interaction did it belong to, which system produced the evidence, what did the customer need, and was the promised action actually completed?
Make one interaction from many call legs
A customer thinks they made one call. The infrastructure may create several records. The caller enters an IVR, transfers to a queue, reaches an AI agent, and then moves to a person. A provider can create a new identifier for each leg.
Amazon Connect documents this explicitly. Its contact records can multiply as a contact is transferred or called back, and related identifiers connect those records. The exact fields will differ elsewhere, but the operating problem is common.
Create an internal interaction_id for the whole customer attempt. Keep the provider's identifier on every record and assign a separate leg_id to each technical segment. Also store parent_leg_id or another relationship field so a transfer remains visible.
A practical identity record contains:
- the internal interaction identifier;
- the provider and source system;
- the provider call or contact identifier;
- the leg identifier and its parent;
- the known customer identifier or an explicit unknown state;
- the direction, entry number, and start time;
- the workflow or release version that handled the leg.
Do not merge callers merely because two records share a phone number. Shared lines, forwarded numbers, and corrected identities make that shortcut unreliable. Preserve the evidence used for matching and allow the identity to remain unresolved.
Keep raw evidence and add a common event layer
Store the original provider payload unchanged. It is the evidence you need when a normalized value looks wrong or a vendor changes its schema. The common layer sits beside it and gives the operation a stable language.
The OpenTelemetry log data model is a useful reference even when a team does not deploy OpenTelemetry. It separates the time an event occurred from the time it was observed, supports trace and span identifiers, identifies the resource that produced the record, and leaves room for event-specific attributes.
The W3C Trace Context standard provides the related interoperability principle. It defines a common way to pass trace identity across services while retaining room for provider-specific context. A voice operation can apply that principle to its internal interaction and leg identifiers without replacing the original vendor IDs.
For voice operations, a compact event contract can look like this:
event_name— A controlled value such as call started, menu selected, agent entered, transfer requested, or call endedoccurred_at— The source timestamp for the eventobserved_at— When the monitoring pipeline received itinteraction_id— The customer attempt shared across all legsleg_id— The technical segment that emitted the eventsource_system— IVR, carrier, AI agent, contact center, or human desktopworkflow_version— The menu, prompt, policy, or routing release in controlresult— A small controlled state such as succeeded, failed, skipped, or unknownreason_code— A stable reason that can be grouped without parsing free textraw_record_ref— A pointer back to the original evidence
Keep provider-specific detail in attributes. Packet loss, model latency, keypad choice, tool name, or confidence score can stay available without becoming a required field for every source.
Treat the transcript as one artifact
A transcript is valuable, but it is not the timeline and it is not proof of completion. It can omit silence, audio degradation, a failed connection before speech began, or an action that the agent said it completed but did not.
Twilio Voice Insights separates call metadata, connection properties, and media quality indicators in its call summary. That is a useful reminder that text covers only one part of a voice interaction.
Store transcript turns as an artifact linked to the correct leg. Preserve speaker, turn time, language, transcription version, and redaction state when the source provides them. Keep recording access and retention rules separate. A transcript viewer can then sit on top of the timeline without replacing it.
The same rule applies to an AI summary. Save the summary version and the evidence it refers to. Never overwrite the transcript or the structured outcome with a cleaner paragraph generated later.
Separate call delivery from customer outcome
One status column cannot describe both the call and the customer's job. A connected call can produce a failed outcome. A transferred call can lead to a successful resolution.
Use at least two state groups.
The delivery state describes the technical path: offered, ringing, answered, queued, transferred, ended, or failed. The outcome state describes the work: information provided, appointment changed, lead qualified, callback promised, payment unresolved, escalated, abandoned, or unknown.
Then add verification. If an agent says an appointment changed, reconcile the call with the booking record. If a callback was promised, verify that a task gained an owner and a due time. If the caller was transferred, check whether the receiving leg answered.
This is where a shared model becomes useful. The IVR and the voice agent do not need identical telemetry. They need comparable evidence of the same customer job.
Reconcile records after every handoff
Events do not always arrive in order. Some summaries are assembled after the call ends. Twilio notes that completed call summaries are usually available within minutes and can take up to thirty minutes to finish. A dashboard that treats its first webhook as final will create false failures and false successes.
Use provisional states. Close the live call for the operator, but keep the interaction open for reconciliation until expected sources arrive or a defined deadline expires. Make late evidence update the normalized record without erasing its history.
Every handoff should produce a simple check:
- Did the source leg request the transfer?
- Was a destination selected under the current routing rule?
- Did the destination leg begin?
- Did a person or agent accept it?
- Was the customer's context attached?
- Did an outcome or next action receive an owner?
When one step is missing, record the first broken link. That is more actionable than labelling the whole interaction bad.
Build views for decisions
Different teams need different views of the same evidence. Operations needs an interaction timeline that crosses IVR, AI, and human legs. Engineering needs source payloads, versions, latency, and reason codes. A customer-facing teammate needs the request, verified facts, prior actions, outcome, and next action. A product owner needs comparisons between releases.
Avoid a single score that hides those differences. A containment rate can improve while repeat calls rise. Transcript quality can look strong while tool actions fail. Average latency can stay flat while a small call reason deteriorates.
Segment by call reason, language, route, workflow version, time, and destination. Compare like with like. An old IVR used for deterministic balance checks should not be judged by the same conversational measures as an AI appointment agent.
Review mismatches every week
The best review queue is built from disagreement. Find calls where the transcript says completed but the downstream system did not change, transfers with no receiving leg, interactions with two conflicting outcomes, records that never received a customer match, and releases whose unknown rate increased.
Take a small sample of each mismatch group and read the full timeline. Assign the repair to the system that owns the broken link. That may be the IVR map, an event connector, the voice agent's tool policy, a queue rule, or the human follow-up process.
Keep the review bounded. A useful weekly rhythm is to inspect the largest new mismatch cluster, one high-consequence failure, and one random apparently successful interaction. The random check helps catch errors that no rule knows how to select yet.
Where DripTell fits
DripTell AI Calls keeps live call state, transcripts, customer matching, captured fields, outcomes, and next actions with the customer record. The omnichannel inbox gives the next owner a place to continue the work with context.
That does not make every external IVR record automatically compatible. If a legacy IVR remains, treat its exports or events as an integration input. Verify the identifier mapping, event names, late-arriving records, and outcome reconciliation before using the combined view for operational decisions.
Start with one call reason that crosses both systems. Map its legs, choose the minimum common events, and compare the recorded outcome with the real downstream result. Once that chain is trustworthy, add the next call reason. The goal is not a larger dashboard. It is an evidence trail that tells the team where a customer request actually stopped.
DripTell Editorial
Practical guidance reviewed by the DripTell product and customer workflow team.
See how DripTell checks product claims, uses primary sources and handles corrections.
Editorial and source policy



