OpenClaw Phone Receipt
Scanned@tuofangzhe
npx machina-cli add skill @tuofangzhe/openclaw-phone-receipt --openclawOpenClaw Phone Receipt
Use this skill to manage phone callback notifications.
Commands to honor
phone-receipt=on→ enable phone receipt policyphone-receipt=off→ disable phone receipt policy
State file:
memory/phone-receipt-state.json
Default behavior
- If user asks for callback on completion/failure, set
enabled=true. - Default policy is now:
policy.onComplete=falsepolicy.onFailure=truepolicy.onUrgent=true
- Persist state to
memory/phone-receipt-state.json. - For immediate test call, run
scripts/trigger_call.sh.
Delivery strategy (must follow)
- Phone call only when:
- task failed, OR
- user explicitly marks task as urgent (e.g., “urgent/high-priority”).
- All other non-urgent successful tasks:
- send Telegram text summary only (no phone call).
When phone is not required by policy, use message delivery (Telegram text) as default receipt path.
Tools/scripts
- Toggle state:
python3 skills/openclaw-phone-receipt/scripts/set_phone_receipt_state.py onpython3 skills/openclaw-phone-receipt/scripts/set_phone_receipt_state.py off
- Trigger call now:
bash skills/openclaw-phone-receipt/scripts/trigger_call.sh
Call prerequisites
Requires .env.elevenlabs-call with:
ELEVENLABS_AGENT_IDELEVENLABS_OUTBOUND_PHONE_IDTO_NUMBER
ELEVENLABS_API_KEY can come from shell env or .env.elevenlabs-call.
For full setup (Twilio purchase/verify, ElevenLabs import, key scopes, troubleshooting), read:
references/setup.md
For ClawHub upload checklist (version/changelog/size requirements), read:
references/publish-clawhub.md
Failure handling
If call fails, return concise root cause and next action:
- unverified target number (Twilio trial)
- missing ConvAI scope (
convai_read) - missing agent/phone ids
Overview
This skill manages outbound phone callback notifications via ElevenLabs and Twilio. It triggers calls for task completion or failure per a persistent policy and can persist settings across sessions. If the policy doesn’t require a call, a Telegram text receipt is sent instead.
How This Skill Works
The skill stores its state in memory/phone-receipt-state.json, including whether receipts are enabled and the delivery policy. You can enable or disable phone receipts with phone-receipt=on/off, and perform an immediate test call with trigger_call.sh. Prerequisites include a .env.elevenlabs-call file with ELEVENLABS_AGENT_ID, ELEVENLABS_OUTBOUND_PHONE_ID, TO_NUMBER, and ELEVENLABS_API_KEY either from the environment or the file.
When to Use It
- User asks to call them after finishing a task
- User asks to call them after a task fails
- User wants to enable or disable phone receipts (phone-receipt=on/off)
- User wants to test call quality using a quick test
- User wants phone receipt behavior to persist across sessions
Quick Start
- Step 1: Set the desired state with python3 skills/openclaw-phone-receipt/scripts/set_phone_receipt_state.py on|off
- Step 2: If needed, trigger a test call with bash skills/openclaw-phone-receipt/scripts/trigger_call.sh
- Step 3: Verify the state persisted in memory/phone-receipt-state.json and the policy is applied
Best Practices
- Follow the delivery strategy: only call on failure or when the task is marked urgent; otherwise send a Telegram text receipt
- Keep the memory/phone-receipt-state.json updated after any change to policy or enabled state
- Ensure prerequisites are in place: .env.elevenlabs-call and valid ElevenLabs/Twilio setup
- Use trigger_call.sh for immediate test calls to verify setup
- If a call fails, return a concise root cause and the next action (e.g., verify number, ConvAI scope, or IDs)
Example Use Cases
- User finishes a task and marks it as urgent; system makes a phone callback
- User asks for a callback after a task fails; system dials the number via ElevenLabs+Twilio
- User toggles phone receipts on with phone-receipt=on to enable callbacks
- User runs a test call to verify call quality using trigger_call.sh
- User wants phone receipt behavior to persist across sessions and sets the state accordingly