Install
openclaw skills install @warlikelaux/teletype-supportSupport workflows for the Teletype MCP server: triage the unanswered inbox, draft and send replies safely, summarize clients, escalate issues, and prepare shift handovers. Use when the task mentions Teletype conversations, the support queue, operator work, or client follow-up.
openclaw skills install @warlikelaux/teletype-supportRegulations for working with a Teletype support project through its MCP tools. Each tool's parameters live in its own schema. This skill covers the order of steps and the safety rules.
If Teletype tools are absent, read connection instructions and help the user configure the MCP server. Installing this skill alone does not connect a project. Never request the project token in chat.
get_capabilities once. It reports the project identity, read-only mode, and active toolsets.find_conversations, find_messages, list_clients, lookup_client_profile, read_conversation_thread, read_client_history, list_workspace_metadata, get_project_status) are safe to call whenever the task needs them. For old message text, continue find_messages through pages while has_more is true.confirm: true in the arguments and the user's explicit approval. "Send it" approves one specific message, not a batch.dialog_id, message_id, or channel_id, pass it to the relevant tool directly. Do not search that ID as message text, client name, or last-message text.send_reply_to_client and send_whatsapp_template: when the target is ambiguous (new conversation, client+channel instead of recipient_dialog_id), run dry_run: true first and show the resolved target. Send with confirm: true only after approval.list_clients(phone=...). create_dialog_by_phone changes data: it can create a dialog or assign the project owner to an existing open dialog. Preview with dry_run: true and require approval before confirm: true.list_workspace_metadata(resource: "categories") and use the exact name. Never invent or translate a category. Closing without a category needs no lookup.structuredContent: distinguish accepted from delivery_confirmed, and check partial_errors for annotate_client_record and resolve_conversation. If a write timed out or was cancelled, check the conversation state before retrying.mark_seen is declined. Say so instead of retrying.link_to_dialog, link_to_message).find_conversations(status: "unanswered", limit: 10). Add channel if asked.read_conversation_thread(dialog_id or client) to read recent messages.lookup_client_profile when context is missing.dry_run: true if the target was ambiguous, then send with confirm: true.accepted, delivery_confirmed, and the message IDs.lookup_client_profile(client).read_conversation_thread(dialog_id).get_project_status(aspect: "all") for balance, operator availability, API status, and channel issues.find_conversations(status: "unanswered", limit: 20) for the queue.