Conversation
Message Received
Sync messages from your system, and receive responses from the AI via webhook
POST
/
v1
/
webhooks
/
{integration_id}
/
message-received
Message Received
curl --request POST \
--url https://zeus-api.atlas.so/v1/webhooks/{integration_id}/message-received \
--header 'Content-Type: application/json' \
--data '
{
"id": "msg_1",
"role": "human",
"sentAt": "2026-01-07T06:45:51.507348",
"customerId": "4ae6ffe2-d223-4e6d-8a0f-7fc9531d2163",
"text": "Hello, I need help with my order",
"attachments": [
{
"name": "order.png",
"url": "https://example.com/order.png"
}
],
"conversationId": "conv_1",
"syncOnly": false,
"requestContext": {}
}
'import requests
url = "https://zeus-api.atlas.so/v1/webhooks/{integration_id}/message-received"
payload = {
"id": "msg_1",
"role": "human",
"sentAt": "2026-01-07T06:45:51.507348",
"customerId": "4ae6ffe2-d223-4e6d-8a0f-7fc9531d2163",
"text": "Hello, I need help with my order",
"attachments": [
{
"name": "order.png",
"url": "https://example.com/order.png"
}
],
"conversationId": "conv_1",
"syncOnly": False,
"requestContext": {}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
id: 'msg_1',
role: 'human',
sentAt: '2026-01-07T06:45:51.507348',
customerId: '4ae6ffe2-d223-4e6d-8a0f-7fc9531d2163',
text: 'Hello, I need help with my order',
attachments: [{name: 'order.png', url: 'https://example.com/order.png'}],
conversationId: 'conv_1',
syncOnly: false,
requestContext: {}
})
};
fetch('https://zeus-api.atlas.so/v1/webhooks/{integration_id}/message-received', 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://zeus-api.atlas.so/v1/webhooks/{integration_id}/message-received",
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([
'id' => 'msg_1',
'role' => 'human',
'sentAt' => '2026-01-07T06:45:51.507348',
'customerId' => '4ae6ffe2-d223-4e6d-8a0f-7fc9531d2163',
'text' => 'Hello, I need help with my order',
'attachments' => [
[
'name' => 'order.png',
'url' => 'https://example.com/order.png'
]
],
'conversationId' => 'conv_1',
'syncOnly' => false,
'requestContext' => [
]
]),
CURLOPT_HTTPHEADER => [
"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://zeus-api.atlas.so/v1/webhooks/{integration_id}/message-received"
payload := strings.NewReader("{\n \"id\": \"msg_1\",\n \"role\": \"human\",\n \"sentAt\": \"2026-01-07T06:45:51.507348\",\n \"customerId\": \"4ae6ffe2-d223-4e6d-8a0f-7fc9531d2163\",\n \"text\": \"Hello, I need help with my order\",\n \"attachments\": [\n {\n \"name\": \"order.png\",\n \"url\": \"https://example.com/order.png\"\n }\n ],\n \"conversationId\": \"conv_1\",\n \"syncOnly\": false,\n \"requestContext\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
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://zeus-api.atlas.so/v1/webhooks/{integration_id}/message-received")
.header("Content-Type", "application/json")
.body("{\n \"id\": \"msg_1\",\n \"role\": \"human\",\n \"sentAt\": \"2026-01-07T06:45:51.507348\",\n \"customerId\": \"4ae6ffe2-d223-4e6d-8a0f-7fc9531d2163\",\n \"text\": \"Hello, I need help with my order\",\n \"attachments\": [\n {\n \"name\": \"order.png\",\n \"url\": \"https://example.com/order.png\"\n }\n ],\n \"conversationId\": \"conv_1\",\n \"syncOnly\": false,\n \"requestContext\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://zeus-api.atlas.so/v1/webhooks/{integration_id}/message-received")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"id\": \"msg_1\",\n \"role\": \"human\",\n \"sentAt\": \"2026-01-07T06:45:51.507348\",\n \"customerId\": \"4ae6ffe2-d223-4e6d-8a0f-7fc9531d2163\",\n \"text\": \"Hello, I need help with my order\",\n \"attachments\": [\n {\n \"name\": \"order.png\",\n \"url\": \"https://example.com/order.png\"\n }\n ],\n \"conversationId\": \"conv_1\",\n \"syncOnly\": false,\n \"requestContext\": {}\n}"
response = http.request(request)
puts response.read_body{
"message": {
"id": "<string>",
"role": "system",
"sentAt": "2023-11-07T05:31:56Z",
"type": "default",
"text": "<string>",
"attachments": [],
"isSuggestion": false,
"agentInfo": {
"id": "<string>",
"name": "<string>",
"avatar": "<string>"
}
},
"conversation": {
"id": "<string>",
"status": "open",
"createdAt": "2023-11-07T05:31:56Z",
"customerId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"channel": "<string>",
"firstUnreadMessageId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}⌘I
Message Received
curl --request POST \
--url https://zeus-api.atlas.so/v1/webhooks/{integration_id}/message-received \
--header 'Content-Type: application/json' \
--data '
{
"id": "msg_1",
"role": "human",
"sentAt": "2026-01-07T06:45:51.507348",
"customerId": "4ae6ffe2-d223-4e6d-8a0f-7fc9531d2163",
"text": "Hello, I need help with my order",
"attachments": [
{
"name": "order.png",
"url": "https://example.com/order.png"
}
],
"conversationId": "conv_1",
"syncOnly": false,
"requestContext": {}
}
'import requests
url = "https://zeus-api.atlas.so/v1/webhooks/{integration_id}/message-received"
payload = {
"id": "msg_1",
"role": "human",
"sentAt": "2026-01-07T06:45:51.507348",
"customerId": "4ae6ffe2-d223-4e6d-8a0f-7fc9531d2163",
"text": "Hello, I need help with my order",
"attachments": [
{
"name": "order.png",
"url": "https://example.com/order.png"
}
],
"conversationId": "conv_1",
"syncOnly": False,
"requestContext": {}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
id: 'msg_1',
role: 'human',
sentAt: '2026-01-07T06:45:51.507348',
customerId: '4ae6ffe2-d223-4e6d-8a0f-7fc9531d2163',
text: 'Hello, I need help with my order',
attachments: [{name: 'order.png', url: 'https://example.com/order.png'}],
conversationId: 'conv_1',
syncOnly: false,
requestContext: {}
})
};
fetch('https://zeus-api.atlas.so/v1/webhooks/{integration_id}/message-received', 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://zeus-api.atlas.so/v1/webhooks/{integration_id}/message-received",
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([
'id' => 'msg_1',
'role' => 'human',
'sentAt' => '2026-01-07T06:45:51.507348',
'customerId' => '4ae6ffe2-d223-4e6d-8a0f-7fc9531d2163',
'text' => 'Hello, I need help with my order',
'attachments' => [
[
'name' => 'order.png',
'url' => 'https://example.com/order.png'
]
],
'conversationId' => 'conv_1',
'syncOnly' => false,
'requestContext' => [
]
]),
CURLOPT_HTTPHEADER => [
"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://zeus-api.atlas.so/v1/webhooks/{integration_id}/message-received"
payload := strings.NewReader("{\n \"id\": \"msg_1\",\n \"role\": \"human\",\n \"sentAt\": \"2026-01-07T06:45:51.507348\",\n \"customerId\": \"4ae6ffe2-d223-4e6d-8a0f-7fc9531d2163\",\n \"text\": \"Hello, I need help with my order\",\n \"attachments\": [\n {\n \"name\": \"order.png\",\n \"url\": \"https://example.com/order.png\"\n }\n ],\n \"conversationId\": \"conv_1\",\n \"syncOnly\": false,\n \"requestContext\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
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://zeus-api.atlas.so/v1/webhooks/{integration_id}/message-received")
.header("Content-Type", "application/json")
.body("{\n \"id\": \"msg_1\",\n \"role\": \"human\",\n \"sentAt\": \"2026-01-07T06:45:51.507348\",\n \"customerId\": \"4ae6ffe2-d223-4e6d-8a0f-7fc9531d2163\",\n \"text\": \"Hello, I need help with my order\",\n \"attachments\": [\n {\n \"name\": \"order.png\",\n \"url\": \"https://example.com/order.png\"\n }\n ],\n \"conversationId\": \"conv_1\",\n \"syncOnly\": false,\n \"requestContext\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://zeus-api.atlas.so/v1/webhooks/{integration_id}/message-received")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"id\": \"msg_1\",\n \"role\": \"human\",\n \"sentAt\": \"2026-01-07T06:45:51.507348\",\n \"customerId\": \"4ae6ffe2-d223-4e6d-8a0f-7fc9531d2163\",\n \"text\": \"Hello, I need help with my order\",\n \"attachments\": [\n {\n \"name\": \"order.png\",\n \"url\": \"https://example.com/order.png\"\n }\n ],\n \"conversationId\": \"conv_1\",\n \"syncOnly\": false,\n \"requestContext\": {}\n}"
response = http.request(request)
puts response.read_body{
"message": {
"id": "<string>",
"role": "system",
"sentAt": "2023-11-07T05:31:56Z",
"type": "default",
"text": "<string>",
"attachments": [],
"isSuggestion": false,
"agentInfo": {
"id": "<string>",
"name": "<string>",
"avatar": "<string>"
}
},
"conversation": {
"id": "<string>",
"status": "open",
"createdAt": "2023-11-07T05:31:56Z",
"customerId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"channel": "<string>",
"firstUnreadMessageId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}