MCP Server

branchly

io.branchly/branchly

What this MCP does

Manages an AI application’s knowledge-base content, prompts, tools, data sources, retrieval context, sessions, and usage analytics.

create_data_source
Create a new data source for the authenticated application. The 'settings' object must match the given 'type'. Returns the created data source. Creating a data source does not sync any content — use run_data_source to start a sync.
Input schema
{'type': 'object', 'required': ['name', 'type', 'settings'], 'properties': {'name': {'type': 'string', 'description': "Human-readable display name of the data source (e.g. 'Company Website')."}, 'type': {'enum': ['website_crawler', 'file_upload', 'node_editor', 'default_node', 'openAPI', 'helpspace', 'custom_website_crawler', 'webhook', 'wordpress'], 'type': 'string', 'description': "Must match the 'type' discriminator of the 'settings' object when both are provided."}, 'schedule': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Cron expression (e.g. '0 3 * * *') or null to disable scheduled re-sync."}, 'settings': {'oneOf': [{'anyOf': [{'type': 'object', 'required': ['urls'], 'properties': {'type': {'type': 'string', 'const': 'website_crawler', 'default': 'website_crawler'}, 'urls': {'type': 'object', 'required': ['start_urls'], 'properties': {'start_urls': {'type': 'array', 'items': {'type': 'string', 'format': 'uri', 'minLength': 1}}}}, 'actor': {'enum': ['apify/website-content-crawler'], 'type': 'string', 'default': 'apify/website-content-crawler'}, 'filters': {'anyOf': [{'type': 'object', 'properties': {'criteria': {'type': 'array', 'items': {'type': 'object', 'required': ['field', 'condition'], 'properties': {'field': {'enum': ['published_time', 'modified_time'], 'type': 'string'}, 'condition': {'type': 'object', 'required': ['type', 'value'], 'properties': {'type': {'enum': ['max_age_days', 'contains'], 'type': 'string'}, 'value': {'anyOf': [{'type': 'integer'}, {'type': 'string'}]}}}}}}}}, {'type': 'null'}], 'default': None}, 'custom_tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Tags defined by the user that are displayed as badges in frontend. Applies to all pages crawled with this data source.'}, 'crawler_type': {'enum': ['playwright:firefox', 'playwright:adaptive', 'cheerio'], 'type': 'string', 'default': 'cheerio'}, 'ignore_errors': {'type': 'boolean', 'default': False, 'description': 'Ignore any page-specific errors (Lang-Tab not available, status code etc.) and continue crawling.'}, 'max_crawl_depth': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': 20}, 'exclude_url_globs': {'type': 'array', 'items': {'type': 'string'}}, 'include_url_globs': {'type': 'array', 'items': {'type': 'string'}}, 'max_pages_per_crawl': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': 30}, 'ignore_canonical_url': {'type': 'boolean', 'default': False, 'description': 'Ignore canonical URLs when crawling if they are incorrectly defined or the crawler should consider Query Parameters as well.'}, 'remove_html_elements': {'type': 'string', 'default': 'footer, div.footer, #footer, header, div.pageheader, #pageheader, script, style, noscript, svg, [role="alert"], [role="banner"], [role="dialog"], [role="alertdialog"], [role="region"][aria-label*="skip" i], [aria-modal="true"], #branchly-chat-widget-container, #branchly-embed-container, #branchly-chat-embed-container, #branchly-search-interface-container', 'description': 'List of CSS selectors to remove from the HTML content. List should be separated by commas.'}, 'title_suffix_to_remove': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Remove suffix or prefix from page titles.'}, 'unavailable_source_policy': {'anyOf': [{'enum': ['ignore', 'delete_unavailable'], 'type': 'string', 'description': 'Policy for handling unavailable URLs during data source sync.'}, {'type': 'null'}], 'default': 'delete_unavailable', 'description': 'Policy for handling unavailable Sources/URLs during data source run.'}}}, {'type': 'object', 'required': ['files'], 'properties': {'type': {'type': 'string', 'const': 'file_upload', 'default': 'file_upload'}, 'files': {'type': 'array', 'items': {'type': 'object', 'required': ['file_name', 'url'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'minLength': 1}, 'file_name': {'type': 'string'}, 'is_external': {'type': 'boolean', 'default': False}}}}}}, {'type': 'object', 'required': ['openapi_spec', 'operation_id', 'data_template_mapping'], 'properties': {'type': {'type': 'string', 'const': 'openAPI', 'default': 'openAPI'}, 'openapi_spec': {'type': 'string'}, 'operation_id': {'type': 'string'}, 'extra_options': {'anyOf': [{'type': 'object', 'additionalProperties': {'anyOf': [{'type': 'string'}, {'type': 'boolean'}, {'type': 'number'}, {'type': 'integer'}, {'type': 'null'}]}}, {'type': 'null'}], 'default': None}, 'data_template_mapping': {'type': 'object', 'required': ['text', 'title', 'source'], 'properties': {'text': {'type': 'string'}, 'title': {'type': 'string'}, 'source': {'type': 'string'}, 'page_metadata': {'anyOf': [{'type': 'object', 'properties': {'title': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'images': {'anyOf': [{'type': 'object', 'properties': {'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}}, {'type': 'null'}], 'default': None}, 'article': {'anyOf': [{'type': 'object', 'properties': {'tags': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'modified_time': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'published_time': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}}, {'type': 'null'}], 'default': None}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}}, {'type': 'null'}], 'default': None}, 'custom_metadata': {'anyOf': [{'type': 'object', 'properties': {'tags': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'score_boost': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}}, {'type': 'null'}], 'default': None}}}, 'response_content_path': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'unavailable_source_policy': {'anyOf': [{'enum': ['ignore', 'delete_unavailable'], 'type': 'string', 'description': 'Policy for handling unavailable URLs during data source sync.'}, {'type': 'null'}], 'default': 'delete_unavailable', 'description': 'Policy for handling unavailable Sources/URLs during data source run.'}}}, {'type': 'object', 'required': ['client_id', 'api_token', 'site_id'], 'properties': {'type': {'type': 'string', 'const': 'helpspace', 'default': 'helpspace'}, 'site_id': {'type': 'integer'}, 'api_token': {'type': 'string'}, 'client_id': {'type': 'string'}, 'unavailable_source_policy': {'anyOf': [{'enum': ['ignore', 'delete_unavailable'], 'type': 'string', 'description': 'Policy for handling unavailable URLs during data source sync.'}, {'type': 'null'}], 'default': 'delete_unavailable', 'description': 'Policy for handling unavailable Sources/URLs during data source run.'}}}, {'type': 'object', 'required': ['urls', 'main_content_marker', 'graph_builder'], 'properties': {'type': {'type': 'string', 'const': 'custom_website_crawler', 'default': 'custom_website_crawler'}, 'urls': {'type': 'object', 'required': ['start_urls'], 'properties': {'start_urls': {'type': 'array', 'items': {'type': 'string', 'format': 'uri', 'minLength': 1}}}}, 'actor': {'enum': ['apify/website-content-crawler'], 'type': 'string', 'default': 'apify/website-content-crawler'}, 'custom_tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Tags defined by the user that are displayed as badges in frontend. Applies to all pages crawled with this data source.'}, 'crawler_type': {'enum': ['playwright:firefox', 'playwright:adaptive', 'cheerio'], 'type': 'string', 'default': 'cheerio'}, 'graph_builder': {'type': 'object', 'required': ['navigation_builder'], 'properties': {'tool_node_ids': {'anyOf': [{'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}}, {'type': 'null'}], 'default': None}, 'contact_node_ids': {'anyOf': [{'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}}, {'type': 'null'}], 'default': None}, 'navigation_builder': {'oneOf': [{'type': 'object', 'required': ['breadcrumb_selector', 'type'], 'properties': {'type': {'type': 'string', 'const': 'breadcrumbs', 'default': 'breadcrumbs'}, 'breadcrumb_selector': {'type': 'string'}}}]}, 'nodes_wo_edges_to_root': {'type': 'boolean', 'default': False, 'description': 'Nodes without incoming/outgoing edges to the root node/start url. Prevents orphan nodes'}, 'nodes_wo_out_edges_to_tool': {'type': 'boolean', 'default': False, 'description': 'Nodes without outgoing edges to tool nodes. Uses tool_node_ids if available, otherwise all tool nodes'}, 'connect_start_urls_to_entry': {'type': 'boolean', 'default': True, 'description': 'Connect start URLs to entry node'}, 'nodes_wo_out_edges_to_contact': {'type': 'boolean', 'default': False, 'description': 'Nodes without outgoing edges to contact nodes. Uses contact_node_ids if available, otherwise all contact nodes'}}}, 'ignore_errors': {'type': 'boolean', 'default': False}, 'exclude_url_globs': {'type': 'array', 'items': {'type': 'string'}}, 'include_url_globs': {'type': 'array', 'items': {'type': 'string'}}, 'main_content_marker': {'type': 'object', 'required': ['selector_filter', 'start_marker', 'end_marker'], 'properties': {'type': {'type': 'string', 'const': 'comments', 'default': 'comments'}, 'end_marker': {'type': 'string'}, 'start_marker': {'type': 'string'}, 'selector_filter': {'type': 'string'}}}, 'fetch_image_captions': {'type': 'boolean', 'default': False, 'description': 'Fetch and generate captions for images found during crawling.'}, 'title_suffix_to_remove': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Remove suffix or prefix from page titles.'}, 'unavailable_source_policy': {'anyOf': [{'enum': ['ignore', 'delete_unavailable'], 'type': 'string', 'description': 'Policy for handling unavailable URLs during data source sync.'}, {'type': 'null'}], 'default': 'ignore', 'description': 'Policy for handling unavailable Sources/URLs during data source run.'}}}, {'type': 'object', 'properties': {'type': {'type': 'string', 'const': 'webhook', 'default': 'webhook'}, 'data_template_mapping': {'anyOf': [{'type': 'object', 'required': ['text', 'title', 'source'], 'properties': {'text': {'type': 'string'}, 'title': {'type': 'string'}, 'source': {'type': 'string'}, 'page_metadata': {'anyOf': [{'type': 'object', 'properties': {'title': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'images': {'anyOf': [{'type': 'object', 'properties': {'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}}, {'type': 'null'}], 'default': None}, 'article': {'anyOf': [{'type': 'object', 'properties': {'tags': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'modified_time': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'published_time': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}}, {'type': 'null'}], 'default': None}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}}, {'type': 'null'}], 'default': None}, 'custom_metadata': {'anyOf': [{'type': 'object', 'properties': {'tags': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'score_boost': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}}, {'type': 'null'}], 'default': None}}}, {'type': 'null'}], 'default': None, 'description': 'Optional template mapping for custom webhook payloads. If provided, incoming data will be mapped to internal format.'}}, 'description': 'Settings for webhook data source.'}, {'type': 'object', 'properties': {'type': {'type': 'string', 'const': 'wordpress', 'default': 'wordpress'}, 'filters': {'anyOf': [{'type': 'object', 'properties': {'criteria': {'type': 'array', 'items': {'type': 'object', 'required': ['field', 'condition'], 'properties': {'field': {'enum': ['published_time', 'modified_time'], 'type': 'string'}, 'condition': {'type': 'object', 'required': ['type', 'value'], 'properties': {'type': {'enum': ['max_age_days', 'contains'], 'type': 'string'}, 'value': {'anyOf': [{'type': 'integer'}, {'type': 'string'}]}}}}}}}}, {'type': 'null'}], 'default': None}, 'timeout': {'type': 'integer', 'default': 30, 'maximum': 120, 'minimum': 5}, 'api_path': {'type': 'string', 'default': '/wp-json/wp/v2'}, 'post_types': {'type': 'array', 'items': {'type': 'string'}, 'minItems': 1}, 'verify_ssl': {'type': 'boolean', 'default': True}, 'post_status': {'type': 'array', 'items': {'type': 'string'}, 'minItems': 1}, 'locale_mapping': {'type': 'object', 'description': "Map detected URL language codes to app locales. e.g. {'en': 'en', 'de': 'de', 'fr_FR': 'fr'}. Applied after locale_detection; unmatched codes are used as-is. Falls back to default_locale when no locale is detected.Locale mapping is used to filter posts in 'wpml' language detection mode.", 'additionalProperties': {'type': 'string'}}, 'locale_detection': {'enum': ['static', 'path_prefix', 'subdomain', 'query_param', 'wpml'], 'type': 'string', 'default': 'static', 'description': "Strategy for inferring the locale from a post's URL. 'static' uses default_locale for all posts. 'path_prefix' reads the first path segment (domain.com/en/page). 'subdomain' reads the subdomain (en.domain.com). 'query_param' reads the ?lang= query parameter. 'wpml' queries the WPML REST API per language (?lang=xx) and tags each post with the queried language code."}, 'default_site_locale': {'type': 'string', 'default': 'de', 'description': "Locale assigned to all posts in 'static' mode, or used as fallback in detection modes."}, 'excluded_categories': {'type': 'array', 'items': {'type': 'integer'}}, 'unavailable_source_policy': {'anyOf': [{'enum': ['ignore', 'delete_unavailable'], 'type': 'string', 'description': 'Policy for handling unavailable URLs during data source sync.'}, {'type': 'null'}], 'default': 'delete_unavailable'}}}], 'required': ['type']}], 'description': "Type-specific config. Pass as an inline JSON object â\x80\x94 do NOT serialize to a string. Must include a 'type' discriminator field: 'website_crawler', 'pdf_upload', 'open_api', 'helpspace', 'custom_webcrawler', or 'webhook'."}, 'integration_id': {'anyOf': [{'type': 'string', 'format': 'uuid'}, {'type': 'null'}], 'default': None, 'description': 'Integration UUID for connected data sources. Required for WordPress data sources.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
create_node
Create a new content node in the knowledge base. Label defaults to 'content'.
Input schema
{'type': 'object', 'required': ['title', 'text'], 'properties': {'text': {'type': 'object', 'description': 'Locale-keyed body content (HTML) map, e.g. {"de": "<p>Inhalt</p>", "en": "<p>Content</p>"}.', 'additionalProperties': {'type': 'string'}}, 'label': {'enum': ['entry', 'content', 'contact', 'tool', 'fallback', 'integration', 'style', 'chat_navigator_style', 'search_style', 'search_result', 'navigator', 'feedback'], 'type': 'string', 'default': 'content'}, 'title': {'type': 'object', 'description': 'Locale-keyed title map, e.g. {"de": "Titel", "en": "Title"}.', 'additionalProperties': {'type': 'string'}}, 'source': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Source URL for the node content.'}, 'score_boost': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'default': None, 'description': 'Boost value for search ranking. Higher is better. Use null for no boost.'}, 'custom_metadata': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
create_prompt
Create a new prompt version for the authenticated application. The new prompt is automatically set as active and the previously active prompt of the same type and subtype is deactivated. Use this whenever you want to change prompt text.
Input schema
{'type': 'object', 'required': ['prompt', 'type'], 'properties': {'type': {'enum': ['chat', 'search_answering', 'suggested_questions', 'chat_evaluation'], 'type': 'string', 'description': 'Types of prompts in the system.'}, 'prompt': {'type': 'string'}, 'subtype': {'anyOf': [{'enum': ['routing_instructions', 'output_instructions'], 'type': 'string', 'description': 'Subtypes for prompts - used for routing vs output instructions.'}, {'type': 'null'}], 'default': None, 'description': "'routing_instructions' or 'output_instructions'. Returns all when omitted."}, 'interface_type': {'anyOf': [{'enum': ['chat', 'navigator', 'search', 'api', 'form'], 'type': 'string', 'description': 'Coarser grouping of EmbedType for prompt scoping.\n\nFollows the same pattern as StyleType in the interface_styles domain.\nEach value maps to one or more EmbedType values via ``embed_type_to_interface_type``.'}, {'type': 'null'}], 'default': None, 'description': "Interface scope of the prompt: 'chat', 'navigator', 'search', or 'api'. Required for 'chat' and 'search_answering' prompt types; omit for 'suggested_questions' and 'chat_evaluation'."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
create_tool
Create a new tool (AI action) for the authenticated application. Tool names must be unique per application, snake_case, max 64 chars. 'tool_config' and 'function_arguments' must match the given 'tool_type'. Returns the created tool.
Input schema
{'type': 'object', 'required': ['name', 'description', 'tool_type'], 'properties': {'name': {'type': 'string', 'description': 'snake_case tool name, max 64 characters. Used as the function name when the LLM calls the tool.'}, 'agents': {'anyOf': [{'type': 'array', 'items': {'enum': ['chat_routing', 'chat_output', 'search_answer', 'form_answer', 'form_routing', 'follow_up_actions', 'suggested_questions', 'web_mcp'], 'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': "Optional list of agent types that may use this tool: 'chat_routing', 'chat_output', 'search_answer', 'form_answer', 'form_routing', 'follow_up_actions', 'suggested_questions'."}, 'tool_type': {'enum': ['knowledge_base', 'openAPI', 'node_lookup', 'send_email', 'form', 'contact_information', 'web_search', 'web_page_reader', 'weather', 'venus_knowledge_graph', 'regiondo', 'mcp_server', 'api', 'buttons', 'google_maps_link', 'google_maps_embed', 'calendly'], 'type': 'string', 'description': "Type of the tool: 'knowledge_base', 'openAPI', 'node_lookup', 'send_email', 'form', 'contact_information', 'web_search', 'web_page_reader', 'weather', 'venus_knowledge_graph', 'regiondo', 'mcp_server', 'api', 'buttons', 'google_maps_link', 'google_maps_embed', or 'calendly'."}, 'description': {'type': 'string', 'description': 'Natural-language description of what the tool does and when the LLM should call it.'}, 'tool_config': {'anyOf': [{'type': 'object', 'required': ['properties'], 'properties': {'properties': {'type': 'array', 'items': {'oneOf': [{'type': 'object', 'required': ['name', 'field_type'], 'properties': {'name': {'type': 'string'}, 'format': {'enum': ['text', 'email', 'tel'], 'type': 'string', 'default': 'text', 'description': 'HTML input type'}, 'required': {'type': 'boolean', 'default': False}, 'field_type': {'type': 'string', 'const': 'string', 'default': 'string'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}}, {'type': 'object', 'required': ['name', 'field_type'], 'properties': {'name': {'type': 'string'}, 'format': {'type': 'string', 'const': 'text', 'default': 'text', 'description': 'HTML input type'}, 'required': {'type': 'boolean', 'default': False}, 'field_type': {'type': 'string', 'const': 'text_area', 'default': 'text_area'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}}, {'type': 'object', 'required': ['name', 'field_type'], 'properties': {'name': {'type': 'string'}, 'minimum': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'default': None}, 'required': {'type': 'boolean', 'default': False}, 'field_type': {'type': 'string', 'const': 'number', 'default': 'number'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}}, {'type': 'object', 'required': ['name', 'enum', 'field_type'], 'properties': {'enum': {'type': 'array', 'items': {'type': 'string'}}, 'name': {'type': 'string'}, 'required': {'type': 'boolean', 'default': False}, 'field_type': {'type': 'string', 'const': 'select', 'default': 'select'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}}, {'type': 'object', 'required': ['name', 'field_type'], 'properties': {'name': {'type': 'string'}, 'format': {'type': 'string', 'const': 'date', 'default': 'date'}, 'required': {'type': 'boolean', 'default': False}, 'field_type': {'type': 'string', 'const': 'date', 'default': 'date'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}}, {'type': 'object', 'required': ['name', 'field_type'], 'properties': {'name': {'type': 'string'}, 'format': {'type': 'string', 'const': 'time', 'default': 'time'}, 'required': {'type': 'boolean', 'default': False}, 'field_type': {'type': 'string', 'const': 'time', 'default': 'time'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}}, {'type': 'object', 'required': ['name', 'field_type'], 'properties': {'name': {'type': 'string'}, 'required': {'type': 'boolean', 'default': False}, 'field_type': {'type': 'string', 'const': 'checkbox', 'default': 'checkbox'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}}]}}}}, {'type': 'object', 'properties': {'object': {'type': 'string', 'const': 'api_tool_config', 'default': 'api_tool_config'}, 'parameters': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'description'], 'properties': {'name': {'type': 'string', 'description': 'Name of the parameter. Used as a variable placeholder in URL, headers, or body with {{name}} notation.'}, 'type': {'enum': ['text', 'number', 'boolean'], 'type': 'string', 'default': 'text', 'description': 'Type of the parameter.'}, 'required': {'type': 'boolean', 'default': True, 'description': 'Whether this parameter is required for the API call.'}, 'description': {'type': 'string', 'description': 'Description of the parameter to help the AI understand what data to collect from the user.'}}, 'description': 'Parameter collected from the user for use in API requests.\n\nParameters can be used as placeholders in URL, headers, or body using {{parameter_name}} notation.'}, 'description': 'List of parameters to collect from the user for use in the API request.'}}, 'description': 'Configuration for the API tool sent to the LLM as a function.\n\nContains the parameters that the AI collects from users, which are then\nsubstituted into the URL, headers, and body using {{parameter_name}} notation.'}, {'type': 'null'}], 'default': None, 'description': "Function schema sent to the LLM. Pass as an inline JSON object â\x80\x94 do NOT serialize to a string. Use 'FormAPISchema' for form tools or 'APIToolConfig' for API-calling tools. Pass null to clear."}, 'function_arguments': {'anyOf': [{'type': 'object', 'properties': {'object': {'type': 'string', 'const': 'knowledge_base_tool_arguments', 'default': 'knowledge_base_tool_arguments'}, 'rerank': {'type': 'boolean', 'default': False}, 'formatter': {'enum': ['chunks_with_source', 'numbered_chunks_with_source', 'grouped_chunks', 'grouped_chunks_with_custom_metadata', 'grouped_chunks_with_page_metadata'], 'type': 'string', 'default': 'grouped_chunks'}, 'sources_filter': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None}, 'node_ids_filter': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None}, 'retrieval_method': {'enum': ['default', 'parent_context'], 'type': 'string', 'default': 'default'}, 'node_labels_filter': {'anyOf': [{'type': 'array', 'items': {'enum': ['entry', 'content', 'contact', 'tool', 'fallback', 'integration', 'style', 'chat_navigator_style', 'search_style', 'search_result', 'navigator', 'feedback'], 'type': 'string'}}, {'type': 'null'}], 'default': None}, 'document_limit_rerank': {'type': 'integer', 'default': 25}, 'data_source_ids_filter': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None}, 'document_limit_default': {'type': 'integer', 'default': 15}, 'data_source_types_filter': {'anyOf': [{'type': 'array', 'items': {'enum': ['website_crawler', 'file_upload', 'node_editor', 'default_node', 'openAPI', 'helpspace', 'custom_website_crawler', 'webhook', 'wordpress'], 'type': 'string'}}, {'type': 'null'}], 'default': None}}}, {'type': 'object', 'properties': {'object': {'type': 'string', 'const': 'node_lookup_tool_arguments', 'default': 'node_lookup_tool_arguments'}, 'node_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'List of node IDs to look up in the graph.'}}}, {'type': 'object', 'required': ['sender_email'], 'properties': {'object': {'type': 'string', 'const': 'send_email_tool_arguments', 'default': 'send_email_tool_arguments'}, 'sender_email': {'type': 'string', 'format': 'email'}}}, {'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 5}, 'object': {'type': 'string', 'const': 'web_search_tool_arguments', 'default': 'web_search_tool_arguments'}}}, {'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string'}, 'object': {'type': 'string', 'const': 'web_page_reader_tool_arguments', 'default': 'web_page_reader_tool_arguments'}, 'target_selector': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Only returns elements from CSS selector.'}, 'wait_for_selector': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Wait for a specific element to appear before returning. For dynamic content.'}}}, {'type': 'object', 'required': ['form_title', 'submit_message', 'submit_button_text'], 'properties': {'object': {'type': 'string', 'const': 'form_tool_arguments', 'default': 'form_tool_arguments'}, 'form_title': {'type': 'object', 'additionalProperties': {'type': 'string'}}, 'submit_message': {'type': 'object', 'additionalProperties': {'type': 'string'}}, 'data_privacy_text': {'anyOf': [{'type': 'object', 'additionalProperties': {'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': 'Optional data privacy text. If provided, a checkbox should be displayed to the user.'}, 'notification_email': {'anyOf': [{'type': 'string', 'format': 'email'}, {'type': 'array', 'items': {'type': 'string', 'format': 'email'}}, {'type': 'null'}], 'default': None, 'description': 'Used for email forwarding of form submissions. If not provided, no email will be forwarded'}, 'submit_button_text': {'type': 'object', 'additionalProperties': {'type': 'string'}}, 'show_data_privacy_text': {'type': 'boolean', 'default': False}}}, {'type': 'object', 'required': ['projects', 'channels', 'domain'], 'properties': {'event': {'anyOf': [{'type': 'object', 'required': ['event_type', 'mapping'], 'properties': {'mapping': {'type': 'object', 'properties': {'id': {'type': 'string', 'default': '{{event_id}}'}, 'tags': {'type': 'string', 'default': '{{tags}}'}, 'type': {'type': 'string', 'const': 'carousel_v1', 'default': 'carousel_v1'}, 'title': {'type': 'string', 'default': '{{event_name}}'}, 'detail': {'type': 'string', 'default': '{{event_date_time.0.start_date}} - {{event_date_time.0.end_date}}<br>{{address.city}}<br>'}, 'image_url': {'type': 'string', 'default': '{{first_image.url}}'}, 'resource_url': {'type': 'string', 'default': '{{link}}'}}}, 'event_type': {'enum': ['carousel_v1'], 'type': 'string'}}}, {'type': 'null'}], 'default': None, 'description': 'Optional frontend event mapping.'}, 'domain': {'type': 'string'}, 'object': {'type': 'string', 'const': 'venus_knowledge_graph_tool_arguments', 'default': 'venus_knowledge_graph_tool_arguments'}, 'channels': {'type': 'string'}, 'projects': {'type': 'string'}, 'entity_type': {'type': 'string', 'const': 'Event', 'default': 'Event'}}}, {'type': 'object', 'required': ['secret_key', 'public_key'], 'properties': {'event': {'anyOf': [{'type': 'object', 'required': ['event_type', 'mapping'], 'properties': {'mapping': {'type': 'object', 'properties': {'id': {'type': 'string', 'default': '{{event_id}}'}, 'tags': {'type': 'string', 'default': '{{tags}}'}, 'type': {'type': 'string', 'const': 'carousel_v1', 'default': 'carousel_v1'}, 'title': {'type': 'string', 'default': '{{event_name}}'}, 'detail': {'type': 'string', 'default': '{{event_date_time.0.start_date}} - {{event_date_time.0.end_date}}<br>{{address.city}}<br>'}, 'image_url': {'type': 'string', 'default': '{{first_image.url}}'}, 'resource_url': {'type': 'string', 'default': '{{link}}'}}}, 'event_type': {'enum': ['carousel_v1'], 'type': 'string'}}}, {'type': 'null'}], 'default': None, 'description': 'Optional frontend event mapping.'}, 'object': {'type': 'string', 'const': 'regiondo_tool_arguments', 'default': 'regiondo_tool_arguments'}, 'public_key': {'type': 'string'}, 'secret_key': {'type': 'string'}}}, {'type': 'object', 'required': ['mcp_url'], 'properties': {'events': {'type': 'array', 'items': {'type': 'object', 'required': ['event_type', 'mapping'], 'properties': {'mapping': {'type': 'object', 'properties': {'id': {'type': 'string', 'default': '{{event_id}}'}, 'tags': {'type': 'string', 'default': '{{tags}}'}, 'type': {'type': 'string', 'const': 'carousel_v1', 'default': 'carousel_v1'}, 'title': {'type': 'string', 'default': '{{event_name}}'}, 'detail': {'type': 'string', 'default': '{{event_date_time.0.start_date}} - {{event_date_time.0.end_date}}<br>{{address.city}}<br>'}, 'image_url': {'type': 'string', 'default': '{{first_image.url}}'}, 'resource_url': {'type': 'string', 'default': '{{link}}'}}}, 'event_type': {'enum': ['carousel_v1'], 'type': 'string'}, 'mcp_tool_names': {'type': 'array', 'items': {'type': 'string'}, 'description': 'List of tool names this frontend event should be mapped to. If empty, map to all tools of the MCP server.'}, 'mcp_tool_entities': {'anyOf': [{'type': 'object', 'required': ['key'], 'properties': {'key': {'type': 'string', 'description': 'The key to use to identify the entity from the MCP server response'}, 'values': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The specific entities (values) that should be mapped to the frontend event'}}}, {'type': 'null'}], 'default': None, 'description': 'Mapping to distinguish entities from the MCP server response. If None, map to all entities'}}}, 'description': 'List of frontend events to be triggered by this tool'}, 'object': {'type': 'string', 'const': 'mcp_server_tool_arguments', 'default': 'mcp_server_tool_arguments'}, 'headers': {'anyOf': [{'type': 'object', 'additionalProperties': {'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': 'Optional headers to be sent with the request to the MCP server.'}, 'mcp_url': {'type': 'string', 'format': 'uri', 'minLength': 1}, 'image_url': {'anyOf': [{'type': 'string', 'format': 'uri', 'minLength': 1}, {'type': 'null'}], 'default': None, 'description': 'Optional image URL to be shown in the Dashboard. Only for frontend display.'}}}, {'type': 'object', 'required': ['method', 'url'], 'properties': {'url': {'type': 'string', 'description': 'URL of the API endpoint. Can include parameter placeholders using mustache notation like {{parameter_name}}.'}, 'body': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'default': None, 'description': 'Request body. Values can include parameter placeholders using mustache notation like {{parameter_name}}.'}, 'event': {'anyOf': [{'type': 'object', 'required': ['event_type', 'mapping'], 'properties': {'mapping': {'type': 'object', 'properties': {'id': {'type': 'string', 'default': '{{event_id}}'}, 'tags': {'type': 'string', 'default': '{{tags}}'}, 'type': {'type': 'string', 'const': 'carousel_v1', 'default': 'carousel_v1'}, 'title': {'type': 'string', 'default': '{{event_name}}'}, 'detail': {'type': 'string', 'default': '{{event_date_time.0.start_date}} - {{event_date_time.0.end_date}}<br>{{address.city}}<br>'}, 'image_url': {'type': 'string', 'default': '{{first_image.url}}'}, 'resource_url': {'type': 'string', 'default': '{{link}}'}}}, 'event_type': {'enum': ['carousel_v1'], 'type': 'string'}}}, {'type': 'null'}], 'default': None, 'description': 'Optional frontend event mapping.'}, 'method': {'enum': ['GET', 'POST', 'PUT', 'PATCH', 'DELETE'], 'type': 'string', 'description': 'HTTP method for the API request.'}, 'object': {'type': 'string', 'const': 'api_tool_arguments', 'default': 'api_tool_arguments'}, 'headers': {'anyOf': [{'type': 'object', 'additionalProperties': {'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': 'HTTP headers for the request. Values can include parameter placeholders using mustache notation like {{parameter_name}}.'}, 'timeout': {'type': 'integer', 'default': 5, 'maximum': 30, 'minimum': 1, 'description': 'Request timeout in seconds.'}, 'query_params': {'anyOf': [{'type': 'object', 'additionalProperties': {'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': 'Query parameters for the request. Values can include parameter placeholders using mustache notation like {{parameter_name}}.'}, 'response_path': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Optional dot notation to extract specific data from the API response.'}, 'integration_id': {'anyOf': [{'type': 'string', 'format': 'uuid'}, {'type': 'null'}], 'default': None, 'description': 'ID of the integration used to obtain an auth token for the request.'}, 'body_content_type': {'enum': ['application/json', 'application/x-www-form-urlencoded'], 'type': 'string', 'default': 'application/json', 'description': 'Content type of the request body.'}}, 'description': 'Arguments for the API tool that define how to make HTTP requests.\n\nContains the static configuration for executing API requests.\nUse {{parameter_name}} mustache notation in url, query_params, headers, and body\nto reference parameters defined in tool_config.'}, {'type': 'object', 'required': ['buttons'], 'properties': {'object': {'type': 'string', 'const': 'buttons_tool_arguments', 'default': 'buttons_tool_arguments'}, 'buttons': {'type': 'array', 'items': {'type': 'object', 'required': ['type', 'text'], 'properties': {'url': {'anyOf': [{'type': 'string', 'format': 'uri', 'minLength': 1}, {'type': 'null'}], 'default': None, 'description': 'URL for link_button type. Required for link_button, not used for button type. Allow mailto: and tel: links as well.'}, 'text': {'type': 'string', 'maxLength': 50, 'description': 'Button text to display. Should be short and descriptive.'}, 'type': {'enum': ['link_button', 'button'], 'type': 'string', 'description': 'Type of the button'}}, 'description': 'Individual button in the buttons tool.\n\n- link_button: Opens URL in new tab (if external) or navigates (like follow-up actions)\n- button: Uses text as input for sending new request'}, 'maxItems': 10, 'minItems': 1, 'description': 'List of buttons to display. Maximum 10 buttons.'}}, 'description': 'Arguments for the Buttons tool.\n\nThis tool allows AI to send buttons as a frontend event to users.\nNo inputs are required from the AI when executing this tool.\nMaximum 3 buttons can be sent.'}, {'type': 'object', 'properties': {'object': {'type': 'string', 'const': 'google_maps_link_tool_arguments', 'default': 'google_maps_link_tool_arguments'}, 'icon_url': {'anyOf': [{'type': 'string', 'format': 'uri', 'minLength': 1}, {'type': 'null'}], 'default': None, 'description': 'Optional URL of an icon to display inside the link button.'}, 'default_travelmode': {'anyOf': [{'enum': ['driving', 'walking', 'bicycling', 'transit'], 'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Default travel mode used when the AI does not specify one.'}}}, {'type': 'object', 'properties': {'object': {'type': 'string', 'const': 'google_maps_embed_tool_arguments', 'default': 'google_maps_embed_tool_arguments'}, 'default_mode': {'anyOf': [{'enum': ['driving', 'walking', 'bicycling', 'transit', 'flying'], 'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Default travel mode used when the AI does not specify one.'}}}, {'type': 'object', 'required': ['integration_id'], 'properties': {'object': {'type': 'string', 'const': 'calendly_tool_arguments', 'default': 'calendly_tool_arguments'}, 'integration_id': {'type': 'string', 'format': 'uuid', 'description': 'ID of the connected Calendly integration to use for scheduling.'}}}, {'type': 'null'}], 'default': None, 'description': "Fixed runtime arguments NOT collected from the LLM (e.g. recipient email, rerank flag, knowledge-base ID). Pass as an inline JSON object â\x80\x94 do NOT serialize to a string. Must include an 'object' discriminator field matching the tool type."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
get_active_sessions_by_embed
Time series of active sessions broken down by embed type (chat, chat_widget, navigator, search_interface, voice, api). Use this to understand which interfaces are driving usage.
Read only
Input schema
{'type': 'object', 'properties': {'time_filter': {'anyOf': [{'enum': ['this_month', 'this_year', 'last_month', 'last_30_days', 'last_6_months', 'last_12_months'], 'type': 'string'}, {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2},\\d{4}-\\d{2}-\\d{2}$'}], 'default': 'last_30_days', 'description': "Time window for the analytics query. Accepts either: (a) a preset enum value: 'this_month', 'this_year', 'last_month', 'last_30_days' (default), 'last_6_months', 'last_12_months'; or (b) an explicit ISO date range as 'YYYY-MM-DD,YYYY-MM-DD' (inclusive)."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
get_active_sessions_over_time
Time series of active sessions, bucketed by day or week (auto-chosen from the time window). Each row breaks the total down by interaction type (chat / search / navigation / form_submission / voice). Gaps are zero-filled, so the series is safe to plot directly. Use this to spot spikes, dips, or trends.
Read only
Input schema
{'type': 'object', 'properties': {'embed_types': {'anyOf': [{'type': 'array', 'items': {'enum': ['chat', 'search', 'chat_widget', 'search_interface', 'voice', 'api', 'form'], 'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': 'Restrict to sessions initiated through these embed type(s). Omit to include all embeds.'}, 'time_filter': {'anyOf': [{'enum': ['this_month', 'this_year', 'last_month', 'last_30_days', 'last_6_months', 'last_12_months'], 'type': 'string'}, {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2},\\d{4}-\\d{2}-\\d{2}$'}], 'default': 'last_30_days', 'description': "Time window for the analytics query. Accepts either: (a) a preset enum value: 'this_month', 'this_year', 'last_month', 'last_30_days' (default), 'last_6_months', 'last_12_months'; or (b) an explicit ISO date range as 'YYYY-MM-DD,YYYY-MM-DD' (inclusive)."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
get_answer_type_distribution
Distribution of chat answer types (e.g. 'answered', 'no_answer', 'tool_call', 'human_handoff'), ranked by occurrence count. Use this to monitor answer quality: a high 'no_answer' share signals content gaps; a high 'human_handoff' share signals where the bot is escalating.
Read only
Input schema
{'type': 'object', 'properties': {'time_filter': {'anyOf': [{'enum': ['this_month', 'this_year', 'last_month', 'last_30_days', 'last_6_months', 'last_12_months'], 'type': 'string'}, {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2},\\d{4}-\\d{2}-\\d{2}$'}], 'default': 'last_30_days', 'description': "Time window for the analytics query. Accepts either: (a) a preset enum value: 'this_month', 'this_year', 'last_month', 'last_30_days' (default), 'last_6_months', 'last_12_months'; or (b) an explicit ISO date range as 'YYYY-MM-DD,YYYY-MM-DD' (inclusive)."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
get_application
Return the full configuration of the authenticated application.
Read only
Input schema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
get_sentiment_distribution
Sentiment distribution of chat answers as counts of 'positive', 'negative', and 'neutral'. Optionally restrict to specific answer types. Use this as a quick quality signal — a rising 'negative' share usually warrants drilling into individual sessions via read_sessions.
Read only
Input schema
{'type': 'object', 'properties': {'time_filter': {'anyOf': [{'enum': ['this_month', 'this_year', 'last_month', 'last_30_days', 'last_6_months', 'last_12_months'], 'type': 'string'}, {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2},\\d{4}-\\d{2}-\\d{2}$'}], 'default': 'last_30_days', 'description': "Time window for the analytics query. Accepts either: (a) a preset enum value: 'this_month', 'this_year', 'last_month', 'last_30_days' (default), 'last_6_months', 'last_12_months'; or (b) an explicit ISO date range as 'YYYY-MM-DD,YYYY-MM-DD' (inclusive)."}, 'answer_types': {'anyOf': [{'type': 'array', 'items': {'enum': ['complete', 'no_knowledge', 'outside_scope', 'small_talk', 'follow_up_question'], 'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': 'Restrict to chat requests whose final answer matched one of these types. Omit to include all answer types.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
get_top_cited_sources
Knowledge-base nodes most frequently cited in chat answers, ranked by citation count. Each row carries the node UUID (vertex_id), its title, optional source URL, and citation_count. Use this to understand which knowledge is actually load-bearing; pair with read_node(vertex_id) to inspect cited content.
Read only
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 15, 'description': 'Maximum number of rows to return, ordered by count descending.', 'exclusiveMinimum': 0}, 'embed_types': {'anyOf': [{'type': 'array', 'items': {'enum': ['chat', 'search', 'chat_widget', 'search_interface', 'voice', 'api', 'form'], 'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': 'Restrict to sessions initiated through these embed type(s). Omit to include all embeds.'}, 'time_filter': {'anyOf': [{'enum': ['this_month', 'this_year', 'last_month', 'last_30_days', 'last_6_months', 'last_12_months'], 'type': 'string'}, {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2},\\d{4}-\\d{2}-\\d{2}$'}], 'default': 'last_30_days', 'description': "Time window for the analytics query. Accepts either: (a) a preset enum value: 'this_month', 'this_year', 'last_month', 'last_30_days' (default), 'last_6_months', 'last_12_months'; or (b) an explicit ISO date range as 'YYYY-MM-DD,YYYY-MM-DD' (inclusive)."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
get_top_clicked_urls
URLs users actually clicked from inside the embed (search results, citation links, follow-ups, etc.), ranked by click count. Optionally filter by click event type. Use this to see what users find useful enough to click through to.
Read only
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 15, 'description': 'Maximum number of rows to return, ordered by count descending.', 'exclusiveMinimum': 0}, 'event_types': {'anyOf': [{'type': 'array', 'items': {'enum': ['search_result', 'link', 'contact', 'tool', 'follow_up_navigation', 'follow_up_question', 'custom', 'analytics'], 'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': "Restrict to specific click-event type(s): 'search_result', 'link', 'contact', 'tool', 'follow_up_navigation', 'follow_up_question'. Omit to include all."}, 'time_filter': {'anyOf': [{'enum': ['this_month', 'this_year', 'last_month', 'last_30_days', 'last_6_months', 'last_12_months'], 'type': 'string'}, {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2},\\d{4}-\\d{2}-\\d{2}$'}], 'default': 'last_30_days', 'description': "Time window for the analytics query. Accepts either: (a) a preset enum value: 'this_month', 'this_year', 'last_month', 'last_30_days' (default), 'last_6_months', 'last_12_months'; or (b) an explicit ISO date range as 'YYYY-MM-DD,YYYY-MM-DD' (inclusive)."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
get_top_devices
Top device categories (e.g. 'desktop', 'mobile', 'tablet') across all request types, ranked by occurrence count. Use this to understand the device mix of real users interacting with the embed.
Read only
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 15, 'description': 'Maximum number of rows to return, ordered by count descending.', 'exclusiveMinimum': 0}, 'time_filter': {'anyOf': [{'enum': ['this_month', 'this_year', 'last_month', 'last_30_days', 'last_6_months', 'last_12_months'], 'type': 'string'}, {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2},\\d{4}-\\d{2}-\\d{2}$'}], 'default': 'last_30_days', 'description': "Time window for the analytics query. Accepts either: (a) a preset enum value: 'this_month', 'this_year', 'last_month', 'last_30_days' (default), 'last_6_months', 'last_12_months'; or (b) an explicit ISO date range as 'YYYY-MM-DD,YYYY-MM-DD' (inclusive)."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
get_top_geographies
Top (country, region) combinations across all request types, ranked by occurrence count. Country is an ISO country code; region may be null when unavailable. Use this to understand geographic distribution of users.
Read only
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 15, 'description': 'Maximum number of rows to return, ordered by count descending.', 'exclusiveMinimum': 0}, 'time_filter': {'anyOf': [{'enum': ['this_month', 'this_year', 'last_month', 'last_30_days', 'last_6_months', 'last_12_months'], 'type': 'string'}, {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2},\\d{4}-\\d{2}-\\d{2}$'}], 'default': 'last_30_days', 'description': "Time window for the analytics query. Accepts either: (a) a preset enum value: 'this_month', 'this_year', 'last_month', 'last_30_days' (default), 'last_6_months', 'last_12_months'; or (b) an explicit ISO date range as 'YYYY-MM-DD,YYYY-MM-DD' (inclusive)."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
get_top_interaction_sources
Page URLs the user was ON when they interacted with the embed (chat, search, navigation, form submission), ranked by occurrence count. Differs from get_top_clicked_urls: this is the ORIGIN page, not the destination. Use this to find which pages of the host site drive the most embed engagement.
Read only
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 15, 'description': 'Maximum number of rows to return, ordered by count descending.', 'exclusiveMinimum': 0}, 'time_filter': {'anyOf': [{'enum': ['this_month', 'this_year', 'last_month', 'last_30_days', 'last_6_months', 'last_12_months'], 'type': 'string'}, {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2},\\d{4}-\\d{2}-\\d{2}$'}], 'default': 'last_30_days', 'description': "Time window for the analytics query. Accepts either: (a) a preset enum value: 'this_month', 'this_year', 'last_month', 'last_30_days' (default), 'last_6_months', 'last_12_months'; or (b) an explicit ISO date range as 'YYYY-MM-DD,YYYY-MM-DD' (inclusive)."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
get_top_languages
Top detected natural languages of user CHAT questions, ranked by occurrence count. Differs from get_top_locales: locale reflects the embed/browser setting, language is detected from the actual query text. Use both to spot mismatches (e.g. German-speaking users hitting an English-only embed).
Read only
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 15, 'description': 'Maximum number of rows to return, ordered by count descending.', 'exclusiveMinimum': 0}, 'time_filter': {'anyOf': [{'enum': ['this_month', 'this_year', 'last_month', 'last_30_days', 'last_6_months', 'last_12_months'], 'type': 'string'}, {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2},\\d{4}-\\d{2}-\\d{2}$'}], 'default': 'last_30_days', 'description': "Time window for the analytics query. Accepts either: (a) a preset enum value: 'this_month', 'this_year', 'last_month', 'last_30_days' (default), 'last_6_months', 'last_12_months'; or (b) an explicit ISO date range as 'YYYY-MM-DD,YYYY-MM-DD' (inclusive)."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
get_top_locales
Top locales (BCP-47 style, e.g. 'de_DE', 'en_US') across chat, search, and navigation requests, ranked by occurrence count. Use this to understand which languages/regions are being served and where content gaps may exist.
Read only
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 15, 'description': 'Maximum number of rows to return, ordered by count descending.', 'exclusiveMinimum': 0}, 'time_filter': {'anyOf': [{'enum': ['this_month', 'this_year', 'last_month', 'last_30_days', 'last_6_months', 'last_12_months'], 'type': 'string'}, {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2},\\d{4}-\\d{2}-\\d{2}$'}], 'default': 'last_30_days', 'description': "Time window for the analytics query. Accepts either: (a) a preset enum value: 'this_month', 'this_year', 'last_month', 'last_30_days' (default), 'last_6_months', 'last_12_months'; or (b) an explicit ISO date range as 'YYYY-MM-DD,YYYY-MM-DD' (inclusive)."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
get_top_searches
Top user search queries (normalized: lowercased, trimmed), ranked by occurrence count. Use this to discover dominant user intents and content gaps; pair with read_sessions(search_query=...) to inspect specific sessions.
Read only
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 15, 'description': 'Maximum number of rows to return, ordered by count descending.', 'exclusiveMinimum': 0}, 'time_filter': {'anyOf': [{'enum': ['this_month', 'this_year', 'last_month', 'last_30_days', 'last_6_months', 'last_12_months'], 'type': 'string'}, {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2},\\d{4}-\\d{2}-\\d{2}$'}], 'default': 'last_30_days', 'description': "Time window for the analytics query. Accepts either: (a) a preset enum value: 'this_month', 'this_year', 'last_month', 'last_30_days' (default), 'last_6_months', 'last_12_months'; or (b) an explicit ISO date range as 'YYYY-MM-DD,YYYY-MM-DD' (inclusive)."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
get_top_tags
Top tags attached to chat answers (auto-derived classifications), ranked by occurrence count. Optionally restrict to specific answer types. Use this for a quick topical breakdown of chat traffic.
Read only
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 15, 'description': 'Maximum number of rows to return, ordered by count descending.', 'exclusiveMinimum': 0}, 'time_filter': {'anyOf': [{'enum': ['this_month', 'this_year', 'last_month', 'last_30_days', 'last_6_months', 'last_12_months'], 'type': 'string'}, {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2},\\d{4}-\\d{2}-\\d{2}$'}], 'default': 'last_30_days', 'description': "Time window for the analytics query. Accepts either: (a) a preset enum value: 'this_month', 'this_year', 'last_month', 'last_30_days' (default), 'last_6_months', 'last_12_months'; or (b) an explicit ISO date range as 'YYYY-MM-DD,YYYY-MM-DD' (inclusive)."}, 'answer_types': {'anyOf': [{'type': 'array', 'items': {'enum': ['complete', 'no_knowledge', 'outside_scope', 'small_talk', 'follow_up_question'], 'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': 'Restrict to chat requests whose final answer matched one of these types. Omit to include all answer types.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
get_trending_classifications
Time series of trending classifications (topics OR intents inferred from chat content), one series per classification id. Each series item carries a period timestamp and count. Use this to see how topical or intent demand shifts over time. Choose 'topic' for subject-matter trends, 'intent' for user-goal trends.
Read only
Input schema
{'type': 'object', 'required': ['classification_type'], 'properties': {'time_filter': {'anyOf': [{'enum': ['this_month', 'this_year', 'last_month', 'last_30_days', 'last_6_months', 'last_12_months'], 'type': 'string'}, {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2},\\d{4}-\\d{2}-\\d{2}$'}], 'default': 'last_30_days', 'description': "Time window for the analytics query. Accepts either: (a) a preset enum value: 'this_month', 'this_year', 'last_month', 'last_30_days' (default), 'last_6_months', 'last_12_months'; or (b) an explicit ISO date range as 'YYYY-MM-DD,YYYY-MM-DD' (inclusive)."}, 'classification_type': {'enum': ['topic', 'intent'], 'type': 'string', 'description': "Which classification dimension to trend: 'topic' or 'intent'. Topics = subject matter inferred from chat content; intents = user goal inferred from chat content."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
list_data_sources
List data sources for the authenticated application. Optionally filter by data source type(s). Returns paginated results ordered by last update.
Read only
Input schema
{'type': 'object', 'properties': {'page': {'type': 'integer', 'default': 1, 'exclusiveMinimum': 0}, 'limit': {'type': 'integer', 'default': 50, 'exclusiveMinimum': 0}, 'data_source_types': {'anyOf': [{'type': 'array', 'items': {'enum': ['website_crawler', 'file_upload', 'node_editor', 'default_node', 'openAPI', 'helpspace', 'custom_website_crawler', 'webhook', 'wordpress'], 'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': "Filter by data source type(s): 'website_crawler', 'pdf_upload', 'open_api', 'helpspace', 'custom_webcrawler', 'webhook'. Returns all when omitted."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
list_nodes
List nodes in the knowledge base. Optionally filter by vertex label(s), data source type(s), or data source IDs. Optionally sort by updated_at ('asc' or 'desc'). Provide 'query' and 'locale' to perform a full-text search across node content (requires both parameters). Returns paginated results with total count.
Read only
Input schema
{'type': 'object', 'properties': {'page': {'type': 'integer', 'default': 1, 'exclusiveMinimum': 0}, 'limit': {'type': 'integer', 'default': 10, 'maximum': 10, 'exclusiveMinimum': 0}, 'query': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Full-text search query across node content. When provided, 'locale' must also be provided. Leave empty to list without search."}, 'labels': {'anyOf': [{'type': 'array', 'items': {'enum': ['entry', 'content', 'contact', 'tool', 'fallback', 'integration', 'style', 'chat_navigator_style', 'search_style', 'search_result', 'navigator', 'feedback'], 'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': "Filter by vertex label(s) (e.g. 'content'). Returns all when omitted."}, 'locale': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Valid Locale configured in the application for full-text search (e.g. 'de', 'en'). Required when 'query' is provided. Ignored otherwise."}, 'data_source_ids': {'anyOf': [{'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}}, {'type': 'null'}], 'default': None, 'description': 'Filter by data source UUID(s). Returns all when omitted.'}, 'sort_parameters': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'required': ['field', 'direction'], 'properties': {'field': {'enum': ['updated_at'], 'type': 'string'}, 'direction': {'enum': ['asc', 'desc'], 'type': 'string'}}}}, {'type': 'null'}], 'default': None, 'description': 'Sort order, e.g. [{"field": "updated_at", "direction": "desc"}].'}, 'data_source_types': {'anyOf': [{'type': 'array', 'items': {'enum': ['website_crawler', 'file_upload', 'node_editor', 'default_node', 'openAPI', 'helpspace', 'custom_website_crawler', 'webhook', 'wordpress'], 'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': "Filter by data source type(s): 'website_crawler', 'pdf_upload', 'open_api', 'helpspace', 'custom_webcrawler', 'webhook'. Returns all when omitted."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
list_prompts
List prompts for the authenticated application. Optionally filter by type, subtype, or active status. Returns paginated results ordered by active status then last update.
Read only
Input schema
{'type': 'object', 'properties': {'page': {'type': 'integer', 'default': 1, 'exclusiveMinimum': 0}, 'limit': {'type': 'integer', 'default': 20, 'exclusiveMinimum': 0}, 'subtype': {'anyOf': [{'enum': ['routing_instructions', 'output_instructions'], 'type': 'string', 'description': 'Subtypes for prompts - used for routing vs output instructions.'}, {'type': 'null'}], 'default': None, 'description': "'routing_instructions' or 'output_instructions'. Returns all when omitted."}, 'is_active': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': True, 'description': 'Activating a prompt automatically deactivates other prompts of the same type.'}, 'prompt_type': {'anyOf': [{'enum': ['chat', 'search_answering', 'suggested_questions', 'chat_evaluation'], 'type': 'string', 'description': 'Types of prompts in the system.'}, {'type': 'null'}], 'default': None, 'description': "'chat', 'search_answering', 'suggested_questions', or 'chat_evaluation'. Returns all when omitted."}, 'interface_type': {'anyOf': [{'enum': ['chat', 'navigator', 'search', 'api', 'form'], 'type': 'string', 'description': 'Coarser grouping of EmbedType for prompt scoping.\n\nFollows the same pattern as StyleType in the interface_styles domain.\nEach value maps to one or more EmbedType values via ``embed_type_to_interface_type``.'}, {'type': 'null'}], 'default': None, 'description': "Interface scope of the prompt: 'chat', 'navigator', 'search', or 'api'. Required for 'chat' and 'search_answering' prompt types; omit for 'suggested_questions' and 'chat_evaluation'."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
list_tools
List tools configured for the authenticated application. Optionally filter by active status. Returns all matching tools.
Read only
Input schema
{'type': 'object', 'properties': {'active': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': True, 'description': 'true = active only, false = inactive only, omit = all.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
read_chat_request_documents
Read the full document chunks retrieved for a single chat request (QA or SA). Returns chunk_id, vertex_id, title, full text, score, source, data source type, page metadata, and whether the chunk was cited in the final answer. Use this after read_session_detail to inspect the exact context the assistant grounded its answer in. Ordered by score descending.
Read only
Input schema
{'type': 'object', 'required': ['chat_request_id'], 'properties': {'chat_request_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
read_chat_request_tool_calls
Read the full tool calls executed for a single chat request. Returns tool_call_id, tool_id, tool_name, tool_type, full arguments (JSON), and full content/response (JSON). Use this to inspect what the assistant invoked and how the tool responded. Ordered by timestamp ascending.
Read only
Input schema
{'type': 'object', 'required': ['chat_request_id'], 'properties': {'chat_request_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
read_data_source_runs
List data source runs for the authenticated application, latest first. Optionally filter by data source ID or run status. Returns the latest runs (default 5) and the total matching count. Use this to track the progress of a run triggered via run_data_source.
Read only
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 5, 'maximum': 10, 'exclusiveMinimum': 0}, 'status': {'anyOf': [{'enum': ['started', 'succeeded', 'aborted', 'timeout', 'cancelled'], 'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Filter runs by status: 'started', 'succeeded', 'aborted', 'timeout', or 'cancelled'. Returns all when omitted."}, 'data_source_id': {'anyOf': [{'type': 'string', 'format': 'uuid'}, {'type': 'null'}], 'default': None, 'description': 'Filter runs by data source UUID. Returns all runs when omitted.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
read_node
Read a node by its ID. Returns full node details.
Read only
Input schema
{'type': 'object', 'required': ['node_id'], 'properties': {'node_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
read_search_request_results
Read the full search results returned for a single instant-search request. Returns chunk_id, vertex_id, title, full text, and relevance score. Use this to inspect the exact results a user saw for their search query. Ordered by score descending.
Read only
Input schema
{'type': 'object', 'required': ['search_request_id'], 'properties': {'search_request_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
read_session_detail
Read a single session with its full history in token-dense form. Returns all interactions (chat, navigation, search, form, voice). Document chunks and tool calls are returned as references (IDs + titles) - use read_node(vertex_id) or read_tool(tool_id) to fetch full content.
Read only
Input schema
{'type': 'object', 'required': ['session_id'], 'properties': {'session_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
read_sessions
List sessions for application. Filter by interaction types (chat, search, navigation, form_submission, voice), embed types, answer types, tool IDs, or a full-text search query. Each session includes its full history, but document chunks and tool calls are returned as references (IDs + titles) rather than full content.Returns paginated results ordered by start time descending.
Read only
Input schema
{'type': 'object', 'properties': {'page': {'type': 'integer', 'default': 1, 'exclusiveMinimum': 0}, 'limit': {'type': 'integer', 'default': 10, 'maximum': 10, 'exclusiveMinimum': 0}, 'tool_ids': {'anyOf': [{'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}}, {'type': 'null'}], 'default': None, 'description': 'Filter sessions that involved specific tool UUID(s). Only exists for chat sessions.'}, 'embed_types': {'anyOf': [{'type': 'array', 'items': {'enum': ['chat', 'search', 'chat_widget', 'search_interface', 'voice', 'api', 'form'], 'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': 'Filter by embed type(s) through which sessions were initiated.'}, 'time_filter': {'anyOf': [{'enum': ['this_month', 'this_year', 'last_month', 'last_30_days', 'last_6_months', 'last_12_months'], 'type': 'string'}, {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2},\\d{4}-\\d{2}-\\d{2}$'}, {'type': 'null'}], 'default': None, 'description': "Time window for the analytics query. Accepts either: (a) a preset enum value: 'this_month', 'this_year', 'last_month', 'last_30_days' (default), 'last_6_months', 'last_12_months'; or (b) an explicit ISO date range as 'YYYY-MM-DD,YYYY-MM-DD' (inclusive)."}, 'answer_types': {'anyOf': [{'type': 'array', 'items': {'enum': ['complete', 'no_knowledge', 'outside_scope', 'small_talk', 'follow_up_question'], 'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': 'Filter by answer type(s) returned to users. Only exists for chat sessions.'}, 'interactions': {'anyOf': [{'type': 'array', 'items': {'enum': ['navigation', 'search', 'chat', 'form_submission', 'voice'], 'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': "'chat', 'search', 'navigation', 'form_submission', or 'voice'."}, 'search_query': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Full-text search across session content. Returns all when omitted.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
read_tool
Read a tool by its ID. Returns full tool details.
Read only
Input schema
{'type': 'object', 'required': ['tool_id'], 'properties': {'tool_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
run_data_source
Trigger an asynchronous run (sync/crawl) of a data source by its ID. The run is queued as a background job. Returns the accepted status. Track progress with read_data_source_runs.
Input schema
{'type': 'object', 'required': ['data_source_id'], 'properties': {'data_source_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
update_chat_request_analytics
Update analytics fields on a chat request: summary, tags, answer_type, sentiment, classification_topic_id, or classification_intent_id. Only provided fields are updated. Use this to annotate or reclassify chat interactions after the fact.
Idempotent
Input schema
{'type': 'object', 'required': ['chat_request_id'], 'properties': {'tags': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': 'List of tags to attach to the chat request.'}, 'summary': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Short summary or annotation for the chat request.'}, 'sentiment': {'anyOf': [{'enum': ['positive', 'negative', 'neutral'], 'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Sentiment classification: 'positive', 'negative', or 'neutral'."}, 'answer_type': {'anyOf': [{'enum': ['complete', 'no_knowledge', 'outside_scope', 'small_talk', 'follow_up_question'], 'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Answer type classification: 'complete', 'no_knowledge', 'outside_scope', 'small_talk', or 'follow_up_question'."}, 'chat_request_id': {'type': 'string', 'format': 'uuid'}, 'classification_topic_id': {'anyOf': [{'type': 'string', 'format': 'uuid'}, {'type': 'null'}], 'default': None, 'description': 'UUID of the classification topic to assign to this chat request.'}, 'classification_intent_id': {'anyOf': [{'type': 'string', 'format': 'uuid'}, {'type': 'null'}], 'default': None, 'description': 'UUID of the classification intent to assign to this chat request.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
update_data_source
Update a data source by its ID. Only provided fields will be updated (partial update). Returns the updated data source.
Idempotent
Input schema
{'type': 'object', 'required': ['data_source_id'], 'properties': {'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'type': {'anyOf': [{'enum': ['website_crawler', 'file_upload', 'node_editor', 'default_node', 'openAPI', 'helpspace', 'custom_website_crawler', 'webhook', 'wordpress'], 'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Must match the 'type' discriminator of the 'settings' object when both are provided."}, 'schedule': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Cron expression (e.g. '0 3 * * *') or null to disable scheduled re-sync."}, 'settings': {'anyOf': [{'oneOf': [{'type': 'object', 'required': ['urls', 'type'], 'properties': {'type': {'type': 'string', 'const': 'website_crawler', 'default': 'website_crawler'}, 'urls': {'type': 'object', 'required': ['start_urls'], 'properties': {'start_urls': {'type': 'array', 'items': {'type': 'string', 'format': 'uri', 'minLength': 1}}}}, 'actor': {'enum': ['apify/website-content-crawler'], 'type': 'string', 'default': 'apify/website-content-crawler'}, 'filters': {'anyOf': [{'type': 'object', 'properties': {'criteria': {'type': 'array', 'items': {'type': 'object', 'required': ['field', 'condition'], 'properties': {'field': {'enum': ['published_time', 'modified_time'], 'type': 'string'}, 'condition': {'type': 'object', 'required': ['type', 'value'], 'properties': {'type': {'enum': ['max_age_days', 'contains'], 'type': 'string'}, 'value': {'anyOf': [{'type': 'integer'}, {'type': 'string'}]}}}}}}}}, {'type': 'null'}], 'default': None}, 'custom_tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Tags defined by the user that are displayed as badges in frontend. Applies to all pages crawled with this data source.'}, 'crawler_type': {'enum': ['playwright:firefox', 'playwright:adaptive', 'cheerio'], 'type': 'string', 'default': 'cheerio'}, 'ignore_errors': {'type': 'boolean', 'default': False, 'description': 'Ignore any page-specific errors (Lang-Tab not available, status code etc.) and continue crawling.'}, 'max_crawl_depth': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': 20}, 'exclude_url_globs': {'type': 'array', 'items': {'type': 'string'}}, 'include_url_globs': {'type': 'array', 'items': {'type': 'string'}}, 'max_pages_per_crawl': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': 30}, 'ignore_canonical_url': {'type': 'boolean', 'default': False, 'description': 'Ignore canonical URLs when crawling if they are incorrectly defined or the crawler should consider Query Parameters as well.'}, 'remove_html_elements': {'type': 'string', 'default': 'footer, div.footer, #footer, header, div.pageheader, #pageheader, script, style, noscript, svg, [role="alert"], [role="banner"], [role="dialog"], [role="alertdialog"], [role="region"][aria-label*="skip" i], [aria-modal="true"], #branchly-chat-widget-container, #branchly-embed-container, #branchly-chat-embed-container, #branchly-search-interface-container', 'description': 'List of CSS selectors to remove from the HTML content. List should be separated by commas.'}, 'title_suffix_to_remove': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Remove suffix or prefix from page titles.'}, 'unavailable_source_policy': {'anyOf': [{'enum': ['ignore', 'delete_unavailable'], 'type': 'string', 'description': 'Policy for handling unavailable URLs during data source sync.'}, {'type': 'null'}], 'default': 'delete_unavailable', 'description': 'Policy for handling unavailable Sources/URLs during data source run.'}}}, {'type': 'object', 'required': ['files', 'type'], 'properties': {'type': {'type': 'string', 'const': 'file_upload', 'default': 'file_upload'}, 'files': {'type': 'array', 'items': {'type': 'object', 'required': ['file_name', 'url'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'minLength': 1}, 'file_name': {'type': 'string'}, 'is_external': {'type': 'boolean', 'default': False}}}}}}, {'type': 'object', 'required': ['openapi_spec', 'operation_id', 'data_template_mapping', 'type'], 'properties': {'type': {'type': 'string', 'const': 'openAPI', 'default': 'openAPI'}, 'openapi_spec': {'type': 'string'}, 'operation_id': {'type': 'string'}, 'extra_options': {'anyOf': [{'type': 'object', 'additionalProperties': {'anyOf': [{'type': 'string'}, {'type': 'boolean'}, {'type': 'number'}, {'type': 'integer'}, {'type': 'null'}]}}, {'type': 'null'}], 'default': None}, 'data_template_mapping': {'type': 'object', 'required': ['text', 'title', 'source'], 'properties': {'text': {'type': 'string'}, 'title': {'type': 'string'}, 'source': {'type': 'string'}, 'page_metadata': {'anyOf': [{'type': 'object', 'properties': {'title': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'images': {'anyOf': [{'type': 'object', 'properties': {'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}}, {'type': 'null'}], 'default': None}, 'article': {'anyOf': [{'type': 'object', 'properties': {'tags': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'modified_time': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'published_time': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}}, {'type': 'null'}], 'default': None}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}}, {'type': 'null'}], 'default': None}, 'custom_metadata': {'anyOf': [{'type': 'object', 'properties': {'tags': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'score_boost': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}}, {'type': 'null'}], 'default': None}}}, 'response_content_path': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'unavailable_source_policy': {'anyOf': [{'enum': ['ignore', 'delete_unavailable'], 'type': 'string', 'description': 'Policy for handling unavailable URLs during data source sync.'}, {'type': 'null'}], 'default': 'delete_unavailable', 'description': 'Policy for handling unavailable Sources/URLs during data source run.'}}}, {'type': 'object', 'required': ['client_id', 'api_token', 'site_id', 'type'], 'properties': {'type': {'type': 'string', 'const': 'helpspace', 'default': 'helpspace'}, 'site_id': {'type': 'integer'}, 'api_token': {'type': 'string'}, 'client_id': {'type': 'string'}, 'unavailable_source_policy': {'anyOf': [{'enum': ['ignore', 'delete_unavailable'], 'type': 'string', 'description': 'Policy for handling unavailable URLs during data source sync.'}, {'type': 'null'}], 'default': 'delete_unavailable', 'description': 'Policy for handling unavailable Sources/URLs during data source run.'}}}, {'type': 'object', 'required': ['urls', 'main_content_marker', 'graph_builder', 'type'], 'properties': {'type': {'type': 'string', 'const': 'custom_website_crawler', 'default': 'custom_website_crawler'}, 'urls': {'type': 'object', 'required': ['start_urls'], 'properties': {'start_urls': {'type': 'array', 'items': {'type': 'string', 'format': 'uri', 'minLength': 1}}}}, 'actor': {'enum': ['apify/website-content-crawler'], 'type': 'string', 'default': 'apify/website-content-crawler'}, 'custom_tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Tags defined by the user that are displayed as badges in frontend. Applies to all pages crawled with this data source.'}, 'crawler_type': {'enum': ['playwright:firefox', 'playwright:adaptive', 'cheerio'], 'type': 'string', 'default': 'cheerio'}, 'graph_builder': {'type': 'object', 'required': ['navigation_builder'], 'properties': {'tool_node_ids': {'anyOf': [{'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}}, {'type': 'null'}], 'default': None}, 'contact_node_ids': {'anyOf': [{'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}}, {'type': 'null'}], 'default': None}, 'navigation_builder': {'oneOf': [{'type': 'object', 'required': ['breadcrumb_selector', 'type'], 'properties': {'type': {'type': 'string', 'const': 'breadcrumbs', 'default': 'breadcrumbs'}, 'breadcrumb_selector': {'type': 'string'}}}]}, 'nodes_wo_edges_to_root': {'type': 'boolean', 'default': False, 'description': 'Nodes without incoming/outgoing edges to the root node/start url. Prevents orphan nodes'}, 'nodes_wo_out_edges_to_tool': {'type': 'boolean', 'default': False, 'description': 'Nodes without outgoing edges to tool nodes. Uses tool_node_ids if available, otherwise all tool nodes'}, 'connect_start_urls_to_entry': {'type': 'boolean', 'default': True, 'description': 'Connect start URLs to entry node'}, 'nodes_wo_out_edges_to_contact': {'type': 'boolean', 'default': False, 'description': 'Nodes without outgoing edges to contact nodes. Uses contact_node_ids if available, otherwise all contact nodes'}}}, 'ignore_errors': {'type': 'boolean', 'default': False}, 'exclude_url_globs': {'type': 'array', 'items': {'type': 'string'}}, 'include_url_globs': {'type': 'array', 'items': {'type': 'string'}}, 'main_content_marker': {'type': 'object', 'required': ['selector_filter', 'start_marker', 'end_marker'], 'properties': {'type': {'type': 'string', 'const': 'comments', 'default': 'comments'}, 'end_marker': {'type': 'string'}, 'start_marker': {'type': 'string'}, 'selector_filter': {'type': 'string'}}}, 'fetch_image_captions': {'type': 'boolean', 'default': False, 'description': 'Fetch and generate captions for images found during crawling.'}, 'title_suffix_to_remove': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Remove suffix or prefix from page titles.'}, 'unavailable_source_policy': {'anyOf': [{'enum': ['ignore', 'delete_unavailable'], 'type': 'string', 'description': 'Policy for handling unavailable URLs during data source sync.'}, {'type': 'null'}], 'default': 'ignore', 'description': 'Policy for handling unavailable Sources/URLs during data source run.'}}}, {'type': 'object', 'required': ['type'], 'properties': {'type': {'type': 'string', 'const': 'webhook', 'default': 'webhook'}, 'data_template_mapping': {'anyOf': [{'type': 'object', 'required': ['text', 'title', 'source'], 'properties': {'text': {'type': 'string'}, 'title': {'type': 'string'}, 'source': {'type': 'string'}, 'page_metadata': {'anyOf': [{'type': 'object', 'properties': {'title': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'images': {'anyOf': [{'type': 'object', 'properties': {'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}}, {'type': 'null'}], 'default': None}, 'article': {'anyOf': [{'type': 'object', 'properties': {'tags': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'modified_time': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'published_time': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}}, {'type': 'null'}], 'default': None}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}}, {'type': 'null'}], 'default': None}, 'custom_metadata': {'anyOf': [{'type': 'object', 'properties': {'tags': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'score_boost': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}}, {'type': 'null'}], 'default': None}}}, {'type': 'null'}], 'default': None, 'description': 'Optional template mapping for custom webhook payloads. If provided, incoming data will be mapped to internal format.'}}, 'description': 'Settings for webhook data source.'}, {'type': 'object', 'required': ['type'], 'properties': {'type': {'type': 'string', 'const': 'wordpress', 'default': 'wordpress'}, 'filters': {'anyOf': [{'type': 'object', 'properties': {'criteria': {'type': 'array', 'items': {'type': 'object', 'required': ['field', 'condition'], 'properties': {'field': {'enum': ['published_time', 'modified_time'], 'type': 'string'}, 'condition': {'type': 'object', 'required': ['type', 'value'], 'properties': {'type': {'enum': ['max_age_days', 'contains'], 'type': 'string'}, 'value': {'anyOf': [{'type': 'integer'}, {'type': 'string'}]}}}}}}}}, {'type': 'null'}], 'default': None}, 'timeout': {'type': 'integer', 'default': 30, 'maximum': 120, 'minimum': 5}, 'api_path': {'type': 'string', 'default': '/wp-json/wp/v2'}, 'post_types': {'type': 'array', 'items': {'type': 'string'}, 'minItems': 1}, 'verify_ssl': {'type': 'boolean', 'default': True}, 'post_status': {'type': 'array', 'items': {'type': 'string'}, 'minItems': 1}, 'locale_mapping': {'type': 'object', 'description': "Map detected URL language codes to app locales. e.g. {'en': 'en', 'de': 'de', 'fr_FR': 'fr'}. Applied after locale_detection; unmatched codes are used as-is. Falls back to default_locale when no locale is detected.Locale mapping is used to filter posts in 'wpml' language detection mode.", 'additionalProperties': {'type': 'string'}}, 'locale_detection': {'enum': ['static', 'path_prefix', 'subdomain', 'query_param', 'wpml'], 'type': 'string', 'default': 'static', 'description': "Strategy for inferring the locale from a post's URL. 'static' uses default_locale for all posts. 'path_prefix' reads the first path segment (domain.com/en/page). 'subdomain' reads the subdomain (en.domain.com). 'query_param' reads the ?lang= query parameter. 'wpml' queries the WPML REST API per language (?lang=xx) and tags each post with the queried language code."}, 'default_site_locale': {'type': 'string', 'default': 'de', 'description': "Locale assigned to all posts in 'static' mode, or used as fallback in detection modes."}, 'excluded_categories': {'type': 'array', 'items': {'type': 'integer'}}, 'unavailable_source_policy': {'anyOf': [{'enum': ['ignore', 'delete_unavailable'], 'type': 'string', 'description': 'Policy for handling unavailable URLs during data source sync.'}, {'type': 'null'}], 'default': 'delete_unavailable'}}}], 'description': 'Settings for data source, used for DB and creating models'}, {'type': 'null'}], 'default': None, 'description': "Type-specific config. Pass as an inline JSON object â\x80\x94 do NOT serialize to a string. Must include a 'type' discriminator field: 'website_crawler', 'pdf_upload', 'open_api', 'helpspace', 'custom_webcrawler', or 'webhook'."}, 'data_source_id': {'type': 'string', 'format': 'uuid'}, 'integration_id': {'anyOf': [{'type': 'string', 'format': 'uuid'}, {'type': 'null'}], 'default': None, 'description': 'Integration UUID for connected data sources. Required for WordPress data sources.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
update_node
Update a content node by its ID. Only provided fields are updated. Title and text are locale dicts (e.g. {"de": "Titel"}) — provided keys are merged, others preserved. custom_metadata keys are likewise merged into the existing metadata.
Idempotent
Input schema
{'type': 'object', 'required': ['node_id'], 'properties': {'text': {'anyOf': [{'type': 'object', 'additionalProperties': {'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': 'Locale-keyed body content (HTML) map, e.g. {"de": "<p>Inhalt</p>", "en": "<p>Content</p>"}.'}, 'title': {'anyOf': [{'type': 'object', 'additionalProperties': {'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': 'Locale-keyed title map, e.g. {"de": "Titel", "en": "Title"}.'}, 'source': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Source URL for the node content.'}, 'node_id': {'type': 'string', 'format': 'uuid'}, 'score_boost': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'default': None, 'description': 'Boost value for search ranking. Higher is better. Use null for no boost.'}, 'custom_metadata': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
update_prompt
Activate or deactivate a prompt by its ID. Use is_active=true to restore a previous prompt version — the currently active prompt of the same type and subtype is deactivated automatically. To change prompt text, use create_prompt instead.
Idempotent
Input schema
{'type': 'object', 'required': ['prompt_id'], 'properties': {'is_active': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None, 'description': 'Activating a prompt automatically deactivates other prompts of the same type.'}, 'prompt_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
update_tool
Update an existing tool by its ID. Fetches the current tool and applies partial updates to name, description, or active status.
Idempotent
Input schema
{'type': 'object', 'required': ['tool_id'], 'properties': {'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'snake_case tool name, max 64 characters. Used as the function name when the LLM calls the tool.'}, 'active': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None}, 'tool_id': {'type': 'string', 'format': 'uuid'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'tool_config': {'anyOf': [{'type': 'object', 'required': ['properties'], 'properties': {'properties': {'type': 'array', 'items': {'oneOf': [{'type': 'object', 'required': ['name', 'field_type'], 'properties': {'name': {'type': 'string'}, 'format': {'enum': ['text', 'email', 'tel'], 'type': 'string', 'default': 'text', 'description': 'HTML input type'}, 'required': {'type': 'boolean', 'default': False}, 'field_type': {'type': 'string', 'const': 'string', 'default': 'string'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}}, {'type': 'object', 'required': ['name', 'field_type'], 'properties': {'name': {'type': 'string'}, 'format': {'type': 'string', 'const': 'text', 'default': 'text', 'description': 'HTML input type'}, 'required': {'type': 'boolean', 'default': False}, 'field_type': {'type': 'string', 'const': 'text_area', 'default': 'text_area'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}}, {'type': 'object', 'required': ['name', 'field_type'], 'properties': {'name': {'type': 'string'}, 'minimum': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'default': None}, 'required': {'type': 'boolean', 'default': False}, 'field_type': {'type': 'string', 'const': 'number', 'default': 'number'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}}, {'type': 'object', 'required': ['name', 'enum', 'field_type'], 'properties': {'enum': {'type': 'array', 'items': {'type': 'string'}}, 'name': {'type': 'string'}, 'required': {'type': 'boolean', 'default': False}, 'field_type': {'type': 'string', 'const': 'select', 'default': 'select'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}}, {'type': 'object', 'required': ['name', 'field_type'], 'properties': {'name': {'type': 'string'}, 'format': {'type': 'string', 'const': 'date', 'default': 'date'}, 'required': {'type': 'boolean', 'default': False}, 'field_type': {'type': 'string', 'const': 'date', 'default': 'date'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}}, {'type': 'object', 'required': ['name', 'field_type'], 'properties': {'name': {'type': 'string'}, 'format': {'type': 'string', 'const': 'time', 'default': 'time'}, 'required': {'type': 'boolean', 'default': False}, 'field_type': {'type': 'string', 'const': 'time', 'default': 'time'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}}, {'type': 'object', 'required': ['name', 'field_type'], 'properties': {'name': {'type': 'string'}, 'required': {'type': 'boolean', 'default': False}, 'field_type': {'type': 'string', 'const': 'checkbox', 'default': 'checkbox'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}}]}}}}, {'type': 'object', 'properties': {'object': {'type': 'string', 'const': 'api_tool_config', 'default': 'api_tool_config'}, 'parameters': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'description'], 'properties': {'name': {'type': 'string', 'description': 'Name of the parameter. Used as a variable placeholder in URL, headers, or body with {{name}} notation.'}, 'type': {'enum': ['text', 'number', 'boolean'], 'type': 'string', 'default': 'text', 'description': 'Type of the parameter.'}, 'required': {'type': 'boolean', 'default': True, 'description': 'Whether this parameter is required for the API call.'}, 'description': {'type': 'string', 'description': 'Description of the parameter to help the AI understand what data to collect from the user.'}}, 'description': 'Parameter collected from the user for use in API requests.\n\nParameters can be used as placeholders in URL, headers, or body using {{parameter_name}} notation.'}, 'description': 'List of parameters to collect from the user for use in the API request.'}}, 'description': 'Configuration for the API tool sent to the LLM as a function.\n\nContains the parameters that the AI collects from users, which are then\nsubstituted into the URL, headers, and body using {{parameter_name}} notation.'}, {'type': 'null'}], 'default': None, 'description': "Function schema sent to the LLM. Pass as an inline JSON object â\x80\x94 do NOT serialize to a string. Use 'FormAPISchema' for form tools or 'APIToolConfig' for API-calling tools. Pass null to clear."}, 'function_arguments': {'anyOf': [{'type': 'object', 'properties': {'object': {'type': 'string', 'const': 'knowledge_base_tool_arguments', 'default': 'knowledge_base_tool_arguments'}, 'rerank': {'type': 'boolean', 'default': False}, 'formatter': {'enum': ['chunks_with_source', 'numbered_chunks_with_source', 'grouped_chunks', 'grouped_chunks_with_custom_metadata', 'grouped_chunks_with_page_metadata'], 'type': 'string', 'default': 'grouped_chunks'}, 'sources_filter': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None}, 'node_ids_filter': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None}, 'retrieval_method': {'enum': ['default', 'parent_context'], 'type': 'string', 'default': 'default'}, 'node_labels_filter': {'anyOf': [{'type': 'array', 'items': {'enum': ['entry', 'content', 'contact', 'tool', 'fallback', 'integration', 'style', 'chat_navigator_style', 'search_style', 'search_result', 'navigator', 'feedback'], 'type': 'string'}}, {'type': 'null'}], 'default': None}, 'document_limit_rerank': {'type': 'integer', 'default': 25}, 'data_source_ids_filter': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None}, 'document_limit_default': {'type': 'integer', 'default': 15}, 'data_source_types_filter': {'anyOf': [{'type': 'array', 'items': {'enum': ['website_crawler', 'file_upload', 'node_editor', 'default_node', 'openAPI', 'helpspace', 'custom_website_crawler', 'webhook', 'wordpress'], 'type': 'string'}}, {'type': 'null'}], 'default': None}}}, {'type': 'object', 'properties': {'object': {'type': 'string', 'const': 'node_lookup_tool_arguments', 'default': 'node_lookup_tool_arguments'}, 'node_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'List of node IDs to look up in the graph.'}}}, {'type': 'object', 'required': ['sender_email'], 'properties': {'object': {'type': 'string', 'const': 'send_email_tool_arguments', 'default': 'send_email_tool_arguments'}, 'sender_email': {'type': 'string', 'format': 'email'}}}, {'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 5}, 'object': {'type': 'string', 'const': 'web_search_tool_arguments', 'default': 'web_search_tool_arguments'}}}, {'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string'}, 'object': {'type': 'string', 'const': 'web_page_reader_tool_arguments', 'default': 'web_page_reader_tool_arguments'}, 'target_selector': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Only returns elements from CSS selector.'}, 'wait_for_selector': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Wait for a specific element to appear before returning. For dynamic content.'}}}, {'type': 'object', 'required': ['form_title', 'submit_message', 'submit_button_text'], 'properties': {'object': {'type': 'string', 'const': 'form_tool_arguments', 'default': 'form_tool_arguments'}, 'form_title': {'type': 'object', 'additionalProperties': {'type': 'string'}}, 'submit_message': {'type': 'object', 'additionalProperties': {'type': 'string'}}, 'data_privacy_text': {'anyOf': [{'type': 'object', 'additionalProperties': {'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': 'Optional data privacy text. If provided, a checkbox should be displayed to the user.'}, 'notification_email': {'anyOf': [{'type': 'string', 'format': 'email'}, {'type': 'array', 'items': {'type': 'string', 'format': 'email'}}, {'type': 'null'}], 'default': None, 'description': 'Used for email forwarding of form submissions. If not provided, no email will be forwarded'}, 'submit_button_text': {'type': 'object', 'additionalProperties': {'type': 'string'}}, 'show_data_privacy_text': {'type': 'boolean', 'default': False}}}, {'type': 'object', 'required': ['projects', 'channels', 'domain'], 'properties': {'event': {'anyOf': [{'type': 'object', 'required': ['event_type', 'mapping'], 'properties': {'mapping': {'type': 'object', 'properties': {'id': {'type': 'string', 'default': '{{event_id}}'}, 'tags': {'type': 'string', 'default': '{{tags}}'}, 'type': {'type': 'string', 'const': 'carousel_v1', 'default': 'carousel_v1'}, 'title': {'type': 'string', 'default': '{{event_name}}'}, 'detail': {'type': 'string', 'default': '{{event_date_time.0.start_date}} - {{event_date_time.0.end_date}}<br>{{address.city}}<br>'}, 'image_url': {'type': 'string', 'default': '{{first_image.url}}'}, 'resource_url': {'type': 'string', 'default': '{{link}}'}}}, 'event_type': {'enum': ['carousel_v1'], 'type': 'string'}}}, {'type': 'null'}], 'default': None, 'description': 'Optional frontend event mapping.'}, 'domain': {'type': 'string'}, 'object': {'type': 'string', 'const': 'venus_knowledge_graph_tool_arguments', 'default': 'venus_knowledge_graph_tool_arguments'}, 'channels': {'type': 'string'}, 'projects': {'type': 'string'}, 'entity_type': {'type': 'string', 'const': 'Event', 'default': 'Event'}}}, {'type': 'object', 'required': ['secret_key', 'public_key'], 'properties': {'event': {'anyOf': [{'type': 'object', 'required': ['event_type', 'mapping'], 'properties': {'mapping': {'type': 'object', 'properties': {'id': {'type': 'string', 'default': '{{event_id}}'}, 'tags': {'type': 'string', 'default': '{{tags}}'}, 'type': {'type': 'string', 'const': 'carousel_v1', 'default': 'carousel_v1'}, 'title': {'type': 'string', 'default': '{{event_name}}'}, 'detail': {'type': 'string', 'default': '{{event_date_time.0.start_date}} - {{event_date_time.0.end_date}}<br>{{address.city}}<br>'}, 'image_url': {'type': 'string', 'default': '{{first_image.url}}'}, 'resource_url': {'type': 'string', 'default': '{{link}}'}}}, 'event_type': {'enum': ['carousel_v1'], 'type': 'string'}}}, {'type': 'null'}], 'default': None, 'description': 'Optional frontend event mapping.'}, 'object': {'type': 'string', 'const': 'regiondo_tool_arguments', 'default': 'regiondo_tool_arguments'}, 'public_key': {'type': 'string'}, 'secret_key': {'type': 'string'}}}, {'type': 'object', 'required': ['mcp_url'], 'properties': {'events': {'type': 'array', 'items': {'type': 'object', 'required': ['event_type', 'mapping'], 'properties': {'mapping': {'type': 'object', 'properties': {'id': {'type': 'string', 'default': '{{event_id}}'}, 'tags': {'type': 'string', 'default': '{{tags}}'}, 'type': {'type': 'string', 'const': 'carousel_v1', 'default': 'carousel_v1'}, 'title': {'type': 'string', 'default': '{{event_name}}'}, 'detail': {'type': 'string', 'default': '{{event_date_time.0.start_date}} - {{event_date_time.0.end_date}}<br>{{address.city}}<br>'}, 'image_url': {'type': 'string', 'default': '{{first_image.url}}'}, 'resource_url': {'type': 'string', 'default': '{{link}}'}}}, 'event_type': {'enum': ['carousel_v1'], 'type': 'string'}, 'mcp_tool_names': {'type': 'array', 'items': {'type': 'string'}, 'description': 'List of tool names this frontend event should be mapped to. If empty, map to all tools of the MCP server.'}, 'mcp_tool_entities': {'anyOf': [{'type': 'object', 'required': ['key'], 'properties': {'key': {'type': 'string', 'description': 'The key to use to identify the entity from the MCP server response'}, 'values': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The specific entities (values) that should be mapped to the frontend event'}}}, {'type': 'null'}], 'default': None, 'description': 'Mapping to distinguish entities from the MCP server response. If None, map to all entities'}}}, 'description': 'List of frontend events to be triggered by this tool'}, 'object': {'type': 'string', 'const': 'mcp_server_tool_arguments', 'default': 'mcp_server_tool_arguments'}, 'headers': {'anyOf': [{'type': 'object', 'additionalProperties': {'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': 'Optional headers to be sent with the request to the MCP server.'}, 'mcp_url': {'type': 'string', 'format': 'uri', 'minLength': 1}, 'image_url': {'anyOf': [{'type': 'string', 'format': 'uri', 'minLength': 1}, {'type': 'null'}], 'default': None, 'description': 'Optional image URL to be shown in the Dashboard. Only for frontend display.'}}}, {'type': 'object', 'required': ['method', 'url'], 'properties': {'url': {'type': 'string', 'description': 'URL of the API endpoint. Can include parameter placeholders using mustache notation like {{parameter_name}}.'}, 'body': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'default': None, 'description': 'Request body. Values can include parameter placeholders using mustache notation like {{parameter_name}}.'}, 'event': {'anyOf': [{'type': 'object', 'required': ['event_type', 'mapping'], 'properties': {'mapping': {'type': 'object', 'properties': {'id': {'type': 'string', 'default': '{{event_id}}'}, 'tags': {'type': 'string', 'default': '{{tags}}'}, 'type': {'type': 'string', 'const': 'carousel_v1', 'default': 'carousel_v1'}, 'title': {'type': 'string', 'default': '{{event_name}}'}, 'detail': {'type': 'string', 'default': '{{event_date_time.0.start_date}} - {{event_date_time.0.end_date}}<br>{{address.city}}<br>'}, 'image_url': {'type': 'string', 'default': '{{first_image.url}}'}, 'resource_url': {'type': 'string', 'default': '{{link}}'}}}, 'event_type': {'enum': ['carousel_v1'], 'type': 'string'}}}, {'type': 'null'}], 'default': None, 'description': 'Optional frontend event mapping.'}, 'method': {'enum': ['GET', 'POST', 'PUT', 'PATCH', 'DELETE'], 'type': 'string', 'description': 'HTTP method for the API request.'}, 'object': {'type': 'string', 'const': 'api_tool_arguments', 'default': 'api_tool_arguments'}, 'headers': {'anyOf': [{'type': 'object', 'additionalProperties': {'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': 'HTTP headers for the request. Values can include parameter placeholders using mustache notation like {{parameter_name}}.'}, 'timeout': {'type': 'integer', 'default': 5, 'maximum': 30, 'minimum': 1, 'description': 'Request timeout in seconds.'}, 'query_params': {'anyOf': [{'type': 'object', 'additionalProperties': {'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': 'Query parameters for the request. Values can include parameter placeholders using mustache notation like {{parameter_name}}.'}, 'response_path': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Optional dot notation to extract specific data from the API response.'}, 'integration_id': {'anyOf': [{'type': 'string', 'format': 'uuid'}, {'type': 'null'}], 'default': None, 'description': 'ID of the integration used to obtain an auth token for the request.'}, 'body_content_type': {'enum': ['application/json', 'application/x-www-form-urlencoded'], 'type': 'string', 'default': 'application/json', 'description': 'Content type of the request body.'}}, 'description': 'Arguments for the API tool that define how to make HTTP requests.\n\nContains the static configuration for executing API requests.\nUse {{parameter_name}} mustache notation in url, query_params, headers, and body\nto reference parameters defined in tool_config.'}, {'type': 'object', 'required': ['buttons'], 'properties': {'object': {'type': 'string', 'const': 'buttons_tool_arguments', 'default': 'buttons_tool_arguments'}, 'buttons': {'type': 'array', 'items': {'type': 'object', 'required': ['type', 'text'], 'properties': {'url': {'anyOf': [{'type': 'string', 'format': 'uri', 'minLength': 1}, {'type': 'null'}], 'default': None, 'description': 'URL for link_button type. Required for link_button, not used for button type. Allow mailto: and tel: links as well.'}, 'text': {'type': 'string', 'maxLength': 50, 'description': 'Button text to display. Should be short and descriptive.'}, 'type': {'enum': ['link_button', 'button'], 'type': 'string', 'description': 'Type of the button'}}, 'description': 'Individual button in the buttons tool.\n\n- link_button: Opens URL in new tab (if external) or navigates (like follow-up actions)\n- button: Uses text as input for sending new request'}, 'maxItems': 10, 'minItems': 1, 'description': 'List of buttons to display. Maximum 10 buttons.'}}, 'description': 'Arguments for the Buttons tool.\n\nThis tool allows AI to send buttons as a frontend event to users.\nNo inputs are required from the AI when executing this tool.\nMaximum 3 buttons can be sent.'}, {'type': 'object', 'properties': {'object': {'type': 'string', 'const': 'google_maps_link_tool_arguments', 'default': 'google_maps_link_tool_arguments'}, 'icon_url': {'anyOf': [{'type': 'string', 'format': 'uri', 'minLength': 1}, {'type': 'null'}], 'default': None, 'description': 'Optional URL of an icon to display inside the link button.'}, 'default_travelmode': {'anyOf': [{'enum': ['driving', 'walking', 'bicycling', 'transit'], 'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Default travel mode used when the AI does not specify one.'}}}, {'type': 'object', 'properties': {'object': {'type': 'string', 'const': 'google_maps_embed_tool_arguments', 'default': 'google_maps_embed_tool_arguments'}, 'default_mode': {'anyOf': [{'enum': ['driving', 'walking', 'bicycling', 'transit', 'flying'], 'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Default travel mode used when the AI does not specify one.'}}}, {'type': 'object', 'required': ['integration_id'], 'properties': {'object': {'type': 'string', 'const': 'calendly_tool_arguments', 'default': 'calendly_tool_arguments'}, 'integration_id': {'type': 'string', 'format': 'uuid', 'description': 'ID of the connected Calendly integration to use for scheduling.'}}}, {'type': 'null'}], 'default': None, 'description': "Fixed runtime arguments NOT collected from the LLM (e.g. recipient email, rerank flag, knowledge-base ID). Pass as an inline JSON object â\x80\x94 do NOT serialize to a string. Must include an 'object' discriminator field matching the tool type."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'additionalProperties': True}
Changed
update_tool
Oct. 1, 2026, 2:44 a.m.
Changed
create_tool
Oct. 1, 2026, 2:44 a.m.
Changed
update_tool
Sept. 23, 2026, 2:42 a.m.
Changed
create_tool
Sept. 23, 2026, 2:42 a.m.
Changed
create_tool
Sept. 19, 2026, 2:41 a.m.
Added
update_chat_request_analytics
Sept. 17, 2026, 12:40 p.m.
Added
get_active_sessions_by_embed
Sept. 17, 2026, 12:40 p.m.
Added
read_search_request_results
Sept. 17, 2026, 12:40 p.m.
Added
read_chat_request_tool_calls
Sept. 17, 2026, 12:40 p.m.
Added
read_chat_request_documents
Sept. 17, 2026, 12:40 p.m.
Added
get_trending_classifications
Sept. 17, 2026, 12:40 p.m.
Added
get_answer_type_distribution
Sept. 17, 2026, 12:40 p.m.
Added
get_top_tags
Sept. 17, 2026, 12:40 p.m.
Added
get_top_searches
Sept. 17, 2026, 12:40 p.m.
Added
get_top_interaction_sources
Sept. 17, 2026, 12:40 p.m.
Added
get_top_clicked_urls
Sept. 17, 2026, 12:40 p.m.
Added
get_top_cited_sources
Sept. 17, 2026, 12:40 p.m.
Added
get_sentiment_distribution
Sept. 17, 2026, 12:40 p.m.
Added
get_top_geographies
Sept. 17, 2026, 12:40 p.m.
Added
get_top_devices
Sept. 17, 2026, 12:40 p.m.
Added
get_top_languages
Sept. 17, 2026, 12:40 p.m.
Added
get_top_locales
Sept. 17, 2026, 12:40 p.m.
Added
get_active_sessions_over_time
Sept. 17, 2026, 12:40 p.m.
Added
read_session_detail
Sept. 17, 2026, 12:40 p.m.
Added
read_sessions
Sept. 17, 2026, 12:40 p.m.
Added
update_tool
Sept. 17, 2026, 12:40 p.m.
Added
create_tool
Sept. 17, 2026, 12:40 p.m.
Added
read_tool
Sept. 17, 2026, 12:40 p.m.
Added
list_tools
Sept. 17, 2026, 12:40 p.m.
Added
update_prompt
Sept. 17, 2026, 12:40 p.m.