@taskmagic/apps-clicksend
v0.4.1
Published
SMS, MMS and text-to-speech voice messaging with [ClickSend](https://www.clicksend.com) — API docs: https://developers.clicksend.com/docs
Downloads
886
Readme
ClickSend
SMS, MMS and text-to-speech voice messaging with ClickSend — API docs: https://developers.clicksend.com/docs
The API is REST under https://rest.clicksend.com, every path versioned as /v3/..., and
authenticated with HTTP Basic where your account username is the user and the API key is
the password.
- Actions: Send SMS, Send MMS, Send Voice Message, Get SMS Price, List Inbound SMS, List Delivery Receipts, List SMS History, Get Account Details.
- Triggers: New Inbound SMS (polling), New Delivery Receipt (polling).
Connection: click API Credentials in the top right of the
ClickSend dashboard and copy the Username and the
API Key. The API key is not your dashboard password. TaskMagic base64-encodes
username:apiKey into an Authorization: Basic header on every call.
Notes
- There is no sandbox. ClickSend runs a single production environment with no test key, so
every Send SMS / MMS / Voice run costs real credit off the account balance. Use Get SMS
Price to quote a message without sending it, and Get Account Details to read the
remaining
balance. - A 200 response does not mean the message was sent. ClickSend's docs say it outright on
every send endpoint: "This parameter doesn't reflect the status of each message. Check the
status parameter of the message object to view the status of the individual message." The
send actions therefore inspect
data.messages[].statusanddata.blocked_count, and fail the step when any recipient was rejected or blocked — a blocked message usually means global sending is off for that country, or the Sender ID is not registered there. If you would rather handle partial failures in the flow, turn off Fail If Any Message Is Rejected and readfailed_messages,failed_count,blocked_countandwarningfrom the step output. ClickSend does not publish the complete list of per-message status strings, so anything outsideSUCCESS/QUEUED/SCHEDULEDis treated as a failure. - 1000 messages per call. ClickSend caps
/v3/sms/send,/v3/mms/sendand/v3/voice/sendat 1000 recipients per request; the actions reject a longer recipient list before spending anything. Larger blasts belong in ClickSend's SMS Campaigns product. - Recipients must be E.164 —
+14155550101, not4155550101. Pass a two-letter Country only when your numbers are in a local format. Sending outside your own country also needs ClickSend's global sending feature enabled on the account. - MMS subjects are capped at 20 characters by ClickSend, so Send MMS rejects a longer one up
front rather than letting it be silently truncated. The attachment must be a public URL under
250 kB;
jpgandgifcan be sent directly, whilejpeg,pngandbmphave to be converted through ClickSend's uploads endpoint (/v3/uploads?convert=mms) first. - Polling triggers, not webhooks. ClickSend does have a webhook API — inbound and delivery
receipt Automations (
POST /v3/automations/sms/inbound,.../delivery-receipt) — but registering one requires choosing a dedicated number and defining keyword/match rules, which is account configuration a trigger should not silently perform. Both triggers poll instead. For them to see anything you must add the matching rule in the ClickSend dashboard with its action set to POLL (or create it yourself through the Automations API); that is what makes ClickSend queue the message for retrieval. ClickSend also notes that multiple POLL rules on the same number deliver the same inbound message more than once. - Triggers never mark anything as read.
/v3/sms/inbound-readand/v3/sms/receipts-readpermanently hide rows from the list endpoints, so polling them would quietly mutate the account. The triggers dedupe on the row's unixtimestamp(falling back totimestamp_send, which is the field ClickSend's own inbound-list example returns) instead. - List endpoints are doubly nested. Laravel-style pagination puts the rows at
data.data, withtotal/per_page/current_pagealongside them; the actions unwrap the rows and return the paginator separately underpagination.limitis 15–100. - No email action. ClickSend's Transactional Email product is closed to new customers — its own docs point new signups at Mailgun instead — so shipping an email action here would fail for most connections.
- No custom API call action. A passthrough would hand this connection's API key to any URL a flow supplies, and the endpoints people actually automate are covered above.
