Plivo skill
Use Plivo's REST API for SMS/MMS/WhatsApp messaging, voice calls, OTP verification, phone numbers, conferences, recordings, SIP trunks, subaccounts, and AI voice agents (audio streaming over WebSocket). Trigger when the user mentions Plivo, or asks to send a message, place a call, verify a phone via OTP, build/connect a voice agent, search/buy/release a phone number, manage WhatsApp templates, or check Plivo account state.From its SKILL.md
npx -y skills add priyanshu-plivo/plivo-skillAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
4.3 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it
Plivo Skill
Plivo is a CPaaS provider for voice, SMS, WhatsApp, and Verify (OTP). All operations are HTTP requests with Basic auth.
Fast path
For 80% of tasks (send SMS, OTP, make a call, list messages, get balance, search numbers): read cheatsheet.md first. One file, ~100 lines, ready-to-copy curl snippets.
For the other 20% (deeper API control, compliance, voice streaming, etc.): lazy-load the relevant api/<resource>.md via the Read tool. Do NOT load every api file upfront.
Before any action
- Auth ready? — see
auth.md(needsPLIVO_AUTH_IDandPLIVO_AUTH_TOKENenv vars) - Classify the action by tier — see
safety.md(Tier 0 read, Tier 1 confirm, Tier 2 explicit-confirm, Tier 3 hand off to user) - Is the user asking for something Plivo doesn't expose via API? — check
not-supported.md
API resources (lazy-load)
Messaging: api/messages.md, api/whatsapp.md, api/10dlc.md, api/toll-free-verification.md, api/powerpack.md, api/media.md
Voice: api/calls.md, api/conferences.md, api/recordings.md, api/endpoints.md, api/audio-streams.md
Verify: api/verify.md
Numbers: api/numbers.md, api/compliance.md
Account: api/subaccount.md, api/application.md, api/account.md, api/sip-auth.md, api/pricing.md
Other: api/sip-trunking.md, api/number-masking.md
XML reference (voice flow control)
For voice calls, answer_url must return Plivo XML. Lazy-load:
xml/core.md— Response, Speak, Play, Wait, GetInput, GetDigits, DTMF, Hangup, Redirect (90% of needs)xml/advanced.md— Dial, Number, User, Conference, Record, Stream, Message, PreAnswer, SIPDigits
Webhook payload reference (incoming events)
When Plivo POSTs events to your URLs (form-encoded, NOT JSON):
webhooks/overview.md— patterns, retries, content-type, where webhooks come fromwebhooks/sms.md— DLR + inbound SMS payloadswebhooks/call.md— hangup, ring, AMD, fallback, HangupCause catalogwebhooks/recording.md— recording complete + transcriptionwebhooks/stream.md— audio stream lifecycle + WebSocket message formatwebhooks/verify.md— Verify session eventswebhooks/signature.md— V3 HMAC verification (always do this)
Workflows (multi-step recipes)
workflows/send-otp.md, workflows/send-transactional-sms.md, workflows/make-outbound-call.md, workflows/send-whatsapp-template.md, workflows/subaccount-lifecycle.md
Plivo API quirks (don't trip on these)
- Response array keys vary:
objects[]for most, butcalls[](live),conferences[],brands[],campaigns[],compliances[],profiles[],numbers[](buy response wraps withstatus:"fulfilled"). Always check the response shape. - HTTP status codes vary: POST creation → 201, POST update (e.g.,
/Number/{n}/) → 202 "changed" (async accept), DELETE → 204. Don't assume 200 == success. /Masking/Session/wraps list inresponse{...}— extra unwrap needed./MultiPartyCall/usesmeta.countnotmeta.total_count./Verify/Session/list returns HTTP 400"no attempts found"if zero sessions — treat 400 as no-data, not error.- Money fields are STRINGS (
"cash_credits":"10","voice_rate":"0.00880"). Parse before math. - Path naming quirks:
/TollfreeVerification/(lowercasef!),/SipAuth/IpAccessControlList/(not/AuthIp/),/PhoneNumber/Compliance/(not/Compliance/Application/). - Application's
log_incoming_messageis singular (not plural). - ACL ID field is
ip_acl_uuid(notuuidorip_access_control_list_uuid). - XML attributes are camelCase, REST JSON body is snake_case for the SAME params:
<Stream contentType="...">(XML) vs{"content_type":"..."}(REST). Don't mix.
How to optimize for speed
- Use cheatsheet.md for any task that looks "standard"
- Read api/*.md ONLY when a specific param or behavior isn't in cheatsheet
- Never load all api files; resolve one at a time
What ships with it: 42 files
86.0 KB alongside SKILL.md
api/
- 10dlc.md1.8 KB
- account.md1.0 KB
- application.md1.2 KB
- audio-streams.md2.0 KB
- calls.md2.8 KB
- compliance.md3.5 KB
- conferences.md2.1 KB
- endpoints.md803 B
- media.md1.5 KB
- messages.md2.2 KB
- number-masking.md1.2 KB
- numbers.md3.1 KB
- powerpack.md1.3 KB
- pricing.md1.7 KB
- recordings.md1.3 KB
- sip-auth.md2.3 KB
- sip-trunking.md1.6 KB
- subaccount.md3.9 KB
- toll-free-verification.md1.5 KB
- verify.md1.9 KB
- whatsapp.md2.1 KB
webhooks/
- call.md2.4 KB
- overview.md1.9 KB
- recording.md1.8 KB
- signature.md2.2 KB
- sms.md1.8 KB
- stream.md2.5 KB
- verify.md1.3 KB
workflows/
- make-outbound-call.md1.9 KB
- send-otp.md1.5 KB
- send-transactional-sms.md1.6 KB
- send-whatsapp-template.md2.0 KB
- subaccount-lifecycle.md3.6 KB
- auth.md1.1 KB
- cheatsheet.md2.8 KB
- CONTRIBUTING.md1.5 KB
- LICENSE1.0 KB
- not-supported.md1.8 KB
- README.md2.5 KB
- safety.md2.2 KB
2 more files not listed here. See all 42 in the repository.