Install
openclaw skills install sensorproClawHub Security found sensitive or high-impact capabilities. Review the scan results before using.
Manage your Sensorpro email marketing account in OpenClaw.
openclaw skills install sensorproUse 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": ""}
}'