OpenClaw Phone Receipt

ReviewAudited by ClawScan on May 10, 2026.

Overview

The phone-call automation is mostly purpose-aligned, but it also directs Telegram summary delivery and changes completion-call behavior without clearly scoped messaging details.

Install only if you want persistent phone receipt automation and understand that successful non-urgent tasks may be summarized via Telegram. Before use, configure your own TO_NUMBER, protect the ElevenLabs/Twilio credentials, and confirm whether completion calls or only failure/urgent calls are intended.

Findings (7)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

Private task details could be sent through Telegram when the user expected only phone receipt behavior or local completion handling.

Why it was flagged

This creates an external messaging path for task summaries, but the artifacts do not define the Telegram account, recipient, credential source, or what summary content is safe to send.

Skill content
All other non-urgent successful tasks: - send Telegram text summary only (no phone call). ... use message delivery (Telegram text) as default receipt path.
Recommendation

Require explicit user opt-in for Telegram delivery, declare the Telegram capability/configuration, identify the recipient, and limit or redact summary content.

What this means

A user who asks to be called after completion may not receive that call and may instead have a Telegram summary sent.

Why it was flagged

The advertised completion-call use case conflicts with the enforced default policy that disables completion calls and only calls on failure or urgent tasks.

Skill content
Use when user asks to call them after finishing/failing a task ... policy.onComplete=false ... Phone call only when: 1) task failed, OR 2) user explicitly marks task as urgent
Recommendation

Align the description and policy: either clearly state the skill is failure/urgent-only, or honor explicit completion-callback requests.

What this means

Running or automatically invoking the script can place calls and potentially incur provider costs.

Why it was flagged

The script initiates an outbound phone call through ElevenLabs/Twilio using the configured phone number and API key; this is central to the skill but is a high-impact external action.

Skill content
curl -sS -X POST "https://api.elevenlabs.io/v1/convai/twilio/outbound-call" ... -d "$payload"
Recommendation

Verify the target number and provider account before testing, and keep calls limited to explicit user-approved policy conditions.

What this means

If copied unchanged, test or policy-triggered calls may go to an unintended number.

Why it was flagged

The example environment file contains a concrete phone number rather than a blank placeholder, and the setup guide tells users to copy this file before configuring the skill.

Skill content
TO_NUMBER=+639178688896
Recommendation

Replace the sample number before any test call; the publisher should leave TO_NUMBER blank or use an obviously non-routable placeholder.

What this means

Anyone with access to the env file or shell environment could potentially use the ElevenLabs account to initiate calls.

Why it was flagged

The skill needs provider credentials and account identifiers to place outbound calls; this is expected for the integration but sensitive.

Skill content
Requires `.env.elevenlabs-call` with: - `ELEVENLABS_AGENT_ID` - `ELEVENLABS_OUTBOUND_PHONE_ID` - `TO_NUMBER` ... `ELEVENLABS_API_KEY` can come from shell env or `.env.elevenlabs-call`.
Recommendation

Use a limited-scope API key, protect the env file, avoid committing it, and rotate credentials if exposed.

What this means

A malicious or accidentally edited env file could execute shell commands when the call script runs.

Why it was flagged

The script loads the env file with shell `source`, so the file is treated as executable shell syntax rather than only parsed as key-value data.

Skill content
if [[ -f "$ENV_FILE" ]]; then ... set -a; source "$ENV_FILE"; set +a
Recommendation

Keep the env file trusted and private, or change the loader to parse only expected key-value variables.

What this means

Once enabled, later failed or urgent tasks may trigger notification behavior until the state is disabled or changed.

Why it was flagged

The skill stores persistent notification state and policy under the workspace memory directory for reuse across sessions.

Skill content
path = os.path.join(root, "memory", "phone-receipt-state.json") ... "policy": {"onComplete": False, "onFailure": True, "onUrgent": True}
Recommendation

Use `phone-receipt=off` when no longer needed and review or delete the state file if behavior is unexpected.