Use case · Implementation pattern

Let an agent call a person when it needs a decision.

Build an explicit human approval step into an agent workflow. Chert’s outbound FaceTime path connects the conversation; your application decides what can resume.

A call at a meaningful stopping point

Imagine an agent preparing a booking and discovering that the original option is unavailable. It can pause the task and ask an authorized person to choose an alternative. A call is useful when the tradeoff is easier to discuss than to express in a single confirmation button.

This example describes an application you can build. Chert does not automatically approve actions, control a desktop, or infer who is permitted to decide.

Keep the task paused until there is a valid decision

Persist the pending action before calling. Give the conversation a clear purpose and bound the available choices.

  1. Record a task ID, the allowed decision maker, and an expiry for the request.
  2. Prepare your LiveKit room and an agent that stays silent until the bridge is ready.
  3. Use the documented outbound API with a ready, enabled line and an authorized recipient.
  4. Begin the greeting on bridge readiness, then collect and confirm the decision.
  5. Resume the task only after your backend validates the decision. If the call fails or times out, keep the task paused and use your fallback workflow.

Design for busy lines and missed calls

A Chert line supports one concurrent FaceTime call. Queue pending approvals in your application, avoid duplicate calls for the same task, and set a timeout. An answered call is not an approved action.

Keep a concise audit record of the task and decision without collecting unnecessary conversation data. Screen sharing, remote control, and automatic desktop execution are separate features you would need to implement and verify.

Measure decisions, not just calls

Track approval requests, reached decision makers, validated decisions, time to decision, and tasks resumed. Count an expired or unanswered call as an unresolved request, not a completed handoff.

Keep exploring