threads
threads.delete
Delete Thread
Effects: write
🗑️ PERMANENTLY delete conversation thread(s) and their messages + user-facing state (tags, assignments, drafts, reminders, RAG chunks). Destructive and NOT undoable — requires confirm=true.
Pass thread_id for one, or thread_ids for a bulk delete. Kept intentionally: call history (voice_sessions), usage/billing, traces, and outreach dedup are NOT removed.
Note: for a live synced channel (Telegram/WhatsApp) this clears the LOCAL copy; a new inbound can re-create the thread on next sync. For livechat/voice/test/duel threads it's effectively permanent.
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
confirm | boolean | yes | Must be true to actually delete — a safety gate for this destructive action. |
thread_id | integer | no | A single thread ID to delete. Use this OR thread_ids. |
thread_ids | array | no | Multiple thread IDs to delete in one call (bulk). Use this OR thread_id. |
threads.update
Update Thread
Effects: write
✏️ Update a conversation thread: rename it, add notes/description, move it to a folder, or take it out of sync.
When to use:
- User wants to rename a chat or group
- User wants to add notes/context about a conversation
- User wants to organize threads into folders
- User wants a chat to stop showing up and stop syncing (
synced=false) — e.g. the personal chats on an account that is only in the workspace for its work groups. Nothing is deleted;synced=truebrings it back.
For DM threads, renaming also updates the linked contact's display name by default.
Pass thread_id for one thread, or thread_ids to apply the same change to several. Ids come from threads.list / search.threads.
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
description | string | no | AI context / notes for this thread. Empty string clears description. |
folder_id | integer | no | Move thread to this folder (null removes from folder) |
synced | boolean | no | false takes the chat out of sync: it disappears from the inbox, from knowledge/RAG search, and the sync service stops fetching it. Messages already stored are kept and nothing is deleted. true puts it back, including a chat sync left out by itself (e.g. a large group, or a channel of a big Discord server; find its id, synced or not, with channels.list(account_id=..., chats='<part of its title>')), and queues its recent history (not on an account that syncs only new messages). The decision survives later syncs. OMIT to leave sync as it is. |
thread_id | string | no | Thread ID from threads.list. Use this OR thread_ids. |
thread_ids | array | no | Several thread IDs to apply the same change to, e.g. taking a batch of personal chats out of sync in one call. Use this OR thread_id. |
title | string | no | New title for the thread (max 255 chars). For a DM this ALSO renames the linked contact, so an empty string is ignored, not applied — omit the parameter when you are not renaming. |
update_contact | boolean | no | For DM threads, also rename the linked contact (default: true) (default True) |