Connect your AI SaaS intelligent agent to any messaging channel via OpenClaw (WhatsApp, Telegram, Slack, Discord, iMessage, and more)
Scanned 9/5/2026
Install to Claude Code
npx -y skills add dvcrn/openclaw-skills-marketplace --skill amernet-ai-saas --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Amernet Ai Saas?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/dvcrn-amernet-ai-saas)More formats (shields.io, HTML) on the badges page.
---
name: amernet-ai-saas
description: "Connect your AI SaaS intelligent agent to any messaging channel via OpenClaw (WhatsApp, Telegram, Slack, Discord, iMessage, and more)"
homepage: https://saas.salesbay.ai
---
## AI SaaS Chatbot
This skill forwards user messages to an AI SaaS chatbot 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_CHATBOT_ID` | The chatbot ID to route all messages to (copy from the Chatbots page). |
| `AI_SAAS_BASE_URL` | Base URL of your AI SaaS instance. Default: `https://saas.salesbay.ai` |
### Message Routing
When the user sends ANY message through any connected channel:
1. 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).
2. Construct a `sender_id` combining both: `<channel>:<user_identifier>`
- WhatsApp example: `whatsapp:+15551234567`
- Telegram example: `telegram:123456789`
- Slack example: `slack:U012AB3CD`
- Discord example: `discord:123456789012345678`
3. Send a POST request to the chatbot API:
```
POST ${AI_SAAS_BASE_URL}/api/v1/chatbots/${AI_SAAS_CHATBOT_ID}/chat
Authorization: Bearer ${AI_SAAS_API_KEY}
Content-Type: application/json
{
"sender_id": "<constructed sender_id>",
"message": "<user message text>"
}
```
4. Parse `data.responses` from the JSON response. Return each item's `text` field as a separate message to the user. If multiple responses exist, send them in order.
5. 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/chatbots/${AI_SAAS_CHATBOT_ID}/conversations/<sender_id>
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/chatbots/${AI_SAAS_CHATBOT_ID}
Authorization: Bearer ${AI_SAAS_API_KEY}
```
Report the chatbot name and whether it is active.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!