Skip to content

CallRecord

Stable

One call at a glance for the people who run a voice agent: status, why it ended, the AI's verdict with evidence, the cost and anything a person must fix.

Also known as call log, call summary, recording

Install with npm install @tattva/ui (setup), or copy the code from the kit in Downloads.

Completed call with evidence

Call with Hartley Home assistant

Completed
Started
8 Oct, 14:02
Duration
1:04
Ended because
Caller hung up after the refund
  • Said it is an AI
  • Recording consent captured

Outcome

AI review
Goal met

The caller asked for a refund for a damaged kettle, and the agent refunded £24 to their card.

Taken from the call

Order
40-2219
Reason
Cracked lid
Refund
£24

Cost

Cost by part of the call
Speech to text£0.03
Model£0.09
Voice£0.11
Platform£0.05
Phone line£0.03
Total£0.31. Calculated by code

Transcript

  1. Agent00:00

    Hello, you are talking to the Hartley Home assistant. I am an AI, and this call is recorded.

  2. Caller00:06

    Hi. My kettle arrived with a cracked lid. Order 40-2219.

  3. Agent00:19

    Thanks. I can see the order. Would you like a replacement or a refund?

  4. Caller00:27

    A refund, please.

  5. Agent00:41

    I have refunded £24 to your card ending 4417. It should arrive in 3 to 5 working days.

  6. Caller00:52

    Great, thank you.

The AI says the goal was met and why. Show in transcript marks the line it is based on. Switch the cost to Usage to see what was used.

When to use it

Lets an operator understand one call in seconds: did it work, why did it end, what did it cost, and is there anything they must fix in the agent.

Made of: Title · Status badge · Started, duration, ended because · Needs-you notices · Checks passed · Outcome with AI label · Taken from the call · Cost with Money or Usage switch · Transcript

Use it for

  • The detail view when someone opens a row in a call log.
  • Reviewing calls the AI marked as failed or unsure.
  • Checking that the agent said it is an AI and asked before recording.

Not for

Do and avoid

Call

Completed
Started
8 Oct, 14:02
Duration
1:04
Ended because
Caller hung up after the refund
  • Said it is an AI
  • Recording consent captured

Outcome

AI review
Goal met

The caller asked for a refund and got £24 back.

Taken from the call

Order
40-2219
Reason
Cracked lid
Refund
£24
Do. Facts about the call, never guesses about how the caller felt.

Call

Completed
Started
8 Oct, 14:02
Duration
1:04
Ended because
Caller hung up after the refund
  • Said it is an AI
  • Recording consent captured

Outcome

AI review
Goal met

The caller asked for a refund and got £24 back.

Taken from the call

Order
40-2219
Reason
Cracked lid
Refund
£24
Caller mood
Frustrated 72%
Avoid. A mood score judges the caller and cannot be checked.

Do

  • Show the reason with every verdict, and link it to the lines it rests on.
  • Keep a not sure verdict neutral. It is honest, not a warning.
  • Use amber only for a missing AI disclosure or recording consent: a person must fix the agent.

Avoid

  • Do not show emotion scores about the caller, such as frustrated 72%.
  • Do not use amber for a Live badge. Live uses the danger colour or neutral.
  • Do not show a verdict while the call is still live.

On a phone

  • The facts fold into two columns, with why it ended on its own line, and the card padding shrinks a step.
  • The transcript scrolls inside its own area, about 18rem tall, so the cost and outcome stay close.
  • The Money or Usage switch and Show in transcript keep a 44px tap area on touch screens.

Seen in products

  • Vapi's call log shows ended reason, start, duration and cost, with a money or quantity toggle on cost.
  • Bland's call log shows direction, duration, status, version and tags.
  • Retell AI QA checks hallucination, interruptions, sentiment and tool use, with transcript-level evidence.
  • ElevenLabs post-call analysis gives a success evaluation of success, failure or unknown with a rationale, plus extracted data.

Build your next AI screen with Tattva.

Free and open, with the code. Start in one line.

Get started