skills/quo/SKILL.md
Quo (formerly OpenPhone) business phone system — check calls, texts, voicemails, missed calls, send SMS/texts, manage contacts, read call transcripts and summaries, get recordings. Use for anything related to the work phone or business line.
npx skillsauth add technickai/openclaw-config quoInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Query your Quo (formerly OpenPhone) business phone — calls, texts, contacts, transcripts.
API key from my.quo.com → Settings → API. Configure via gateway under
skills.entries.quo.apiKey. OpenClaw injects it as QUO_API_KEY automatically.
{baseDir}/quo numbers List phone numbers
{baseDir}/quo conversations [filters] List conversations
{baseDir}/quo contacts [--limit N] List contacts
{baseDir}/quo search-phone <phone> [--refresh] Find contact by phone (cached)
{baseDir}/quo gather <phone> [--since ISO] [--until ISO] [--limit N] [--refresh]
{baseDir}/quo custom-fields List contact custom fields
{baseDir}/quo users List workspace users
{baseDir}/quo summary <callId> Get AI call summary
{baseDir}/quo transcript <callId> Get full dialogue transcript
{baseDir}/quo recordings <callId> Get recording URLs
{baseDir}/quo voicemails <callId> Get voicemail + transcript
{baseDir}/quo send --from <num> --to <num> <message>
{baseDir}/quo messages --number-id <id> --participant <phone> [--limit N]
{baseDir}/quo calls --number-id <id> --participant <phone> [--limit N] [--created-after ISO] [--created-before ISO]
{baseDir}/quo raw [METHOD] <endpoint> [json-body]
--phone <number-or-id> Filter by Quo phone line (repeatable)
--updated-after ISO Conversations updated after date
--updated-before ISO Conversations updated before date
--created-after ISO Conversations created after date
--created-before ISO Conversations created before date
--include-inactive Include inactive/snoozed conversations
--unknown Only show conversations with unrecognized numbers
--limit N Max results (default 10)
Full OpenAPI spec: https://openphone-public-api-prod.s3.us-west-2.amazonaws.com/public/openphone-public-api-v1-prod.json
| Endpoint | Method | Description |
| ------------------------------ | ------- | -------------------------------------------------------------- |
| /v1/phone-numbers | GET | List phone numbers |
| /v1/conversations | GET | List conversations (filterable) |
| /v1/messages | GET | List messages for a conversation |
| /v1/messages | POST | Send a text message |
| /v1/messages/{id} | GET | Get message by ID |
| /v1/calls | GET | List calls (with date filters) |
| /v1/calls/{callId} | GET | Get call by ID |
| /v1/call-summaries/{callId} | GET | AI-generated call summary |
| /v1/call-transcripts/{id} | GET | Full dialogue transcript with speaker attribution |
| /v1/call-recordings/{callId} | GET | Recording URLs (MP3) |
| /v1/call-voicemails/{callId} | GET | Voicemail + transcript |
| /v1/contacts | GET | List contacts (paginated) |
| /v1/contacts | POST | Create a contact |
| /v1/contacts/{id} | GET | Get contact by ID |
| /v1/contacts/{id} | PATCH | Update contact (replaces entire defaultFields!) |
| /v1/contacts/{id} | DELETE | Delete a contact |
| /v1/contact-custom-fields | GET | List custom contact fields |
| /v1/users | GET | List workspace users |
| /v1/webhooks/* | Various | Webhook management for messages, calls, summaries, transcripts |
Returns dialogue[] array with speaker-attributed entries:
{
"data": {
"callId": "AC...",
"dialogue": [
{
"content": "Hello",
"start": 0.16,
"end": 0.48,
"identifier": "+15551234567",
"userId": "US..."
},
{
"content": "Hi, my name is Jane",
"start": 1.0,
"end": 2.5,
"identifier": "+15559876543",
"userId": null
}
]
}
}
defaultFields: firstName, lastName, company, role, emails[], phoneNumbers[]customFields: Array of {key, value} pairs (keys from /contact-custom-fields)defaultFields — always include ALL existing fieldsProperty Associated (key: 1712532493777, type: string)Address (key: 1700067557182, type: address)search-phone, --unknown, and gather
use a local cache at /tmp/quo-contacts-cache.json (5-min TTL, use --refresh to
rebuild)gather defaults to last 30 days, text only (no audio URLs or media)development
A pause before an artifact goes into the world. Reviews external comms, money, calendar, public posts, or send-as-operator actions through a small panel of independent lenses (empathy first) and returns a verdict of pass / edit / hold / block.
development
Route real repo work to Claude Code instead of editing by hand. Triggers on "claude code" or "cc", and on any request to edit, fix, refactor, or open a PR in a repo outside ~/.openclaw/workspace. Claude Code picks up the repo's CLAUDE.md / AGENTS.md, applies its standards, and knows the /ai-coding-config:multi-review and /ai-coding-config:address-pr-comments workflows we want bug bots checking against.
testing
Drive a task all the way to a verified done state — write DoD first, verify each item with evidence, stop only at named stop conditions.
tools
Design, build, and maintain autonomous OpenClaw workflows (stewards). Use when creating new workflow agents, improving existing ones, evaluating automation opportunities, or debugging workflow reliability. Triggers on "build a workflow", "create a steward", "automate this process", "workflow audit", "what should I automate", "create a cron job", "schedule a recurring task", "build a scheduled job".