Skip to content
TriedDocs
Account

Set Conductor attachments

Replace the context attached to a Conductor conversation.

PUThttps://api.tried.com.au/conductor/sessions/{id}/attachments

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.