← 返回 Skills 市场
alvisdunlop

clicksend

作者 AlvisDunlop · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ 安全检测通过
94
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install alv-clicksend
功能描述
SkillBoss API Hub integration for SMS/MMS messaging and voice calls. Send SMS, MMS, and voice messages, manage contacts and lists. Use this skill when users...
使用说明 (SKILL.md)

ClickSend via SkillBoss API Hub

Send SMS, MMS, and voice messages via SkillBoss API Hub. Manage contacts and lists, and track message delivery.

Quick Start

import requests, os

SKILLBOSS_API_KEY = os.environ["SKILLBOSS_API_KEY"]

response = requests.post(
    "https://api.skillboss.com/v1/run",
    headers={
        "Authorization": f"Bearer {SKILLBOSS_API_KEY}",
        "Content-Type": "application/json"
    },
    json={
        "model": "prelude/notify-send",
        "inputs": {
            "template_id": "your_template_id",  # Configure in Prelude dashboard
            "to": "+15551234567",
            "variables": {"message": "Hello from SkillBoss!"}
        }
    }
)
result = response.json()
print(result)

Base URL

https://api.skillboss.com/v1/run

All SMS requests are routed through SkillBoss API Hub using the /v1/run endpoint with Prelude as the SMS provider. Note: prelude/notify-send requires a template pre-configured in the Prelude dashboard. For OTP verification, use prelude/verify-send / prelude/verify-check.

Authentication

All requests require the SkillBoss API key in the Authorization header:

Authorization: Bearer $SKILLBOSS_API_KEY

Environment Variable: Set your API key as SKILLBOSS_API_KEY:

export SKILLBOSS_API_KEY="YOUR_API_KEY"

Getting Your API Key

  1. Sign in or create an account at heybossai.com
  2. Go to your account settings
  3. Copy your API key

API Reference

Response Format

All SkillBoss API Hub responses follow this structure:

{
  "status": "success",
  "result": { ... }
}

Account

Get Account

GET /clicksend/v3/account

Response:

{
  "http_code": 200,
  "response_code": "SUCCESS",
  "response_msg": "Here's your account",
  "data": {
    "user_id": 672721,
    "username": "[email protected]",
    "user_email": "[email protected]",
    "balance": "2.005718",
    "user_phone": "+18019234886",
    "user_first_name": "John",
    "user_last_name": "Doe",
    "country": "US",
    "default_country_sms": "US",
    "timezone": "America/Chicago",
    "_currency": {
      "currency_name_short": "USD",
      "currency_prefix_d": "$"
    }
  }
}

SMS

Send SMS

POST /clicksend/v3/sms/send
Content-Type: application/json

{
  "messages": [
    {
      "to": "+15551234567",
      "body": "Hello from ClickSend!",
      "source": "api"
    }
  ]
}

Parameters:

Field Type Description
to string Recipient phone number (E.164 format)
body string SMS message content
source string Source identifier (e.g., "api", "sdk")
from string Sender ID (optional)
schedule int Unix timestamp for scheduled send (optional)
custom_string string Custom reference (optional)

Get SMS Price

POST /clicksend/v3/sms/price
Content-Type: application/json

{
  "messages": [
    {
      "to": "+15551234567",
      "body": "Test message",
      "source": "api"
    }
  ]
}

SMS History

GET /clicksend/v3/sms/history

Query Parameters:

Parameter Description
date_from Unix timestamp for start date
date_to Unix timestamp for end date
page Page number (default: 1)
limit Results per page (default: 15)

Inbound SMS

GET /clicksend/v3/sms/inbound

SMS Receipts (Delivery Reports)

GET /clicksend/v3/sms/receipts

Cancel Scheduled SMS

PUT /clicksend/v3/sms/{message_id}/cancel

Cancel All Scheduled SMS

PUT /clicksend/v3/sms/cancel-all

SMS Templates

List Templates

GET /clicksend/v3/sms/templates

Response:

{
  "http_code": 200,
  "response_code": "SUCCESS",
  "response_msg": "Here are your templates.",
  "data": {
    "total": 1,
    "per_page": 15,
    "current_page": 1,
    "data": [
      {
        "template_id": 632497,
        "body": "Hello {name}, this is a test message.",
        "template_name": "Test Template"
      }
    ]
  }
}

Create Template

POST /clicksend/v3/sms/templates
Content-Type: application/json

{
  "template_name": "Welcome Message",
  "body": "Hello {name}, welcome to our service!"
}

Update Template

PUT /clicksend/v3/sms/templates/{template_id}
Content-Type: application/json

{
  "template_name": "Updated Template",
  "body": "Updated message content"
}

Delete Template

DELETE /clicksend/v3/sms/templates/{template_id}

MMS

Send MMS

POST /clicksend/v3/mms/send
Content-Type: application/json

{
  "messages": [
    {
      "to": "+15551234567",
      "body": "Check out this image!",
      "media_file": "https://example.com/image.jpg",
      "source": "api"
    }
  ]
}

MMS History

GET /clicksend/v3/mms/history

Get MMS Price

POST /clicksend/v3/mms/price
Content-Type: application/json

{
  "messages": [...]
}

MMS Receipts

GET /clicksend/v3/mms/receipts

Voice

Send Voice Message

POST /clicksend/v3/voice/send
Content-Type: application/json

{
  "messages": [
    {
      "to": "+15551234567",
      "body": "Hello, this is a voice message.",
      "voice": "female",
      "lang": "en-us",
      "source": "api"
    }
  ]
}

Voice Parameters:

Field Description
to Recipient phone number
body Text to be spoken
voice Voice gender: male or female
lang Language code (e.g., en-us, en-gb, de-de)
schedule Unix timestamp for scheduled call
require_input Require keypad input (0-1)
machine_detection Detect answering machine (0-1)

Available Languages

GET /clicksend/v3/voice/lang

Returns list of supported languages with codes and available genders.

Voice History

GET /clicksend/v3/voice/history

Note: Requires voice access enabled on account.

Get Voice Price

POST /clicksend/v3/voice/price

Cancel Voice Message

PUT /clicksend/v3/voice/{message_id}/cancel

Contact Lists

List All Lists

GET /clicksend/v3/lists

Response:

{
  "http_code": 200,
  "response_code": "SUCCESS",
  "response_msg": "Here are your contact lists.",
  "data": {
    "total": 2,
    "data": [
      {
        "list_id": 3555277,
        "list_name": "Opt-Out List",
        "_contacts_count": 0
      },
      {
        "list_id": 3555278,
        "list_name": "Example List",
        "_contacts_count": 10
      }
    ]
  }
}

Get List

GET /clicksend/v3/lists/{list_id}

Create List

POST /clicksend/v3/lists
Content-Type: application/json

{
  "list_name": "My New List"
}

Update List

PUT /clicksend/v3/lists/{list_id}
Content-Type: application/json

{
  "list_name": "Updated List Name"
}

Delete List

DELETE /clicksend/v3/lists/{list_id}

Remove Duplicates

PUT /clicksend/v3/lists/{list_id}/remove-duplicates

Contacts

List Contacts in a List

GET /clicksend/v3/lists/{list_id}/contacts

Query Parameters:

Parameter Description
page Page number
limit Results per page
updated_after Filter contacts updated after timestamp

Get Contact

GET /clicksend/v3/lists/{list_id}/contacts/{contact_id}

Response:

{
  "http_code": 200,
  "response_code": "SUCCESS",
  "data": {
    "contact_id": 1581565666,
    "list_id": 3555278,
    "phone_number": "+18019234886",
    "first_name": "John",
    "last_name": "Doe",
    "email": "[email protected]",
    "custom_1": "",
    "custom_2": "",
    "custom_3": "",
    "custom_4": "",
    "organization_name": "",
    "address_city": "",
    "address_state": "",
    "address_country": "US"
  }
}

Create Contact

POST /clicksend/v3/lists/{list_id}/contacts
Content-Type: application/json

{
  "phone_number": "+15551234567",
  "first_name": "John",
  "last_name": "Doe",
  "email": "[email protected]"
}

Contact Fields:

Field Description
phone_number Phone number (E.164 format)
first_name First name
last_name Last name
email Email address
fax_number Fax number
organization_name Company name
custom_1 - custom_4 Custom fields
address_line_1, address_line_2 Address
address_city, address_state, address_postal_code, address_country Address components

Update Contact

PUT /clicksend/v3/lists/{list_id}/contacts/{contact_id}
Content-Type: application/json

{
  "first_name": "Jane",
  "last_name": "Smith"
}

Delete Contact

DELETE /clicksend/v3/lists/{list_id}/contacts/{contact_id}

Copy Contact to Another List

PUT /clicksend/v3/lists/{from_list_id}/contacts/{contact_id}/copy/{to_list_id}

Transfer Contact to Another List

PUT /clicksend/v3/lists/{from_list_id}/contacts/{contact_id}/transfer/{to_list_id}

Email Addresses

List Verified Email Addresses

GET /clicksend/v3/email/addresses

Add Email Address

POST /clicksend/v3/email/addresses
Content-Type: application/json

{
  "email_address": "[email protected]"
}

Delete Email Address

DELETE /clicksend/v3/email/addresses/{email_address_id}

Utility Endpoints

List Countries

GET /clicksend/v3/countries

Returns list of all supported countries with codes.


Pagination

ClickSend uses page-based pagination:

GET /clicksend/v3/lists?page=2&limit=50

Response includes:

{
  "data": {
    "total": 100,
    "per_page": 50,
    "current_page": 2,
    "last_page": 2,
    "next_page_url": null,
    "prev_page_url": "...?page=1",
    "from": 51,
    "to": 100,
    "data": [...]
  }
}

Parameters:

  • page - Page number (default: 1)
  • limit - Results per page (default: 15)

Code Examples

JavaScript

const response = await fetch(
  'https://api.skillboss.com/v1/run',
  {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${process.env.SKILLBOSS_API_KEY}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      model: 'prelude/notify-send',
      inputs: {
        template_id: 'your_template_id',
        to: '+15551234567',
        variables: { message: 'Hello from SkillBoss!' }
      }
    })
  }
);
const data = await response.json();
const result = data.result;
console.log(result);

Python

import os
import requests

SKILLBOSS_API_KEY = os.environ["SKILLBOSS_API_KEY"]

response = requests.post(
    "https://api.skillboss.com/v1/run",
    headers={
        "Authorization": f"Bearer {SKILLBOSS_API_KEY}",
        "Content-Type": "application/json"
    },
    json={
        "model": "prelude/notify-send",
        "inputs": {
            "template_id": "your_template_id",
            "to": "+15551234567",
            "variables": {"message": "Hello from SkillBoss!"}
        }
    }
)
result = response.json()
print(result)

Notes

  • Phone numbers must be in E.164 format (e.g., +15551234567)
  • All timestamps are Unix timestamps (seconds since epoch)
  • Use source field to identify your application in analytics
  • Templates support placeholders like {name}, {custom_1}, etc.
  • SMS messages over 160 characters are split into multiple segments
  • Voice access requires account-level permissions
  • All requests use the /v1/run endpoint: https://api.skillboss.com/v1/run
  • SkillBoss API Hub automatically routes to the optimal SMS provider

Error Handling

Status Meaning
200 Success
400 Bad request
401 Unauthorized - invalid credentials
403 Forbidden - insufficient permissions
404 Resource not found
429 Rate limited
500 Internal server error

Response codes:

  • SUCCESS - Operation completed successfully
  • FORBIDDEN - Access denied to resource
  • BAD_REQUEST - Invalid request parameters
  • INVALID_RECIPIENT - Invalid phone number

Troubleshooting: API Key Issues

  1. Check that the SKILLBOSS_API_KEY environment variable is set:
echo $SKILLBOSS_API_KEY
  1. Verify the API key is valid by making a test request:
python \x3C\x3C'EOF'
import urllib.request, os, json
req = urllib.request.Request('https://api.skillboss.com/v1/run')
req.add_header('Authorization', f'Bearer {os.environ["SKILLBOSS_API_KEY"]}')
req.add_header('Content-Type', 'application/json')
import urllib.parse
data = json.dumps({'discover': True}).encode()
req.data = data
req.method = 'POST'
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
EOF

Resources

安全使用建议
This skill appears to be an instruction-only integration that calls the SkillBoss API Hub using SKILLBOSS_API_KEY. Before installing: verify that you intend to give the skill an API key for your SkillBoss account (this key can send SMS/voice and may incur charges); confirm whether SkillBoss is actually proxying ClickSend or another provider (the skill's name and the document's ClickSend examples are inconsistent); consider restricting the agent so it cannot send messages without explicit confirmation (to avoid accidental charges or data leaks); and monitor API key usage and billing after enabling the skill.
功能分析
Type: OpenClaw Skill Name: alv-clicksend Version: 1.0.0 The skill bundle provides documentation and code examples for integrating ClickSend SMS/MMS services via the SkillBoss API Hub (api.skillboss.com). It correctly identifies the need for a SKILLBOSS_API_KEY environment variable and includes standard troubleshooting scripts and API references consistent with its stated purpose. No evidence of malicious intent, data exfiltration, or prompt injection was found in SKILL.md or _meta.json.
能力标签
requires-sensitive-credentials
能力评估
Purpose & Capability
The SKILL.md consistently describes using SkillBoss (api.skillboss.com/v1/run) and requires only SKILLBOSS_API_KEY, which is appropriate for an API-hub-style SMS/voice integration. However, the skill is named 'clicksend' and includes ClickSend-style /clicksend/v3/ endpoint examples — this naming/documentation mismatch should be clarified (likely documentation mapping rather than an actual direct ClickSend dependency).
Instruction Scope
The instructions instruct the agent to call SkillBoss endpoints with the declared SKILLBOSS_API_KEY and provide example payloads. They do not direct the agent to read unrelated files, environment variables, or system state, nor to exfiltrate data to unexpected endpoints.
Install Mechanism
No install spec and no code files (instruction-only SKILL.md). This minimizes disk/write risk; nothing is downloaded or installed by the skill itself.
Credentials
Only SKILLBOSS_API_KEY is required, which is proportional to a service that proxies SMS/voice providers. No unrelated credentials or broad environment access are requested.
Persistence & Privilege
always is false and autonomous invocation is allowed (platform default). There is no request for permanent elevated presence or modification of other skills' configs.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install alv-clicksend
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /alv-clicksend 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
Initial release of the ClickSend integration via SkillBoss API Hub. - Send SMS, MMS, and voice messages using a unified SkillBoss API. - Manage contacts and contact lists, including creation, updating, and deletion. - Support for SMS/MMS/voice history, delivery receipts, templates, and pricing queries. - Detailed API documentation and code examples provided for quick onboarding. - Requires SkillBoss API key for authentication.
元数据
Slug alv-clicksend
版本 1.0.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

clicksend 是什么?

SkillBoss API Hub integration for SMS/MMS messaging and voice calls. Send SMS, MMS, and voice messages, manage contacts and lists. Use this skill when users... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 94 次。

如何安装 clicksend?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install alv-clicksend」即可一键安装,无需额外配置。

clicksend 是免费的吗?

是的,clicksend 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

clicksend 支持哪些平台?

clicksend 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 clicksend?

由 AlvisDunlop(@alvisdunlop)开发并维护,当前版本 v1.0.0。

💬 留言讨论