helpdesk
Unthread
Connect Unthread to Elaichi and hand every teammate a governed MCP endpoint — 66 tools ready to call from Claude, Cursor, or any MCP client, clamped by roles, restrictions, and an audit log.
AI tools
Unthread tools for your AI agents
66 tools are ready to mint as an MCP endpoint the moment you connect Unthread — governed by the same roles, restrictions, and audit log as everything else in Elaichi.
create_a_unthread_account
Create a new account in Unthread. Returns the created account including id, name, primarySupportAssigneeId, primarySupportAssigneeType, secondarySupportAssigneeId, secondarySupportAssigneeType, emailsAndDomains, slackChannelIds, slackTeamIds, customFields, supportSteps, imageUrl, externalCrmMetadata, createdAt, updatedAt, createdBy, updatedBy, slackChannels, slackTeams, and tags. Required: name.
get_single_unthread_account_by_id
Get a single Unthread account by id. Returns the account including id, name, emailsAndDomains, slackChannelIds, slackTeamIds, customFields, supportSteps, imageUrl, externalCrmMetadata, createdAt, updatedAt, createdBy, updatedBy, slackChannels, slackTeams, and tags. Required: id.
update_a_unthread_account_by_id
Update a Unthread account by id. All fields from the create request schema can be updated. Returns the updated account including id, name, emailsAndDomains, slackChannelIds, slackTeamIds, customFields, supportSteps, imageUrl, externalCrmMetadata, createdAt, updatedAt, createdBy, updatedBy, slackChannels, slackTeams, and tags. Required: id.
delete_a_unthread_account_by_id
Delete a Unthread account by id. Returns an empty 204 response on success. Required: id.
list_all_unthread_accounts
List Unthread accounts following the standard list conventions with select, order, where, and descending filters. Returns each account with id, name, emailsAndDomains, slackChannelIds, slackTeamIds, customFields, supportSteps, imageUrl, externalCrmMetadata, createdAt, updatedAt, createdBy, updatedBy, slackChannels, slackTeams, and tags. Max 100 per page.
create_a_unthread_approval_request
Create an approval request for a conversation in Unthread. Returns the newly created approval request including id, status, conversationId, tenantId, and createdAt. Required: conversation_id. Settable fields: title, assignedToUserId, assignedToGroupId.
list_all_unthread_approval_requests
List approval requests for a conversation in Unthread. Returns ApprovalRequest objects including status, id, tenantId, assignedToGroupId, assignedToUserId, statusChangedAt, conversationId, title, notes, createdAt, approverUser, and approverGroup. Required: conversation_id.
create_a_unthread_automation
Create a new automation in Unthread. Returns the created automation object including its id, name, status, trigger, steps, and conditions. Required: name, trigger, steps. Automations are only available if custom actions are enabled for the tenant.
unthread_automations_create_function
Upload shared code library external functions for automations in Unthread. Returns an object with a version number for subsequent activation. Required: code. The projectId query parameter is optional; omit it for tenant-level automations.
unthread_automations_activate_function
Activate a specific version of a shared code library function for automations in Unthread. Returns the activated function version number. Required: version. The projectId query parameter is optional; omit it for tenant-level automations. Activating a previous version can be used to roll back changes.
list_all_unthread_collaborator_types
List collaborator types in Unthread following the standard list conventions. Returns: id. Max 100 per page.
create_a_unthread_conversation
Create a new conversation in Unthread. Behavior varies by type — Slack (channel/DM), triage (internal discussion), or email (email replies). Returns the created conversation including its id, title, initialMessage (ts, text), and tags. Required: type, markdown, status.
get_single_unthread_conversation_by_id
Get a single Unthread conversation by id. Returns the full conversation object including id, status, title, initialMessage, tags, customerId, createdAt, and updatedAt. Required: id.
update_a_unthread_conversation_by_id
Update an Unthread conversation by id. Supports updating status, priority, title, assignedToUserId, customerId, ticketTypeId, ticketTypeFields, metadata, and more. Returns the updated conversation including id, title, initialMessage, and tags. Required: id. Optional query params: mergeTicketTypeFields, useFullContent.
list_all_unthread_conversations
List conversations in Unthread using the standard list conventions (select, order, where, descending). Returns an array of conversation records each including id, title, initialMessage (ts, text), and tags. Max 100 per page.
unthread_conversations_download_file
Download the full contents of a file attachment from an Unthread conversation. Returns the raw file content as binary data. Required: conversation_id, file_id.
unthread_conversations_add_follower
Add a follower to an Unthread conversation. Returns: entityId, userId, groupId, id, title, content, url, status, userGroupIds, createdAt, updatedAt. Required: conversation_id, entityId, entityType.
unthread_conversations_remove_follower
Remove a follower from an Unthread conversation by entityId. Returns the updated conversation including its id, title, status, and tags. Required: conversation_id, entityId.
unthread_conversations_assign_collaborator
Assign a collaborator with a given collaborator type to an Unthread conversation. Returns the updated conversation including id, title, status, collaborators, and tags. Required: conversation_id, collaborator_type_id. The request body requires entityId and entityType (either "user" or "group").
unthread_conversations_create_external_task
Create an external task for a conversation in Unthread, sending it to a configured task manager integration such as Linear. Returns the created external task including id, title, description, integrationId, assigneeId, and providerConfig. Required: conversation_id, title, integrationId.
create_a_unthread_customer
Create a new customer in Unthread. A Slack channel is created automatically if the createChannel flag is set to true. Returns the created customer object including id, name, slackChannelId, createdAt, updatedAt, tags, and projectId. Required: name.
get_single_unthread_customer_by_id
Get a single Unthread customer by id. Returns the full customer object including name, slackChannelId, primarySupportAssigneeId, botHandling, autoresponder, supportSteps, tags, slackChannel, createdAt, updatedAt, and projectId. Required: id.
update_a_unthread_customer_by_id
Update an existing Unthread customer by id. Returns the updated customer object including name, slackChannelId, botHandling, autoresponder, supportSteps, tags, slackChannel, createdAt, updatedAt, and projectId. Required: id.
delete_a_unthread_customer_by_id
Delete an Unthread customer by id. Returns an empty 204 response on success. Required: id.
list_all_unthread_customers
List Unthread customers following the standard list conventions with select, order, where, and descending filter parameters. Returns: id, name, primarySupportAssigneeId, primarySupportAssigneeType, secondarySupportAssigneeId, secondarySupportAssigneeType, replyTimeoutMinutes, defaultTriageChannelId, disableAutomatedTicketing, botHandling, autoresponder, supportSteps, slackTeamId,…
unthread_knowledge_base_query
Query the Unthread knowledge base for articles matching a search string, with optional context parameters to influence results. Returns: id, title, content, url, status, userGroupIds, createdAt, updatedAt. Required: query.
create_a_unthread_outbound
Create an outbound message in Unthread. The outbound is sent immediately unless status is set to "draft". Returns: id, status, deliveryMethod, subject, blocks, recipients, sendAs, runAt, title, content, url, userGroupIds, createdAt, updatedAt.
update_a_unthread_outbound_by_id
Update an outbound message in Unthread by id. Drafts can be sent by updating the status to "scheduled". Returns: id, status, deliveryMethod, subject, blocks, recipients, sendAs, runAt, title, content, url, userGroupIds, createdAt, updatedAt. Required: id.
list_all_unthread_outbounds
List all outbound messages in Unthread. Returns: id, status, deliveryMethod, subject, blocks, recipients, sendAs, runAt, title, content, url, userGroupIds, createdAt, updatedAt.
get_single_unthread_outbound_by_id
Get a single outbound message in Unthread by id. Returns: id, status, deliveryMethod, subject, blocks, recipients, sendAs, runAt, title, content, url, userGroupIds, createdAt, updatedAt. Required: id.
unthread_reporting_time_series
Get time-series conversation metrics from Unthread grouped by date and optional dimensions. Returns: data, dates, lookups, id, title, content, url, status, userGroupIds, createdAt, updatedAt. Required: startDate, endDate, metric. Timezone defaults to UTC; response and resolution times are in seconds.
list_all_unthread_surveys
List surveys in Unthread following the standard list conventions. Returns: id, createdAt, updatedAt. Max 100 per page.
unthread_surveys_list_responses
List responses for a specific survey in Unthread following the standard list conventions. Returns: id, createdAt, updatedAt. Required: survey_id. Max 100 per page.
unthread_surveys_get_analytics
Get CSAT analytics for a specific survey in Unthread. Returns: id, title, content, url, status, userGroupIds, createdAt, updatedAt. Required: survey_id.
unthread_slack_bulk_update
Update a Slack user group mapping in Unthread by providing the user's email and Slack handle. Returns: email, slackHandle, id, title, content, url, status, userGroupIds, createdAt, updatedAt. Required: email, slackHandle.
create_a_unthread_tag
Create a new tag in Unthread. Returns the created tag object including id, name, description, autoTaggingEnabled, and projectId. Required: name.
get_single_unthread_tag_by_id
Get a single Unthread tag by id. Returns: id, name, description, autoTaggingEnabled, projectId, title, content, url, status, userGroupIds, createdAt, updatedAt. Required: id.
update_a_unthread_tag_by_id
Update an Unthread tag by id. Returns the updated tag including id, name, description, autoTaggingEnabled, and projectId. Required: id.
delete_a_unthread_tag_by_id
Delete an Unthread tag by id. Returns an empty 204 response on success. Required: id.
list_all_unthread_tags
List Unthread tags following the standard list conventions. Returns: id, name, description, autoTaggingEnabled, projectId. Max 100 per page.
unthread_tags_link_customers
Assign a tag to multiple Unthread customers by providing an array of customer IDs. Returns an empty 204 response on success. Required: tag_id, and a request body array of customer IDs.
unthread_tags_link_conversations
Assign a tag to multiple Unthread conversations by providing an array of conversation IDs. Returns an empty 204 response on success. Required: tag_id, and a request body array of conversation IDs.
unthread_tags_unlink_customers
Remove a tag from multiple Unthread customers by providing an array of customer IDs. Returns an empty 204 response on success. Required: tag_id, and a request body array of customer IDs.
unthread_tags_unlink_conversations
Remove a tag from multiple Unthread conversations by providing an array of conversation IDs. Returns an empty 204 response on success. Required: tag_id, and a request body array of conversation IDs.
create_a_unthread_ticket_type
Create a new ticket type in Unthread with custom fields and conditional visibility rules. Returns: id, name, projectId, description, createdAt, updatedAt, fields, title, content, url, status, userGroupIds. Required: name, description.
update_a_unthread_ticket_type_by_id
Update a ticket type in Unthread by id, including its name, description, and field definitions. Returns: id, name, projectId, description, createdAt, updatedAt, fields, title, content, url, status, userGroupIds. Required: id.
delete_a_unthread_ticket_type_by_id
Delete a ticket type in Unthread by id. Returns an empty 204 response on success. Required: id.
list_all_unthread_ticket_types
List ticket types in Unthread using the standard list conventions with select, order, where, and descending parameters. Returns: id, name, projectId, description, createdAt, updatedAt, fields.
get_single_unthread_ticket_type_by_id
Get a single ticket type in Unthread by id. Returns: id, name, projectId, description, createdAt, updatedAt, fields, title, content, url, status, userGroupIds. Required: id.
list_all_unthread_users
List Unthread users synced from your Slack workspace. Returns: id. Pass includeExternalUsers as true to also return external users. Max 100 per page.
get_single_unthread_user_by_id
Get a single Unthread user by id. Returns: id, name, email, slackId, photo, customFields, title, content, url, status, userGroupIds, createdAt, updatedAt. Required: id.
update_a_unthread_user_by_id
Update an Unthread user by id. Returns the updated user with id, name, email, slackId, photo, and customFields. Required: id.
list_all_unthread_user_groups
List user groups in Unthread following the standard list conventions with support for select, order, where, and descending parameters. Returns: id. Max 100 per page.
get_single_unthread_user_group_by_id
Get a single Unthread user group by id. Returns: id, description, isExternal, filters, projectId, title, content, url, status, userGroupIds, createdAt, updatedAt. Required: id.
update_a_unthread_user_group_by_id
Update an Unthread user group by id. Returns the updated user group including id, description, isExternal, filters, and projectId. Required: id.
create_a_unthread_webhook_subscription
Create a webhook subscription in Unthread. Returns: id, url, enabled, title, content, status, userGroupIds, createdAt, updatedAt. Required: url.
update_a_unthread_webhook_subscription_by_id
Update a webhook subscription in Unthread by id. Returns: id, url, enabled, title, content, status, userGroupIds, createdAt, updatedAt. Required: id.
delete_a_unthread_webhook_subscription_by_id
Delete a webhook subscription in Unthread by id. Returns an empty 204 response on success.
list_all_unthread_webhook_subscriptions
List webhook subscriptions in Unthread. Returns: id, url, enabled, title, content, status, userGroupIds, createdAt, updatedAt.
list_all_unthread_conversation_messages
List messages for a given Unthread conversation. Returns: ts, userId, userTeamId, botId, botName, text, subtype, conversationId, timestamp, threadTs, conversation, user, metadata. Required: conversation_id.
create_a_unthread_conversation_message
Create a new message in an Unthread conversation, posted into the Slack thread. Returns the created message including ts, text, userId, conversationId, timestamp, botName, and metadata. Required: conversation_id. Either body, blocks, or markdown must be provided.
create_a_unthread_knowledge_base_article
Create a new knowledge base article in Unthread. Returns: id, title, content, url, status, userGroupIds, createdAt, updatedAt. Required: title, content.
get_single_unthread_knowledge_base_article_by_id
Get a single knowledge base article in Unthread by id. Returns: id, title, content, url, status, userGroupIds, createdAt, updatedAt. Required: id.
update_a_unthread_knowledge_base_article_by_id
Update an existing knowledge base article in Unthread by id. Returns: id, title, content, url, status, userGroupIds, createdAt, updatedAt. Required: id.
delete_a_unthread_knowledge_base_article_by_id
Delete a knowledge base article in Unthread by id. Returns an empty 204 response on success. Required: id.
list_all_unthread_knowledge_base_articles
List knowledge base articles in Unthread following standard list conventions with support for field selection, filtering, and sorting. Returns: id, title, content, url, status, userGroupIds, createdAt, updatedAt. Max 100 per page.
How it works
From Unthread account to governed MCP endpoint
Connect
Link a Unthread account through Elaichi's hosted connect flow. Credentials are vaulted — nobody, including the AI, ever sees them.
Compose
The connection becomes a toolbox instantly. Curate which Unthread tools are exposed, rename them, or freeze arguments.
Mint
Mint a personal MCP endpoint on that toolbox and paste it into Claude, Cursor, or any MCP client — governed by roles, restrictions, and audit logs.
Give every teammate a governed MCP server
Start a 14-day Gold trial — connect a product, curate a toolbox, and paste an endpoint into Claude or Cursor in minutes.