Send a template message by phone number
curl --request POST \
--url https://smartsend-server.otherwise.co.il/integrations/make/messages/send-template \
--header 'Content-Type: application/json' \
--header 'x-organization-id: <api-key>' \
--data '
{
"phoneNumber": "<string>",
"templateName": "<string>",
"languageCode": "<string>",
"parameters": [
"<string>"
],
"sentByUserId": "<string>",
"sentByUserName": "<string>",
"avoidBlacklist": true,
"headerMediaUrl": "<string>",
"urlButtonParams": [
"<string>"
]
}
'import requests
url = "https://smartsend-server.otherwise.co.il/integrations/make/messages/send-template"
payload = {
"phoneNumber": "<string>",
"templateName": "<string>",
"languageCode": "<string>",
"parameters": ["<string>"],
"sentByUserId": "<string>",
"sentByUserName": "<string>",
"avoidBlacklist": True,
"headerMediaUrl": "<string>",
"urlButtonParams": ["<string>"]
}
headers = {
"x-organization-id": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-organization-id': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
phoneNumber: '<string>',
templateName: '<string>',
languageCode: '<string>',
parameters: ['<string>'],
sentByUserId: '<string>',
sentByUserName: '<string>',
avoidBlacklist: true,
headerMediaUrl: '<string>',
urlButtonParams: ['<string>']
})
};
fetch('https://smartsend-server.otherwise.co.il/integrations/make/messages/send-template', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://smartsend-server.otherwise.co.il/integrations/make/messages/send-template",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'phoneNumber' => '<string>',
'templateName' => '<string>',
'languageCode' => '<string>',
'parameters' => [
'<string>'
],
'sentByUserId' => '<string>',
'sentByUserName' => '<string>',
'avoidBlacklist' => true,
'headerMediaUrl' => '<string>',
'urlButtonParams' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-organization-id: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://smartsend-server.otherwise.co.il/integrations/make/messages/send-template"
payload := strings.NewReader("{\n \"phoneNumber\": \"<string>\",\n \"templateName\": \"<string>\",\n \"languageCode\": \"<string>\",\n \"parameters\": [\n \"<string>\"\n ],\n \"sentByUserId\": \"<string>\",\n \"sentByUserName\": \"<string>\",\n \"avoidBlacklist\": true,\n \"headerMediaUrl\": \"<string>\",\n \"urlButtonParams\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-organization-id", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://smartsend-server.otherwise.co.il/integrations/make/messages/send-template")
.header("x-organization-id", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"phoneNumber\": \"<string>\",\n \"templateName\": \"<string>\",\n \"languageCode\": \"<string>\",\n \"parameters\": [\n \"<string>\"\n ],\n \"sentByUserId\": \"<string>\",\n \"sentByUserName\": \"<string>\",\n \"avoidBlacklist\": true,\n \"headerMediaUrl\": \"<string>\",\n \"urlButtonParams\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://smartsend-server.otherwise.co.il/integrations/make/messages/send-template")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-organization-id"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"phoneNumber\": \"<string>\",\n \"templateName\": \"<string>\",\n \"languageCode\": \"<string>\",\n \"parameters\": [\n \"<string>\"\n ],\n \"sentByUserId\": \"<string>\",\n \"sentByUserName\": \"<string>\",\n \"avoidBlacklist\": true,\n \"headerMediaUrl\": \"<string>\",\n \"urlButtonParams\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_bodyMake.com Integration
Send a template message by phone number
Templates can be sent anytime, even outside the 24-hour window
POST
/
integrations
/
make
/
messages
/
send-template
Send a template message by phone number
curl --request POST \
--url https://smartsend-server.otherwise.co.il/integrations/make/messages/send-template \
--header 'Content-Type: application/json' \
--header 'x-organization-id: <api-key>' \
--data '
{
"phoneNumber": "<string>",
"templateName": "<string>",
"languageCode": "<string>",
"parameters": [
"<string>"
],
"sentByUserId": "<string>",
"sentByUserName": "<string>",
"avoidBlacklist": true,
"headerMediaUrl": "<string>",
"urlButtonParams": [
"<string>"
]
}
'import requests
url = "https://smartsend-server.otherwise.co.il/integrations/make/messages/send-template"
payload = {
"phoneNumber": "<string>",
"templateName": "<string>",
"languageCode": "<string>",
"parameters": ["<string>"],
"sentByUserId": "<string>",
"sentByUserName": "<string>",
"avoidBlacklist": True,
"headerMediaUrl": "<string>",
"urlButtonParams": ["<string>"]
}
headers = {
"x-organization-id": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-organization-id': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
phoneNumber: '<string>',
templateName: '<string>',
languageCode: '<string>',
parameters: ['<string>'],
sentByUserId: '<string>',
sentByUserName: '<string>',
avoidBlacklist: true,
headerMediaUrl: '<string>',
urlButtonParams: ['<string>']
})
};
fetch('https://smartsend-server.otherwise.co.il/integrations/make/messages/send-template', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://smartsend-server.otherwise.co.il/integrations/make/messages/send-template",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'phoneNumber' => '<string>',
'templateName' => '<string>',
'languageCode' => '<string>',
'parameters' => [
'<string>'
],
'sentByUserId' => '<string>',
'sentByUserName' => '<string>',
'avoidBlacklist' => true,
'headerMediaUrl' => '<string>',
'urlButtonParams' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-organization-id: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://smartsend-server.otherwise.co.il/integrations/make/messages/send-template"
payload := strings.NewReader("{\n \"phoneNumber\": \"<string>\",\n \"templateName\": \"<string>\",\n \"languageCode\": \"<string>\",\n \"parameters\": [\n \"<string>\"\n ],\n \"sentByUserId\": \"<string>\",\n \"sentByUserName\": \"<string>\",\n \"avoidBlacklist\": true,\n \"headerMediaUrl\": \"<string>\",\n \"urlButtonParams\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-organization-id", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://smartsend-server.otherwise.co.il/integrations/make/messages/send-template")
.header("x-organization-id", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"phoneNumber\": \"<string>\",\n \"templateName\": \"<string>\",\n \"languageCode\": \"<string>\",\n \"parameters\": [\n \"<string>\"\n ],\n \"sentByUserId\": \"<string>\",\n \"sentByUserName\": \"<string>\",\n \"avoidBlacklist\": true,\n \"headerMediaUrl\": \"<string>\",\n \"urlButtonParams\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://smartsend-server.otherwise.co.il/integrations/make/messages/send-template")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-organization-id"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"phoneNumber\": \"<string>\",\n \"templateName\": \"<string>\",\n \"languageCode\": \"<string>\",\n \"parameters\": [\n \"<string>\"\n ],\n \"sentByUserId\": \"<string>\",\n \"sentByUserName\": \"<string>\",\n \"avoidBlacklist\": true,\n \"headerMediaUrl\": \"<string>\",\n \"urlButtonParams\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_bodyAuthorizations
Your SmartSend Organization ID. Required on every request.
Body
application/json
Phone number in any format (972..., 05..., +972...)
Name of the approved WhatsApp template
Template language code (default 'he')
Template parameters for variable substitution
When true, the send is skipped if the number is blacklisted.
Optional public URL for header media (image/video/document). Overrides the template's default media at send time.
Optional. Per-send values for dynamic URL buttons (URL contains {{1}} in the stored template). Two accepted shapes:
- Positional array:
["abc", null, "xyz"](index = button position in template) - Make.com Array of Collections:
[{ "buttonIndex": 0, "value": "abc" }, ...]Buttons not listed (or with null/empty value) fall back to Meta's example URL.
Response
200
Template message sent successfully
⌘I