← 返回 Skills 市场
forcequit

sensorpro.app

作者 Chris Byrne · GitHub ↗ · v0.2.3
cross-platform ✓ 安全检测通过
670
总下载
0
收藏
0
当前安装
7
版本数
在 OpenClaw 中安装
/install sensorpro
功能描述
Manage your Sensorpro email marketing account in OpenClaw.
使用说明 (SKILL.md)

Use this skill to manage your Sensorpro email marketing account in OpenClaw.

Official docs:

Setup (required)

Set these environment variables in your OpenClaw .env (or in the shell before running curl):

  • SENSORPRO_API_KEY — API key for the x-apikey header
  • SENSORPRO_ORG — organization code/name
  • SENSORPRO_USER — API username (must be an API user)
  • SENSORPRO_PASS — API user password

How to get the API key

From the Sensorpro UI:

  1. Go to API → API keys
  2. Select “Sensorpro rest API default key”
  3. Copy the key value into SENSORPRO_API_KEY
  4. If your API key is IP-restricted, whitelist the calling IP (the machine running OpenClaw)

The key is passed as an HTTP header:

  • x-apikey: $SENSORPRO_API_KEY

How to create an API user

Sensorpro distinguishes between UI users and API users:

  • API users have no UI access but can use the REST API.
  • Normal users have UI access but typically cannot use the REST API.

Create a dedicated API user in Sensorpro and set:

  • SENSORPRO_USER to that username
  • SENSORPRO_PASS to that password

Safe secret handling (important)

  • Put secrets in ~/.openclaw/.env (or your process manager), not in SKILL.md.
  • Don’t commit .env to git.
  • Rotate the API key if it’s ever pasted into a public place.

Global gotchas

  • IP allowlisting: Sensorpro REST API can be locked to whitelisted IPs.
  • Every response includes Result.TotalErrors; treat 0 as success.
  • Signin token (Token) must be used in the URL path for most endpoints.
  • Logoff: server may require a body (HTTP 411 otherwise). Use -d '{}'.

Quick workflow pattern (recommended)

  1. Signin once → store TOKEN
  2. Make one or more API calls
  3. Logoff

Example (bash):

TOKEN=$(curl -sS -X POST "https://apinie.sensorpro.net/auth/sys/signin" \
  -H "Content-Type: application/json" \
  -H "x-apikey: ${SENSORPRO_API_KEY}" \
  -d "{\"Organization\":\"${SENSORPRO_ORG}\",\"User\":\"${SENSORPRO_USER}\",\"Password\":\"${SENSORPRO_PASS}\"}" \
| python3 -c 'import sys,json; print(json.load(sys.stdin).get("Token",""))')

# Call an endpoint (example)
curl -sS -X POST "https://apinie.sensorpro.net/api/Contact/UpdateAdd/${TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{"AddToList":[],"Contact":[{"PersonalEMail":"[email protected]"}],"Options":{"Parameters":{},"Action":""},"ReturnFailedRequests":false,"UpdateByKey":"email","SendWelcomeEmail":false,"SignupFormId":"00000000-0000-0000-0000-000000000000"}'

# Log off (some servers require a body)
curl -sS -X POST "https://apinie.sensorpro.net/auth/sys/logoff/${TOKEN}" \
  -H "Content-Type: application/json" -d '{}'

Core endpoints (cheat sheet)

Authentication

  • POST https://apinie.sensorpro.net/auth/sys/signin (header x-apikey required)
  • POST https://apinie.sensorpro.net/auth/sys/logoff/[Token]

Contacts (token required)

Base: https://apinie.sensorpro.net/api/Contact/\x3CEndpoint>/[Token]

  • UpdateAdd (recommended)
  • Add, Update
  • GetContacts, GetContactsPaged
  • UpdateAddAsync, GetUpdateAddAsyncStatus
  • ChangeStatus, ChangeOptOutStatus
  • DeleteContacts, ForgetMe

Campaigns + sending

Base: https://apinie.sensorpro.net/api/campaign/\x3CEndpoint>/[Token] (note casing differs for some Get endpoints)

  • AddCampaign, AddDesign, AddSegment, AddBroadcast

Campaign results / metrics

  • POST https://apinie.sensorpro.net/api/Campaign/GetBroadcastStatus/[Token]
  • POST https://apinie.sensorpro.net/api/campaign/GetCampaignResults/[Token]
  • POST https://apinie.sensorpro.net/api/campaign/GetCampaignResultsLinks/[Token]

Relay Email

  • POST https://apinie.sensorpro.net/api/Email/SendEmail/[Token]

Imports

  • POST https://apinie.sensorpro.net/api/import/ExecuteFTPImport/[Token]
  • POST https://apinie.sensorpro.net/api/import/GetImportStatus/[Token]
  • POST https://apinie.sensorpro.net/api/import/ClearTagList/[Token]

Account

  • POST https://apinie.sensorpro.net/api/Account/AddSubOrganization/[Token]
  • POST https://apinie.sensorpro.net/api/Account/AddUpdateUser/[Token]

Examples

Signin (manual curl)

curl -sS -X POST "https://apinie.sensorpro.net/auth/sys/signin" \
  -H "Content-Type: application/json" \
  -H "x-apikey: ${SENSORPRO_API_KEY}" \
  -d '{"Organization":"'"${SENSORPRO_ORG}"'","User":"'"${SENSORPRO_USER}"'","Password":"'"${SENSORPRO_PASS}"'"}'

Contacts: UpdateAdd (add/update by email)

curl -sS -X POST "https://apinie.sensorpro.net/api/Contact/UpdateAdd/${TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "AddToList": [],
    "Contact": [{"PersonalEMail":"[email protected]","FirstName":"","LastName":""}],
    "Options":{"Parameters":{},"Action":""},
    "ReturnFailedRequests": true,
    "UpdateByKey": "email",
    "SendWelcomeEmail": false,
    "SignupFormId": "00000000-0000-0000-0000-000000000000"
  }'

Campaign metrics: GetCampaignResults

curl -sS -X POST "https://apinie.sensorpro.net/api/campaign/GetCampaignResults/${TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{"CampaignId": 53}'

Relay: SendEmail (one-off)

curl -sS -X POST "https://apinie.sensorpro.net/api/Email/SendEmail/${TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "From": {"DisplayName":"Marketing","Email":"[email protected]"},
    "To": [{"DisplayName":"","Email":"[email protected]"}],
    "Cc": [],
    "Bcc": [],
    "Headers": {},
    "ReplyTo": null,
    "ReturnPath": null,
    "Subject": "Hello",
    "HTMLMessageStyle": "",
    "HTMLMessageEncoded": "\x3Chtml>\x3Cbody>\x3Cp>Hello\x3C/p>\x3C/body>\x3C/html>",
    "PlainTextMessage": "Hello",
    "MsgType": 0,
    "MailEncoding": "UTF8",
    "Schedule": {"DelayByMinutes": 0, "DelayUntilUTC": ""}
  }'
安全使用建议
This skill appears to be what it claims: it will make REST calls to your Sensorpro instance and therefore needs an API key plus an API user/password. Before installing: 1) Only provide these secrets via environment variables or your platform's secret store (do not paste them into public code or SKILL.md). 2) Create a least-privilege API user in Sensorpro and enable IP allowlisting if possible. 3) Understand that, if you permit autonomous skill invocation for agents, the agent could call the Sensorpro API using these credentials—limit agent permissions if you want tighter control. 4) Rotate keys if they are exposed and audit API user activity in Sensorpro. Overall this skill is internally consistent; proceed if you trust the skill source and follow the secret-handling advice above.
功能分析
Type: OpenClaw Skill Name: sensorpro Version: 0.2.3 The skill bundle is benign. It provides instructions and examples for interacting with the Sensorpro email marketing API using `curl` and `python3`. All network calls are directed to `apinie.sensorpro.net`, which is the legitimate API endpoint for Sensorpro. The `SKILL.md` file includes good security practices for handling API keys and credentials, and there is no evidence of prompt injection attempts, data exfiltration to unauthorized endpoints, persistence mechanisms, or other malicious activities. The required environment variables and binaries (`curl`, `python3`) are explicitly declared and used for their intended purpose of API interaction and JSON parsing.
能力评估
Purpose & Capability
Name/description, required env vars (API key, org, API user, password), and required binaries (curl, python3) align with the Sensorpro REST API usage shown in SKILL.md. The dual use of an x-apikey header plus API-user credentials is consistent with the documented API flows.
Instruction Scope
SKILL.md contains concrete curl examples that only call Sensorpro endpoints, shows signin/token usage and logoff, and explicitly warns about secret handling. It does not instruct reading unrelated files, probing other system state, or sending data to third-party endpoints.
Install Mechanism
No install spec or remote downloads — this is an instruction-only skill. It assumes curl and python3 are present, which is reasonable given the examples.
Credentials
The four required env vars (SENSORPRO_API_KEY, SENSORPRO_ORG, SENSORPRO_USER, SENSORPRO_PASS) are justified by the API signin and header requirements; nothing unrelated (cloud provider keys, tokens for other services, etc.) is requested.
Persistence & Privilege
always is false and the skill requests no system-wide config paths or other skills' credentials. The normal platform default allowing autonomous invocation is unchanged; that is expected for a usable integration.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install sensorpro
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /sensorpro 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v0.2.3
Change display title to sensorpro.app
v0.2.2
Update listing summary/title
v0.2.1
Republish 0.2.1 to retrigger security scan (0.2.0 stuck >12h)
v0.2.0
Docs-only release: remove bundled shell scripts to reduce security scanner suspicion; include inline bash token workflow example.
v0.1.2
Add GitHub homepage for verifiable source; no functional changes.
v0.1.1
Fix registry metadata: declare required env vars (SENSORPRO_*), required binaries (curl, python3), and homepage. No code changes.
v0.1.0
Initial public release: auth, contacts, campaigns, results/metrics, relay email, imports, account. Includes helper scripts for signin+call.
元数据
Slug sensorpro
版本 0.2.3
许可证
累计安装 0
当前安装数 0
历史版本数 7
常见问题

sensorpro.app 是什么?

Manage your Sensorpro email marketing account in OpenClaw. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 670 次。

如何安装 sensorpro.app?

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

sensorpro.app 是免费的吗?

是的,sensorpro.app 完全免费(开源免费),可自由下载、安装和使用。

sensorpro.app 支持哪些平台?

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

谁开发了 sensorpro.app?

由 Chris Byrne(@forcequit)开发并维护,当前版本 v0.2.3。

💬 留言讨论