Replaces the conversation's attachments with the list you send. Send an empty list to clear them. The next message uses the new context.
Request#
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | Conversation ID, for example conductor_1d3f5a7c9e2b4d6f8a0c2e4b. |
Body:
| Field | Type | Required | Description |
|---|---|---|---|
attachments |
object[] | Yes | Up to 10 attachments. |
Each attachment is one of:
type |
Other fields | Adds to the context |
|---|---|---|
agent |
id |
Agent name, version and the first 1500 characters of its prompt. |
call |
id |
Status, duration, disconnection reason, sentiment and summary. |
dashboard |
id |
Dashboard name and chart titles. |
qa_cohort |
id |
Cohort name, calls scored and average score. |
contact |
id |
Name or number, call count and contact memory. |
node |
agent_id, node_id |
A conversation flow node, or a multi-prompt state by name, of that agent. |
file |
name (1 to 200 characters), content (up to 200000 characters) |
The file's first 8000 characters. |
Every ID must exist in the workspace.
Example request#
curl -X PUT https://api.tried.com.au/conductor/sessions/conductor_1d3f5a7c9e2b4d6f8a0c2e4b/attachments \
-H "Authorization: Bearer $TRIED_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"attachments": [
{
"type": "call",
"id": "call_5e7a9c1b3d5f7e9a2c4b6d8f"
},
{
"type": "file",
"name": "notes.txt",
"content": "Callers complain about wait times on Mondays."
}
]
}'const res = await fetch("https://api.tried.com.au/conductor/sessions/conductor_1d3f5a7c9e2b4d6f8a0c2e4b/attachments", {
method: "PUT",
headers: {
Authorization: `Bearer ${process.env.TRIED_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"attachments": [
{
"type": "call",
"id": "call_5e7a9c1b3d5f7e9a2c4b6d8f"
},
{
"type": "file",
"name": "notes.txt",
"content": "Callers complain about wait times on Mondays."
}
]
}),
});
const session = await res.json();import os, requests
res = requests.put(
"https://api.tried.com.au/conductor/sessions/conductor_1d3f5a7c9e2b4d6f8a0c2e4b/attachments",
headers={"Authorization": f"Bearer {os.environ['TRIED_API_KEY']}"},
json={
"attachments": [
{
"type": "call",
"id": "call_5e7a9c1b3d5f7e9a2c4b6d8f",
},
{
"type": "file",
"name": "notes.txt",
"content": "Callers complain about wait times on Mondays.",
},
],
},
)
session = res.json()Response#
200 OK
{
"session_id": "conductor_1d3f5a7c9e2b4d6f8a0c2e4b",
"title": "Latency review",
"user_id": null,
"attachments": [
{
"type": "call",
"id": "call_5e7a9c1b3d5f7e9a2c4b6d8f"
},
{
"type": "file",
"name": "notes.txt",
"content": "Callers complain about wait times on Mondays."
}
],
"message_count": 0,
"messages": [],
"created_timestamp": 1792395000000,
"last_modification_timestamp": 1792395030000
}Returns the full conversation. See Get Conductor session.
Errors#
| Status | When |
|---|---|
400 |
Body validation failed, for example attachments: Required. |
401 |
Missing or invalid API key. |
403 |
The key's IP allowlist or scopes reject the request. This route needs the admin scope. Dashboard users with the member role get The member role is read-only. |
404 |
No conversation with that ID in the workspace: Conversation not found. |
404 |
An attachment does not exist, for example Agent <id> not found, Call <id> not found or Node <node_id> not found in agent <agent_id>. |
429 |
Rate limit exceeded. See Rate limits. |
See Errors for the body format.
Retell compatibility#
Retell's public API reference has no Conductor endpoints, so this route has no Retell SDK equivalent.