Update LinkedIn Unibox Conversation State
curl --request POST \
--url https://api.example.com/api/public/tools/update_linkedin_unibox_conversation_state \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"conversationId": "<string>",
"tag": null,
"isRead": null,
"isArchived": null
}
'import requests
url = "https://api.example.com/api/public/tools/update_linkedin_unibox_conversation_state"
payload = {
"conversationId": "<string>",
"tag": None,
"isRead": None,
"isArchived": None
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({conversationId: '<string>', tag: null, isRead: null, isArchived: null})
};
fetch('https://api.example.com/api/public/tools/update_linkedin_unibox_conversation_state', 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.example.com/api/public/tools/update_linkedin_unibox_conversation_state",
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([
'conversationId' => '<string>',
'tag' => null,
'isRead' => null,
'isArchived' => null
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <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://api.example.com/api/public/tools/update_linkedin_unibox_conversation_state"
payload := strings.NewReader("{\n \"conversationId\": \"<string>\",\n \"tag\": null,\n \"isRead\": null,\n \"isArchived\": null\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<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://api.example.com/api/public/tools/update_linkedin_unibox_conversation_state")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"conversationId\": \"<string>\",\n \"tag\": null,\n \"isRead\": null,\n \"isArchived\": null\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/public/tools/update_linkedin_unibox_conversation_state")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"conversationId\": \"<string>\",\n \"tag\": null,\n \"isRead\": null,\n \"isArchived\": null\n}"
response = http.request(request)
puts response.read_body{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}FirstTouch tools
Update LinkedIn Unibox Conversation State
Updates explicit state on one synchronized FirstTouch LinkedIn Unibox conversation.
Detailed usage guidance
- Use only when the customer explicitly asks to mark it read or unread, archive or unarchive it, or change its tag.
- isRead=true marks read and false marks unread.
- isArchived=true archives and false unarchives.
- tag accepts hot, nurture, or none: hot and nurture replace the tag, while none clears it.
- Omit any state field that should remain unchanged.
- MCP supports at most one tag on a conversation.
- At least one of tag, isRead, or isArchived must be supplied.
- This changes FirstTouch state only; it does not send a message or trigger synchronization.
POST
/
api
/
public
/
tools
/
update_linkedin_unibox_conversation_state
Update LinkedIn Unibox Conversation State
curl --request POST \
--url https://api.example.com/api/public/tools/update_linkedin_unibox_conversation_state \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"conversationId": "<string>",
"tag": null,
"isRead": null,
"isArchived": null
}
'import requests
url = "https://api.example.com/api/public/tools/update_linkedin_unibox_conversation_state"
payload = {
"conversationId": "<string>",
"tag": None,
"isRead": None,
"isArchived": None
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({conversationId: '<string>', tag: null, isRead: null, isArchived: null})
};
fetch('https://api.example.com/api/public/tools/update_linkedin_unibox_conversation_state', 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.example.com/api/public/tools/update_linkedin_unibox_conversation_state",
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([
'conversationId' => '<string>',
'tag' => null,
'isRead' => null,
'isArchived' => null
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <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://api.example.com/api/public/tools/update_linkedin_unibox_conversation_state"
payload := strings.NewReader("{\n \"conversationId\": \"<string>\",\n \"tag\": null,\n \"isRead\": null,\n \"isArchived\": null\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<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://api.example.com/api/public/tools/update_linkedin_unibox_conversation_state")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"conversationId\": \"<string>\",\n \"tag\": null,\n \"isRead\": null,\n \"isArchived\": null\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/public/tools/update_linkedin_unibox_conversation_state")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"conversationId\": \"<string>\",\n \"tag\": null,\n \"isRead\": null,\n \"isArchived\": null\n}"
response = http.request(request)
puts response.read_body{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}{
"error": "<string>",
"message": "<string>",
"traceId": "<string>"
}Authorizations
Body
application/json
Exact conversationId returned by list_linkedin_unibox_conversations or get_linkedin_unibox_conversation.
Set the single tag to hot or nurture. Use none to remove the tag. Omit to preserve the current tag.
Available options:
none, hot, nurture, null Set true to mark the conversation read or false to mark it unread. Omit to preserve the current read state.
Set true to archive the conversation or false to unarchive it. Omit to preserve the current archive state.
Response
Tool result.

