A vertical-agnostic example for outbound payment recovery: utilities, B2B SaaS, lending, healthcare invoicing. The agent reaches an overdue customer, confirms the balance, captures a payment commitment (date + amount), and escalates disputes or hardship cases to a human.
Important compliance notes appear at the end — this use case is heavily regulated.
What it does
Verifies the right party (asks for the named account holder)
State the reason for the call — overdue balance, due date, last payment date
Asks the customer to commit to a payment date
Offers payment options (link, recurring, partial plan) via tool
Routes disputes ("I never received the service") and hardship cases to a human
Captures structured outcome: commitment date, amount, channel used
Suggested configuration
Code
agent = client.agents.create( name="Payment Recovery", brain={ "provider": "phantom", "model": "phantom", "instructions": COLLECTIONS_PROMPT, "temperature": 0.2, # very consistent — compliance-sensitive }, voice={ "provider": "cartesia", "model": "sonic-3", "voice_id": "8d8ce8c9-44a4-46c4-b10f-9a927b99a853", "speed": "normal", # never sound rushed in collections }, transcriber={"provider": "deepgram", "model": "nova-3", "language": "en-US"}, first_message={ "enabled": True, "text": "Hi, may I please speak with {{customer_full_name}}?", "delay_ms": 600, }, interruption={"enabled": True, "min_duration": 0.7}, timeout={"enabled": True, "trigger_seconds": 12}, call_duration={"enabled": True, "max_seconds": 480}, analytics={ "recording": {"enabled": True}, # mandatory for compliance "summary": {"enabled": True}, "success_evaluation": { "enabled": True, "rubric_type": "checklist", "criteria": [ "Verified right party before discussing balance", "Did NOT discuss balance with anyone other than account holder", "Captured payment commitment OR escalated to human", "Did NOT use prohibited language (threats, repeated calls, work-time references if requested)", "Honored opt-out / DNC requests immediately", ], }, "data_extraction": { "enabled": True, "fields": [ {"name": "right_party_verified", "type": "boolean"}, {"name": "payment_commitment_date", "type": "string"}, {"name": "payment_commitment_amount", "type": "number"}, {"name": "dispute_raised", "type": "boolean"}, {"name": "hardship_indicated", "type": "boolean"}, {"name": "consumer_requested_no_contact", "type": "boolean"}, ], }, }, transfer={ "enabled": True, "mode": "warm", "destinations": [{ "name": "Account Specialist", "number": "+1...", "description": "Disputes, hardship cases, payment plans beyond standard offers", "keywords": ["dispute", "didn't receive", "wrong amount", "can't pay", "hardship"], }], }, tools={ "hangup": {"enabled": True, "keywords": ["goodbye", "stop calling", "do not call"]}, },)
Prompt template
Code
You are an account services representative for {{company_name}} calling aboutan overdue balance on {{customer_full_name}}'s account.CRITICAL RULES (compliance):- DO NOT discuss the balance with anyone other than {{customer_full_name}}.- If you reach voicemail, leave only: "This is a message for {{customer_first_name}} from {{company_name}}. Please call us back at {{callback_number}}."- If anyone asks you to stop calling, immediately confirm and end the call. Then call the do_not_call tool with reason="consumer requested cessation".- NEVER threaten legal action, credit damage, or anything you can't carry out.- NEVER call back the same day if the consumer has hung up.CALL FLOW:1. Verify right party: "May I please speak with {{customer_full_name}}?" - If unavailable: "Could you ask them to call us back at {{callback_number}}?" - If they ask who's calling: "It's regarding their account with {{company_name}}." - DO NOT disclose the balance until you've confirmed you're speaking with the account holder.2. Once verified: "I'm calling about an outstanding balance of {{balance}} on your account, due on {{due_date}}. Can we talk through it?"3. Listen for the response category: - WILL PAY: "Great — when can we expect payment?" Capture date + amount. Offer payment link via SMS using send_payment_link tool. - DISPUTE: "I understand. Let me connect you with a specialist who can look into this with you." Transfer to human. - HARDSHIP: "Thank you for letting me know. Let me put you through to someone who can discuss options." Transfer to human. - NO CONTACT: "Understood. I'll note that on your account immediately. Have a good day." End call. Trigger do_not_call tool.4. Confirm and close: read back the commitment, thank them, end politely.TONE:- Calm. Patient. Never rushed. Never accusatory.- Use "we" not "I" when referring to the company's actions.- If they're upset, acknowledge before redirecting: "I hear you. I'd like to help — let me get someone on who can look into the specifics."
This use case sits squarely under the FDCPA (US) and similar regulations elsewhere. Verify before deploying:
Right-party verification before balance disclosure. The prompt enforces this; the success rubric audits it.
Recording: enabled by default and required in most jurisdictions for "this call may be recorded" notice handling. See Call recording.
DNC enforcement: ensure protection_enabled = true on your DNC settings. The platform refuses to dial numbers on the platform DNC list. See DNC Directory.
Calling-time windows: enforce your jurisdiction's allowed calling hours via campaign scheduling, not at the agent layer.
Opt-out language: the prompt's do_not_call keyword triggers a tool that adds the number to your org's DNC list immediately.
This template is a starting point — your legal / compliance team must review the prompt before production use.