Feedback Collection with Outbound Calls
An automated post-trip feedback agent automatically calls passengers after a bus trip to capture structured ratings, verify punctuality and cleanliness, log complaints, and record audit trails.
Since these are outbound calls initiated by the system, unanswered calls or busy signals are treated as standard operational outcomes rather than system failures.
What it does
- Dials passengers after completed trips using outbound telephony primitives
- Gathers a structured 1–5 comfort rating, punctuality confirmation, and driver/cleanliness feedback
- Answers questions and logs detailed complaints when something went wrong during the trip
- Automatically logs unanswered or busy calls with disposition codes (
CALL_UNANSWERED,CALL_BUSY) for scheduled retry - Clears audio buffers immediately on barge-in when the passenger speaks
- Plays the full closing confirmation before cleanly disconnecting the call leg
This sample
TransitExpress Feedback Agent on AgentDuet with Gemini Live. Full source: agentduet-samples / outbound-feedback.
State flow: Outbound make_call() → dial(ring_time_seconds=25) → LIVE on answer → Gemini Live voice survey → disconnect()
Prerequisites
- Python 3.12+
- Get an API key and connector UUID at agentduet.com
- Google Gemini API key (
GEMINI_API_KEY) with Gemini Live access
Tutorial
Step 1: Clone the sample
Step 2: Install
Step 3: Configure .env
Step 4: Run
Step 5: Test the Outbound Flow
- Answer the Call: The agent opens conversationally: “Hi there! I’m calling from TransitExpress’s virtual support team about your bus ride from New York to D.C. Do you mind if I ask you a couple of quick questions?”
- Agree to Survey: Say “Sure” or “Go ahead”. The agent thanks you and asks for your comfort score (1 to 5).
- Punctuality & Cleanliness: Provide feedback on punctuality and driver service/cleanliness.
- Closing: The agent saves the structured record to
data/feedback_results.jsonl, delivers a warm goodbye, and disconnects cleanly.
