用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/johnalbertini14-glitch/openclaw-skills --skill sensorpro命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | sensorpro |
| description | Manage your Sensorpro email marketing account in OpenClaw. |
| metadata | {"openclaw":{"emoji":"📨","homepage":"https://github.com/forcequit/openclaw-sensorpro","requires":{"env":["SENSORPRO_API_KEY","SENSORPRO_ORG","SENSORPRO_USER","SENSORPRO_PASS"],"bins":["curl","python3"]},"primaryEnv":"SENSORPRO_API_KEY"}} |
Use this skill to manage your Sensorpro email marketing account in OpenClaw.
Official docs:
Set these environment variables in your OpenClaw .env (or in the shell before running curl):
SENSORPRO_API_KEY — API key for the x-apikey headerSENSORPRO_ORG — organization code/nameSENSORPRO_USER — API username (must be an API user)SENSORPRO_PASS — API user passwordFrom the Sensorpro UI:
SENSORPRO_API_KEYThe key is passed as an HTTP header:
x-apikey: $SENSORPRO_API_KEYSensorpro distinguishes between UI users and API users:
Create a dedicated API user in Sensorpro and set:
SENSORPRO_USER to that usernameSENSORPRO_PASS to that password~/.openclaw/.env (or your process manager), not in SKILL.md..env to git.Result.TotalErrors; treat 0 as success.Token) must be used in the URL path for most endpoints.-d '{}'.TOKENExample (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":"someone@example.com"}],"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 '{}'
POST https://apinie.sensorpro.net/auth/sys/signin (header x-apikey required)POST https://apinie.sensorpro.net/auth/sys/logoff/[Token]Base: https://apinie.sensorpro.net/api/Contact/<Endpoint>/[Token]
UpdateAdd (recommended)Add, UpdateGetContacts, GetContactsPagedUpdateAddAsync, GetUpdateAddAsyncStatusChangeStatus, ChangeOptOutStatusDeleteContacts, ForgetMeBase: https://apinie.sensorpro.net/api/campaign/<Endpoint>/[Token] (note casing differs for some Get endpoints)
AddCampaign, AddDesign, AddSegment, AddBroadcastPOST 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]POST https://apinie.sensorpro.net/api/Email/SendEmail/[Token]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]POST https://apinie.sensorpro.net/api/Account/AddSubOrganization/[Token]POST https://apinie.sensorpro.net/api/Account/AddUpdateUser/[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}"'"}'
curl -sS -X POST "https://apinie.sensorpro.net/api/Contact/UpdateAdd/${TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"AddToList": [],
"Contact": [{"PersonalEMail":"someone@example.com","FirstName":"","LastName":""}],
"Options":{"Parameters":{},"Action":""},
"ReturnFailedRequests": true,
"UpdateByKey": "email",
"SendWelcomeEmail": false,
"SignupFormId": "00000000-0000-0000-0000-000000000000"
}'
curl -sS -X POST "https://apinie.sensorpro.net/api/campaign/GetCampaignResults/${TOKEN}" \
-H "Content-Type: application/json" \
-d '{"CampaignId": 53}'
curl -sS -X POST "https://apinie.sensorpro.net/api/Email/SendEmail/${TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"From": {"DisplayName":"Marketing","Email":"marketing@myco.net"},
"To": [{"DisplayName":"","Email":"recipient@example.com"}],
"Cc": [],
"Bcc": [],
"Headers": {},
"ReplyTo": null,
"ReturnPath": null,
"Subject": "Hello",
"HTMLMessageStyle": "",
"HTMLMessageEncoded": "<html><body><p>Hello</p></body></html>",
"PlainTextMessage": "Hello",
"MsgType": 0,
"MailEncoding": "UTF8",
"Schedule": {"DelayByMinutes": 0, "DelayUntilUTC": ""}
}'