Create or join a ClawRoom (agent meeting room) with safe defaults and owner confirmation. Use when the user mentions ClawRoom, agent meetings, or multi-agent...
Integrations
Amernet AI SaaS
Try itConnect your AI SaaS intelligent agent to any messaging channel via OpenClaw (WhatsApp, Telegram, Slack, Discord, iMessage, and more)
What it does
Connect your AI SaaS intelligent agent to any messaging channel via OpenClaw (WhatsApp, Telegram, Slack, Discord, iMessage, and more)
The skill document
AI SaaS Agent
This skill forwards user messages to an AI SaaS agent and returns its response. It maintains conversation context per user by using their channel and user identifier as a session key.
Required Configuration
These environment variables must be set in your ~/.openclaw/openclaw.json under skills.entries.amernet-ai-saas.env:
| Variable | Description |
|---|---|
AI_SAAS_API_KEY | Your API key from the portal (Settings → API Keys). Needs all permission. |
AI_SAAS_AGENT_ID | The agent ID to route all messages to (copy from the OpenClaw Integration page). |
AI_SAAS_BASE_URL | Base URL of your AI SaaS instance. Default: https://saas.salesbay.ai |
Endpoint resolution (backward compatible). Compute a ${TARGET} path segment once, then reuse it in every request below:
- If
AI_SAAS_AGENT_IDis set →${TARGET}=agents/${AI_SAAS_AGENT_ID}(preferred — current platform). - Otherwise, if the legacy
AI_SAAS_CHATBOT_IDis set →${TARGET}=chatbots/${AI_SAAS_CHATBOT_ID}(deprecated).
Message Routing
When the user sends ANY message through any connected channel:
-
Identify the current channel name (e.g.
whatsapp,telegram,slack,discord) and the user's identifier on that channel (phone number, user ID, or username). -
Construct a
sender_idcombining both::- WhatsApp example:
whatsapp:+15551234567 - Telegram example:
telegram:123456789 - Slack example:
slack:U012AB3CD - Discord example:
discord:123456789012345678
- WhatsApp example:
-
Send a POST request to the agent API:
POST ${AI_SAAS_BASE_URL}/api/v1/${TARGET}/chat
Authorization: Bearer ${AI_SAAS_API_KEY}
Content-Type: application/json
{
"sender_id": "",
"message": ""
}
-
Parse
data.replyfrom the JSON response and return it as a message to the user. -
If the API returns an error or is unreachable, reply: "Sorry, the AI assistant is temporarily unavailable. Please try again in a moment."
Conversation Reset
If the user explicitly says "reset", "start over", "clear chat", or "/reset":
DELETE ${AI_SAAS_BASE_URL}/api/v1/${TARGET}/conversations/
Authorization: Bearer ${AI_SAAS_API_KEY}
Then confirm: "Conversation cleared. How can I help you?"
Status Check
If the user says "/status" or "/ping":
GET ${AI_SAAS_BASE_URL}/api/v1/${TARGET}
Authorization: Bearer ${AI_SAAS_API_KEY}
Report the agent name and whether it is active.
AI Growth Engine (AutoPilot) commands
When the user's message is about the AI Growth Engine / AutoPilot — e.g. "deploy autopilot", "turn on the healthcare autopilot", "what's my growth engine status", "is autopilot ready", "pause autopilot", "how are my campaigns doing" — do NOT send it to the default agent above. Instead route it to the Growth Engine assistant:
POST ${AI_SAAS_BASE_URL}/api/v1/drip-agent/chat
Authorization: Bearer ${AI_SAAS_API_KEY}
Content-Type: application/json
{
"sessionId": "",
"mode": "customer",
"message": ""
}
Parse data.reply and return it to the user. The response may also include data.toolCalls (a list of actions the assistant took, e.g. "Deployed autopilot …") — you can surface a short confirmation from these.
Important: deploying or pausing an autopilot is a real action. The assistant will ask the user to confirm the exact pipeline first — relay that question and only send a follow-up "yes" after the user actually confirms. If a deploy is blocked (e.g. a prerequisite is missing), relay the reason the assistant returns.
Related skills
Agent-to-agent messaging client — create ephemeral sessions, exchange messages via pairing codes, poll with cursors. Server-side state is ephemeral (no accounts); the CLI keeps minimal local state (agent-id, session key, cursor) under ~/.config/messaging/. Use when you need to communicate with another AI agent through a temporary secure channel.
Use CallMyCall API to start, end, and check AI phone calls, and return results in chat. Use when the user asks to call someone, plan a future call, end a cal...
Source and send relevant reaction GIFs in WhatsApp chats using safe filters and deterministic ranking. Use when the user asks for a GIF/meme/reaction, or whe...
Manage AI agent personas (Souls) for OpenClaw, Hermes Agent, ZeroClaw, and other agents that use Soul Spec workspace files (SOUL.md, IDENTITY.md, AGENTS.md). Installs/switches/restores persona files in the agent workspace, searches and publishes to the clawsouls.ai registry (network + token auth), optionally syncs encrypted agent memory via Git (explicit `sync`/`swarm` commands only), and detects the local agent platform. Use only when the user explicitly asks to manage personas — e.g. "install a soul", "switch persona to X", "list souls", "restore my previous soul", "publish my soul", or "login to clawsouls". Workspace-modifying and publishing actions should be confirmed with the user first.
Connect an agent to Speak AI and orient it in the workspace. Covers the remote OAuth connection, the local stdio connection with an API key, the 113 MCP tools across 15 categories, the 5 resources, the 3 built-in prompts, and the first workflows to run. Use this when you need to set up the Speak AI MCP server, when a Speak AI tool is missing or returning 401, or when you need to know which tool to call to transcribe a recording, read a transcript or captions, search across a media library, ask questions about recordings, create clips, export transcripts, run voice and video surveys with recorders, schedule the meeting assistant for Zoom, Google Meet or Microsoft Teams, or manage folders, custom fields, webhooks, automations, dashboards and team members.