List channel templates
Lists the channel templates. This is where you find the name to use in template.name and how many variables each template requires.
The list comes from Connecta DESK, not from a lookup at the provider: that is why it answers fast and takes the status and queue filters. The catalog is fed by the synchronization with Meta/Gupshup, so a template approved at the provider right now shows up here after the next synchronization.
A channel with no synchronized template returns an empty list and schedules the synchronization in the background — the next call already finds the catalog. A channel that does not use approved templates also returns an empty list, with no error.
curl --request GET \
--url https://api.connectadesk.com/api/v1/channels/{id}/templates \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.connectadesk.com/api/v1/channels/{id}/templates"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.connectadesk.com/api/v1/channels/{id}/templates', 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://api.connectadesk.com/api/v1/channels/{id}/templates",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.connectadesk.com/api/v1/channels/{id}/templates"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.connectadesk.com/api/v1/channels/{id}/templates")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.connectadesk.com/api/v1/channels/{id}/templates")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"name": "confirmacao_pedido",
"language": "pt_BR",
"status": "APPROVED",
"category": "UTILITY",
"bodyText": "Olá {{1}}, seu pedido {{2}} foi confirmado.",
"bodyVariables": 2,
"headerType": "TEXT",
"headerText": "<string>",
"headerVariables": 0,
"headerRequiresMedia": true,
"footerText": "<string>",
"buttons": [
{}
]
}
],
"meta": {
"page": 1,
"perPage": 20,
"hasMore": true
}
}{
"error": {
"code": "ERR_API_NOT_FOUND",
"message": "Registro não encontrado."
}
}Authorizations
API token in the sk_live_… format.
Path Parameters
Query Parameters
Page number, starting at 1. An invalid value is treated as 1.
x >= 1Number of items per page. The maximum depends on the environment (default 100).
1 <= x <= 100Template status. Accepts more than one, separated by commas. Without the filter, all of them come — including drafts and rejected ones.
| Value | When it shows up |
|---|---|
APPROVED | Approved by the provider, ready to send |
PENDING | Submitted and waiting for review |
REJECTED | Rejected |
PAUSED | Paused by the provider, for quality |
DISABLED | Disabled by Meta due to quality, permanently |
ARCHIVED | Archived |
DRAFT | Draft, not submitted for review yet |
Returns only the templates this queue can use: the ones that apply to every queue plus the ones linked to it. The queue must belong to your company.
curl --request GET \
--url https://api.connectadesk.com/api/v1/channels/{id}/templates \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.connectadesk.com/api/v1/channels/{id}/templates"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.connectadesk.com/api/v1/channels/{id}/templates', 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://api.connectadesk.com/api/v1/channels/{id}/templates",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.connectadesk.com/api/v1/channels/{id}/templates"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.connectadesk.com/api/v1/channels/{id}/templates")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.connectadesk.com/api/v1/channels/{id}/templates")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"name": "confirmacao_pedido",
"language": "pt_BR",
"status": "APPROVED",
"category": "UTILITY",
"bodyText": "Olá {{1}}, seu pedido {{2}} foi confirmado.",
"bodyVariables": 2,
"headerType": "TEXT",
"headerText": "<string>",
"headerVariables": 0,
"headerRequiresMedia": true,
"footerText": "<string>",
"buttons": [
{}
]
}
],
"meta": {
"page": 1,
"perPage": 20,
"hasMore": true
}
}{
"error": {
"code": "ERR_API_NOT_FOUND",
"message": "Registro não encontrado."
}
}
