CRM
Create board
POST
/
crm
/
boards
Create board
curl --request POST \
--url https://api.connectadesk.com/api/v1/crm/boards \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Pós-venda",
"description": "<string>",
"monthlyGoal": 100000,
"yearlyGoal": 1200000,
"crmBoardLists": [
{}
],
"crmBoardQueues": [
{}
]
}
'import requests
url = "https://api.connectadesk.com/api/v1/crm/boards"
payload = {
"name": "Pós-venda",
"description": "<string>",
"monthlyGoal": 100000,
"yearlyGoal": 1200000,
"crmBoardLists": [{}],
"crmBoardQueues": [{}]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Pós-venda',
description: '<string>',
monthlyGoal: 100000,
yearlyGoal: 1200000,
crmBoardLists: [{}],
crmBoardQueues: [{}]
})
};
fetch('https://api.connectadesk.com/api/v1/crm/boards', 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/crm/boards",
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([
'name' => 'Pós-venda',
'description' => '<string>',
'monthlyGoal' => 100000,
'yearlyGoal' => 1200000,
'crmBoardLists' => [
[
]
],
'crmBoardQueues' => [
[
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://api.connectadesk.com/api/v1/crm/boards"
payload := strings.NewReader("{\n \"name\": \"Pós-venda\",\n \"description\": \"<string>\",\n \"monthlyGoal\": 100000,\n \"yearlyGoal\": 1200000,\n \"crmBoardLists\": [\n {}\n ],\n \"crmBoardQueues\": [\n {}\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://api.connectadesk.com/api/v1/crm/boards")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Pós-venda\",\n \"description\": \"<string>\",\n \"monthlyGoal\": 100000,\n \"yearlyGoal\": 1200000,\n \"crmBoardLists\": [\n {}\n ],\n \"crmBoardQueues\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.connectadesk.com/api/v1/crm/boards")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Pós-venda\",\n \"description\": \"<string>\",\n \"monthlyGoal\": 100000,\n \"yearlyGoal\": 1200000,\n \"crmBoardLists\": [\n {}\n ],\n \"crmBoardQueues\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": 7,
"name": "Pós-venda",
"description": "Follow-up after the purchase.",
"monthlyGoal": 50000,
"yearlyGoal": 600000,
"createdByUserId": 3,
"archived": false,
"archivedAt": null,
"createdAt": "2026-01-10T12:00:00.000Z",
"updatedAt": "2026-02-10T12:00:00.000Z"
}
}{
"error": {
"code": "ERR_API_VALIDATION",
"message": "O parâmetro `application` é obrigatório e aceita \"contact\" ou \"card\"."
}
}Authorizations
API token in the sk_live_… format.
Body
application/json
Board name.
Example:
"Pós-venda"
Board description.
The board's monthly sales goal, used in the dashboards.
Example:
100000
The board's yearly sales goal, used in the dashboards.
Example:
1200000
Stages the board is created with.
Queues linked to the board. Only people in one of these queues who also have the board in their profile see it.
Response
Created
CRM board, where cards move through the stages.
Who sees the board, and whether they see all cards or only their own, is set in each user's profile (Settings → Profiles), together with the queues linked to the board. The API token sees every board in the company.
Show child attributes
Show child attributes
Example:
{
"id": 7,
"name": "Pós-venda",
"description": "Follow-up after the purchase.",
"monthlyGoal": 50000,
"yearlyGoal": 600000,
"createdByUserId": 3,
"archived": false,
"archivedAt": null,
"createdAt": "2026-01-10T12:00:00.000Z",
"updatedAt": "2026-02-10T12:00:00.000Z"
}
⌘I
Create board
curl --request POST \
--url https://api.connectadesk.com/api/v1/crm/boards \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Pós-venda",
"description": "<string>",
"monthlyGoal": 100000,
"yearlyGoal": 1200000,
"crmBoardLists": [
{}
],
"crmBoardQueues": [
{}
]
}
'import requests
url = "https://api.connectadesk.com/api/v1/crm/boards"
payload = {
"name": "Pós-venda",
"description": "<string>",
"monthlyGoal": 100000,
"yearlyGoal": 1200000,
"crmBoardLists": [{}],
"crmBoardQueues": [{}]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Pós-venda',
description: '<string>',
monthlyGoal: 100000,
yearlyGoal: 1200000,
crmBoardLists: [{}],
crmBoardQueues: [{}]
})
};
fetch('https://api.connectadesk.com/api/v1/crm/boards', 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/crm/boards",
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([
'name' => 'Pós-venda',
'description' => '<string>',
'monthlyGoal' => 100000,
'yearlyGoal' => 1200000,
'crmBoardLists' => [
[
]
],
'crmBoardQueues' => [
[
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://api.connectadesk.com/api/v1/crm/boards"
payload := strings.NewReader("{\n \"name\": \"Pós-venda\",\n \"description\": \"<string>\",\n \"monthlyGoal\": 100000,\n \"yearlyGoal\": 1200000,\n \"crmBoardLists\": [\n {}\n ],\n \"crmBoardQueues\": [\n {}\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://api.connectadesk.com/api/v1/crm/boards")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Pós-venda\",\n \"description\": \"<string>\",\n \"monthlyGoal\": 100000,\n \"yearlyGoal\": 1200000,\n \"crmBoardLists\": [\n {}\n ],\n \"crmBoardQueues\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.connectadesk.com/api/v1/crm/boards")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Pós-venda\",\n \"description\": \"<string>\",\n \"monthlyGoal\": 100000,\n \"yearlyGoal\": 1200000,\n \"crmBoardLists\": [\n {}\n ],\n \"crmBoardQueues\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": 7,
"name": "Pós-venda",
"description": "Follow-up after the purchase.",
"monthlyGoal": 50000,
"yearlyGoal": 600000,
"createdByUserId": 3,
"archived": false,
"archivedAt": null,
"createdAt": "2026-01-10T12:00:00.000Z",
"updatedAt": "2026-02-10T12:00:00.000Z"
}
}{
"error": {
"code": "ERR_API_VALIDATION",
"message": "O parâmetro `application` é obrigatório e aceita \"contact\" ou \"card\"."
}
}
