curl --request POST \
--url https://api.meetsquad.ai/organisations/{orgId}/workspaces/{workspaceId}/feedback \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"content": "I found the dashboard charts difficult to understand at first glance. The colors are confusing and the data is hard to interpret.",
"source": "Customer Interview",
"sourceId": "interview_456",
"sourceUrl": "https://basiliskai.slack.com/archives/C053AKR0669/p1744748012159779",
"sentimentScore": 0.75,
"sentimentCategory": "Positive",
"sentimentConfidence": 0.95,
"createdAtEpoch": 1679867746,
"title": "Dashboard charts are hard to understand",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}
'import requests
url = "https://api.meetsquad.ai/organisations/{orgId}/workspaces/{workspaceId}/feedback"
payload = {
"content": "I found the dashboard charts difficult to understand at first glance. The colors are confusing and the data is hard to interpret.",
"source": "Customer Interview",
"sourceId": "interview_456",
"sourceUrl": "https://basiliskai.slack.com/archives/C053AKR0669/p1744748012159779",
"sentimentScore": 0.75,
"sentimentCategory": "Positive",
"sentimentConfidence": 0.95,
"createdAtEpoch": 1679867746,
"title": "Dashboard charts are hard to understand",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}
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({
content: 'I found the dashboard charts difficult to understand at first glance. The colors are confusing and the data is hard to interpret.',
source: 'Customer Interview',
sourceId: 'interview_456',
sourceUrl: 'https://basiliskai.slack.com/archives/C053AKR0669/p1744748012159779',
sentimentScore: 0.75,
sentimentCategory: 'Positive',
sentimentConfidence: 0.95,
createdAtEpoch: 1679867746,
title: 'Dashboard charts are hard to understand',
id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
createdAt: '2023-11-07T05:31:56Z',
updatedAt: '2023-11-07T05:31:56Z'
})
};
fetch('https://api.meetsquad.ai/organisations/{orgId}/workspaces/{workspaceId}/feedback', 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.meetsquad.ai/organisations/{orgId}/workspaces/{workspaceId}/feedback",
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([
'content' => 'I found the dashboard charts difficult to understand at first glance. The colors are confusing and the data is hard to interpret.',
'source' => 'Customer Interview',
'sourceId' => 'interview_456',
'sourceUrl' => 'https://basiliskai.slack.com/archives/C053AKR0669/p1744748012159779',
'sentimentScore' => 0.75,
'sentimentCategory' => 'Positive',
'sentimentConfidence' => 0.95,
'createdAtEpoch' => 1679867746,
'title' => 'Dashboard charts are hard to understand',
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'createdAt' => '2023-11-07T05:31:56Z',
'updatedAt' => '2023-11-07T05:31:56Z'
]),
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.meetsquad.ai/organisations/{orgId}/workspaces/{workspaceId}/feedback"
payload := strings.NewReader("{\n \"content\": \"I found the dashboard charts difficult to understand at first glance. The colors are confusing and the data is hard to interpret.\",\n \"source\": \"Customer Interview\",\n \"sourceId\": \"interview_456\",\n \"sourceUrl\": \"https://basiliskai.slack.com/archives/C053AKR0669/p1744748012159779\",\n \"sentimentScore\": 0.75,\n \"sentimentCategory\": \"Positive\",\n \"sentimentConfidence\": 0.95,\n \"createdAtEpoch\": 1679867746,\n \"title\": \"Dashboard charts are hard to understand\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"createdAt\": \"2023-11-07T05:31:56Z\",\n \"updatedAt\": \"2023-11-07T05:31:56Z\"\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.meetsquad.ai/organisations/{orgId}/workspaces/{workspaceId}/feedback")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"content\": \"I found the dashboard charts difficult to understand at first glance. The colors are confusing and the data is hard to interpret.\",\n \"source\": \"Customer Interview\",\n \"sourceId\": \"interview_456\",\n \"sourceUrl\": \"https://basiliskai.slack.com/archives/C053AKR0669/p1744748012159779\",\n \"sentimentScore\": 0.75,\n \"sentimentCategory\": \"Positive\",\n \"sentimentConfidence\": 0.95,\n \"createdAtEpoch\": 1679867746,\n \"title\": \"Dashboard charts are hard to understand\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"createdAt\": \"2023-11-07T05:31:56Z\",\n \"updatedAt\": \"2023-11-07T05:31:56Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.meetsquad.ai/organisations/{orgId}/workspaces/{workspaceId}/feedback")
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 \"content\": \"I found the dashboard charts difficult to understand at first glance. The colors are confusing and the data is hard to interpret.\",\n \"source\": \"Customer Interview\",\n \"sourceId\": \"interview_456\",\n \"sourceUrl\": \"https://basiliskai.slack.com/archives/C053AKR0669/p1744748012159779\",\n \"sentimentScore\": 0.75,\n \"sentimentCategory\": \"Positive\",\n \"sentimentConfidence\": 0.95,\n \"createdAtEpoch\": 1679867746,\n \"title\": \"Dashboard charts are hard to understand\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"createdAt\": \"2023-11-07T05:31:56Z\",\n \"updatedAt\": \"2023-11-07T05:31:56Z\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "f5d8df32-60b4-417a-8b83-8d4dcb4e88e1",
"content": "I found the dashboard charts difficult to understand at first glance. The colors are confusing and the data is hard to interpret.",
"source": "Customer Interview",
"processed": false,
"createdAt": "2025-03-26T22:35:46Z",
"updatedAt": "2025-03-26T22:35:46Z",
"insights": [],
"opportunities": [],
"metadata": [
{
"nodeType": "IntercomConversation",
"conversationId": "123456789",
"url": "https://app.intercom.com/a/apps/abc/inbox/inbox/conversation/123456789",
"createdAt": "2024-01-01T00:00:00Z",
"updatedAt": "2024-01-02T00:00:00Z"
}
],
"sourceId": "interview_456",
"sourceUrl": "https://basiliskai.slack.com/archives/C053AKR0669/p1744748012159779",
"submittedBy": "user_123",
"sentimentScore": 0.75,
"sentimentCategory": "Positive",
"sentimentConfidence": 0.95,
"createdAtEpoch": 1679867746,
"title": "Dashboard charts are hard to understand"
}
}{
"error": {
"code": "INVALID_REQUEST",
"description": "One or more fields are invalid",
"fields": [
"title",
"description"
],
"validationErrors": {
"invalidFields": {
"title": {
"type": "too_small",
"message": "Title must be at least 3 characters long",
"path": [
"title"
]
},
"deadline": {
"type": "invalid_date",
"message": "Deadline must be a valid date in the future",
"path": [
"deadline"
]
}
}
}
}
}{
"error": {
"code": "UNAUTHORISED_ERROR",
"description": "User is unauthenticated"
}
}{
"error": {
"code": "UNAUTHORISED_ERROR",
"description": "User is unauthorised"
}
}{
"error": {
"code": "INTERNAL_SERVER_ERROR",
"description": "An unexpected error occurred on the server"
}
}Create new feedback
Creates a new feedback item in the specified workspace and automatically queues it for processing
curl --request POST \
--url https://api.meetsquad.ai/organisations/{orgId}/workspaces/{workspaceId}/feedback \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"content": "I found the dashboard charts difficult to understand at first glance. The colors are confusing and the data is hard to interpret.",
"source": "Customer Interview",
"sourceId": "interview_456",
"sourceUrl": "https://basiliskai.slack.com/archives/C053AKR0669/p1744748012159779",
"sentimentScore": 0.75,
"sentimentCategory": "Positive",
"sentimentConfidence": 0.95,
"createdAtEpoch": 1679867746,
"title": "Dashboard charts are hard to understand",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}
'import requests
url = "https://api.meetsquad.ai/organisations/{orgId}/workspaces/{workspaceId}/feedback"
payload = {
"content": "I found the dashboard charts difficult to understand at first glance. The colors are confusing and the data is hard to interpret.",
"source": "Customer Interview",
"sourceId": "interview_456",
"sourceUrl": "https://basiliskai.slack.com/archives/C053AKR0669/p1744748012159779",
"sentimentScore": 0.75,
"sentimentCategory": "Positive",
"sentimentConfidence": 0.95,
"createdAtEpoch": 1679867746,
"title": "Dashboard charts are hard to understand",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}
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({
content: 'I found the dashboard charts difficult to understand at first glance. The colors are confusing and the data is hard to interpret.',
source: 'Customer Interview',
sourceId: 'interview_456',
sourceUrl: 'https://basiliskai.slack.com/archives/C053AKR0669/p1744748012159779',
sentimentScore: 0.75,
sentimentCategory: 'Positive',
sentimentConfidence: 0.95,
createdAtEpoch: 1679867746,
title: 'Dashboard charts are hard to understand',
id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
createdAt: '2023-11-07T05:31:56Z',
updatedAt: '2023-11-07T05:31:56Z'
})
};
fetch('https://api.meetsquad.ai/organisations/{orgId}/workspaces/{workspaceId}/feedback', 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.meetsquad.ai/organisations/{orgId}/workspaces/{workspaceId}/feedback",
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([
'content' => 'I found the dashboard charts difficult to understand at first glance. The colors are confusing and the data is hard to interpret.',
'source' => 'Customer Interview',
'sourceId' => 'interview_456',
'sourceUrl' => 'https://basiliskai.slack.com/archives/C053AKR0669/p1744748012159779',
'sentimentScore' => 0.75,
'sentimentCategory' => 'Positive',
'sentimentConfidence' => 0.95,
'createdAtEpoch' => 1679867746,
'title' => 'Dashboard charts are hard to understand',
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'createdAt' => '2023-11-07T05:31:56Z',
'updatedAt' => '2023-11-07T05:31:56Z'
]),
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.meetsquad.ai/organisations/{orgId}/workspaces/{workspaceId}/feedback"
payload := strings.NewReader("{\n \"content\": \"I found the dashboard charts difficult to understand at first glance. The colors are confusing and the data is hard to interpret.\",\n \"source\": \"Customer Interview\",\n \"sourceId\": \"interview_456\",\n \"sourceUrl\": \"https://basiliskai.slack.com/archives/C053AKR0669/p1744748012159779\",\n \"sentimentScore\": 0.75,\n \"sentimentCategory\": \"Positive\",\n \"sentimentConfidence\": 0.95,\n \"createdAtEpoch\": 1679867746,\n \"title\": \"Dashboard charts are hard to understand\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"createdAt\": \"2023-11-07T05:31:56Z\",\n \"updatedAt\": \"2023-11-07T05:31:56Z\"\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.meetsquad.ai/organisations/{orgId}/workspaces/{workspaceId}/feedback")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"content\": \"I found the dashboard charts difficult to understand at first glance. The colors are confusing and the data is hard to interpret.\",\n \"source\": \"Customer Interview\",\n \"sourceId\": \"interview_456\",\n \"sourceUrl\": \"https://basiliskai.slack.com/archives/C053AKR0669/p1744748012159779\",\n \"sentimentScore\": 0.75,\n \"sentimentCategory\": \"Positive\",\n \"sentimentConfidence\": 0.95,\n \"createdAtEpoch\": 1679867746,\n \"title\": \"Dashboard charts are hard to understand\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"createdAt\": \"2023-11-07T05:31:56Z\",\n \"updatedAt\": \"2023-11-07T05:31:56Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.meetsquad.ai/organisations/{orgId}/workspaces/{workspaceId}/feedback")
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 \"content\": \"I found the dashboard charts difficult to understand at first glance. The colors are confusing and the data is hard to interpret.\",\n \"source\": \"Customer Interview\",\n \"sourceId\": \"interview_456\",\n \"sourceUrl\": \"https://basiliskai.slack.com/archives/C053AKR0669/p1744748012159779\",\n \"sentimentScore\": 0.75,\n \"sentimentCategory\": \"Positive\",\n \"sentimentConfidence\": 0.95,\n \"createdAtEpoch\": 1679867746,\n \"title\": \"Dashboard charts are hard to understand\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"createdAt\": \"2023-11-07T05:31:56Z\",\n \"updatedAt\": \"2023-11-07T05:31:56Z\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "f5d8df32-60b4-417a-8b83-8d4dcb4e88e1",
"content": "I found the dashboard charts difficult to understand at first glance. The colors are confusing and the data is hard to interpret.",
"source": "Customer Interview",
"processed": false,
"createdAt": "2025-03-26T22:35:46Z",
"updatedAt": "2025-03-26T22:35:46Z",
"insights": [],
"opportunities": [],
"metadata": [
{
"nodeType": "IntercomConversation",
"conversationId": "123456789",
"url": "https://app.intercom.com/a/apps/abc/inbox/inbox/conversation/123456789",
"createdAt": "2024-01-01T00:00:00Z",
"updatedAt": "2024-01-02T00:00:00Z"
}
],
"sourceId": "interview_456",
"sourceUrl": "https://basiliskai.slack.com/archives/C053AKR0669/p1744748012159779",
"submittedBy": "user_123",
"sentimentScore": 0.75,
"sentimentCategory": "Positive",
"sentimentConfidence": 0.95,
"createdAtEpoch": 1679867746,
"title": "Dashboard charts are hard to understand"
}
}{
"error": {
"code": "INVALID_REQUEST",
"description": "One or more fields are invalid",
"fields": [
"title",
"description"
],
"validationErrors": {
"invalidFields": {
"title": {
"type": "too_small",
"message": "Title must be at least 3 characters long",
"path": [
"title"
]
},
"deadline": {
"type": "invalid_date",
"message": "Deadline must be a valid date in the future",
"path": [
"deadline"
]
}
}
}
}
}{
"error": {
"code": "UNAUTHORISED_ERROR",
"description": "User is unauthenticated"
}
}{
"error": {
"code": "UNAUTHORISED_ERROR",
"description": "User is unauthorised"
}
}{
"error": {
"code": "INTERNAL_SERVER_ERROR",
"description": "An unexpected error occurred on the server"
}
}Authorizations
JWT authentication for organization-scoped endpoints.
Body
Request schema for creating feedback
Original raw feedback content
"I found the dashboard charts difficult to understand at first glance. The colors are confusing and the data is hard to interpret."
Source of the feedback
2 - 100"Customer Interview"
ID of the source from which feedback was imported
"interview_456"
URL of the source from which feedback was imported
"https://basiliskai.slack.com/archives/C053AKR0669/p1744748012159779"
Sentiment score from -1 (negative) to 1 (positive)
-1 <= x <= 10.75
Sentiment classification category
Positive, Neutral, Negative "Positive"
Confidence in sentiment analysis (0-1)
0 <= x <= 10.95
Unix epoch timestamp for efficient Neo4j queries
1679867746
Short title summarizing the feedback
"Dashboard charts are hard to understand"
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$Response
Feedback created successfully
Response containing a single feedback item
Feedback data
Show child attributes
Show child attributes