Portfolio Supported AIs Solutions Tasks Email Archive Integrations Pricing

Get Started

ChatGPT

ChatGPT

Start directly →

Ready
Claude

Claude

Directory Connector →

Ready
Mistral

Mistral

Directory Connector →

Ready

Dashboard Always available
Smstools

Smstools

🔑 BYO Key — Messaging

SMS and WhatsApp Business messaging via Smstools (Belgium, EU-hosted). Send SMS, approved WhatsApp templates, WhatsApp text and files, and check message status and credits. Bring your own Smstools account.

🔑 Setup Required — Bring Your Own Key This integration requires API credentials. Store them once via setup_integration or the Dashboard Vault — they're encrypted with AES-256-GCM and never exposed.

Required Credentials

smstools_client_id
API Client ID
In Smstools go to Developer > API & Webhooks > API credentials and copy the client ID of your API credential.
smstools_client_secret
API Client Secret
Shown only once when you create the API credential in Smstools (Developer > API & Webhooks > API credentials). New credentials start with "cs_".

Get your API key at www.smstools.com →

Endpoints (11)

POST send-sms

Send one SMS to one recipient. Use test: true to validate everything without sending or using credits. Returns a messageid for get-message.

Field Type Required Description
to string ✓ Yes Recipient in international format without "+" or leading zeros, e.g. 31612345678. One number per call.
sender string ✓ Yes Sender ID: a name of max 11 letters/digits (no spaces or special characters) or a number starting with "+" (max 14 characters). list-senders shows the sender IDs on the account.
message string ✓ Yes Message text, max 612 characters (up to 4 SMS parts). The euro sign, square and curly brackets, backslash, caret, tilde and vertical bar count as 2 characters.
date string No Optional send time "yyyy-MM-dd HH:mm" (Smstools local time). Omit to send now.
reference string No Optional own reference, e.g. an order number (get-message returns it).
test boolean No true = validate only: nothing is sent, no credits are used.
subid integer No Optional Smstools subaccount ID to send from.
POST send-whatsapp-template

Send an approved WhatsApp template to one recipient. This is the only WhatsApp message type allowed when the 24-hour customer-service window is closed. list-whatsapp-templates shows the template names. Fill template placeholders with variable1..variable10.

Field Type Required Description
to string ✓ Yes Recipient in international format without "+" or leading zeros, e.g. 31612345678. One number per call.
sender string ✓ Yes Your WhatsApp Business sender number as registered in Smstools, starting with "+". list-whatsapp-numbers shows the numbers on the account.
template_name string ✓ Yes Name of an APPROVED WhatsApp template (see list-whatsapp-templates).
variable1 string No Value for placeholder 1 in the template body.
variable2 string No Value for placeholder 2 in the template body.
variable3 string No Value for placeholder 3 in the template body.
variable4 string No Value for placeholder 4 in the template body.
variable5 string No Value for placeholder 5 in the template body.
variable6 string No Value for placeholder 6 in the template body.
variable7 string No Value for placeholder 7 in the template body.
variable8 string No Value for placeholder 8 in the template body.
variable9 string No Value for placeholder 9 in the template body.
variable10 string No Value for placeholder 10 in the template body.
button_variable1 string No Value for placeholder 1 of a dynamic button (templates with dynamic buttons only).
button_variable2 string No Value for placeholder 2 of a dynamic button (templates with dynamic buttons only).
image_url string No Public https URL of the header image. Only for templates with an image header.
video_url string No Public https URL of the header video. Only for templates with a video header.
document_url string No Public https URL of the header document (e.g. a PDF invoice; a pdf_document signed URL works while valid). Only for templates with a document header.
date string No Optional send time "yyyy-MM-dd HH:mm" (Smstools local time). Omit to send now.
reference string No Optional own reference, e.g. an order number (get-message returns it).
test boolean No true = validate only: nothing is sent, no credits are used.
subid integer No Optional Smstools subaccount ID to send from.
POST send-whatsapp-text

Send free-form WhatsApp text to one recipient. Only works while the 24-hour customer-service window is open (the recipient messaged you in the last 24 hours); otherwise Smstools returns error 137 and you must use send-whatsapp-template. check-whatsapp-window tells you in advance.

Field Type Required Description
to string ✓ Yes Recipient in international format without "+" or leading zeros, e.g. 31612345678. One number per call.
sender string ✓ Yes Your WhatsApp Business sender number as registered in Smstools, starting with "+". list-whatsapp-numbers shows the numbers on the account.
message string ✓ Yes Message text, max 4096 characters.
date string No Optional send time "yyyy-MM-dd HH:mm" (Smstools local time). Omit to send now.
reference string No Optional own reference, e.g. an order number (get-message returns it).
test boolean No true = validate only: nothing is sent, no credits are used.
subid integer No Optional Smstools subaccount ID to send from.
POST send-whatsapp-file

Send a file, image, audio or video over WhatsApp to one recipient, with an optional caption. Smstools downloads the file from attachment_url, so it must be a public https URL at the moment of sending. Only inside the 24-hour customer-service window; outside it use send-whatsapp-template with document_url.

Field Type Required Description
to string ✓ Yes Recipient in international format without "+" or leading zeros, e.g. 31612345678. One number per call.
sender string ✓ Yes Your WhatsApp Business sender number as registered in Smstools, starting with "+". list-whatsapp-numbers shows the numbers on the account.
attachment_url string ✓ Yes Public https URL of the file to send.
attachment_type string ✓ Yes One of: file, image, audio, video. Use file for PDFs and other documents.
message string No Optional caption sent with the file.
date string No Optional send time "yyyy-MM-dd HH:mm" (Smstools local time). Omit to send now.
reference string No Optional own reference, e.g. an order number (get-message returns it).
test boolean No true = validate only: nothing is sent, no credits are used.
subid integer No Optional Smstools subaccount ID to send from.
POST check-whatsapp-window

Check whether the 24-hour WhatsApp customer-service window is open between your sender number and a recipient. Returns window_open (true/false) and the remaining time. When it is closed, only send-whatsapp-template is allowed.

Field Type Required Description
to string ✓ Yes Recipient in international format without "+" or leading zeros, e.g. 31612345678. One number per call.
sender string ✓ Yes Your WhatsApp Business sender number as registered in Smstools, starting with "+". list-whatsapp-numbers shows the numbers on the account.
GET list-whatsapp-templates

List the WhatsApp templates on the Smstools account: name, status (only APPROVED can be sent), category and language.

No input parameters required.

GET list-whatsapp-numbers

List the WhatsApp Business sender numbers on the Smstools account: verified name, display number and quality rating.

No input parameters required.

GET list-senders

List the SMS sender IDs (names) registered on the Smstools account. Use one of these as sender in send-sms.

No input parameters required.

GET get-message

Look up one sent message by the messageid a send call returned: status (e.g. DELIVERED), cost, dates and your reference. Unknown IDs return 404.

Field Type Required Description
message_id string ✓ Yes The messageid returned by a send call, or a public ID (lid_... or cnv_...).
POST format-number

Convert a phone number as a customer typed it (e.g. "06-12345678" or "0490.123 /4.56") to the international format the send endpoints need. Returns a list with one entry per number: formattedNumber (e.g. 31612345678), isValidNumber, numberType (e.g. MOBILE) and error. In an order_events chain read it as {{steps.N.result.0.formattedNumber}}.

Field Type Required Description
number string ✓ Yes The phone number in any notation; spaces, dashes, dots and a leading 0 or "+" are fine.
countrycode string ✓ Yes Two-letter country code used for numbers without an international prefix, e.g. NL or BE.
GET get-balance

Remaining credits on the Smstools account. Also a quick way to check that the stored credential works.

No input parameters required.

MCP Tool Names

When using this integration through an AI assistant (Claude, ChatGPT, Cursor, etc.), the endpoints are available as MCP tools:

EndpointMCP Tool Name
send-sms smstools_send_sms
send-whatsapp-template smstools_send_whatsapp_template
send-whatsapp-text smstools_send_whatsapp_text
send-whatsapp-file smstools_send_whatsapp_file
check-whatsapp-window smstools_check_whatsapp_window
list-whatsapp-templates smstools_list_whatsapp_templates
list-whatsapp-numbers smstools_list_whatsapp_numbers
list-senders smstools_list_senders
get-message smstools_get_message
format-number smstools_format_number
get-balance smstools_get_balance
← Back to all integrations