Automation

Update Bot

Update an automation bot.

Required Scopes: automation:update

Update bot configuration. Only provided fields will be updated. Changing a non-keyword bot's bot_type to keyword returns 422 keyword_bots_retired; existing keyword bots stay fully editable.

patch/api/v1/automation/bots/{bot_id}

Request

  • Base URL: https://api.sendseven.com
  • URL: https://api.sendseven.com/api/v1/automation/bots/{bot_id}
  • Auth: HTTP bearer

Path parameters

bot_idstring required

Request body

namestring nullable
bot_type'assistant' | 'support' | 'router' | 'sales' | 'lead_qualification' | 'faq' | 'appointment' | 'keyword' | 'email_support' | 'agent'

Type of automation bot.

'assistant' is the preferred value for new bots (Phase 2 consolidation). All legacy values remain valid for backwards compatibility.

is_activeboolean nullable
priorityinteger nullable

Bot priority

personality_promptstring nullable
greeting_messagestring nullable
escalation_keywordsstring[] nullable
display_namestring nullable
avatar_urlstring nullable
ai_disclosure_messagestring nullable
ai_disclosure_include_escalationboolean nullable
is_kb_only_modeboolean nullable
response_languagestring nullable
confidence_thresholdnumber nullable
is_detailed_responseboolean nullable
use_full_conversation_contextboolean nullable
vision_enabledboolean nullable
web_search_mode'off' | 'kb_fallback' | 'always'

When a bot is allowed to perform a live web search (Beta).

  • off (default / NULL): today's behaviour — KB-only, never searches the web.
  • kb_fallback: only search the web after the KB returns [NO_ANSWER].
  • always: run the on-topic gate then search the web for every message.
web_search_allowed_domainsstring[] nullable

Beta: plain domains for site:-restricted web search. Empty list = no restriction. Omit to keep current.

web_search_required_keywordsstring[] nullable

Beta: keywords appended to every web-search query. Omit to keep current.

web_search_max_per_conversationinteger nullable

Beta: per-conversation web-search cap (>=0). Omit to keep current.

deep_answers_enabledboolean nullable
auto_translate_messagesboolean nullable
language_detection_strategy'cascade' | 'fixed' nullable

How this bot resolves the language (see AutomationBotCreate). 'cascade' | 'fixed'. Omit on PATCH to preserve the current value; any other value is rejected 422. Because NULL means 'cascade', this cannot be reset to NULL via PATCH -- send 'cascade' to restore the default behaviour.

escalation_enabledboolean nullable
offers_escalationboolean nullable
max_failed_attemptsinteger nullable
handoff_messagestring nullable
no_answer_messagestring nullable
escalation_offer_messagestring nullable
immediate_handoff_thresholdnumber nullable
is_field_collection_modeboolean nullable
calendly_event_type_uristring nullable
offline_escalation_behavior'leave_message' | 'escalate_anyway' | 'continue_bot'

What to do when escalation triggers but no agents are online (live chat)

offline_messagestring nullable
outside_hours_messagestring nullable
is_escalation_schedule_enabledboolean nullable
escalation_timezonestring nullable
escalation_tag_idstring nullable
escalation_routing_strategy'notify_only' | 'round_robin' | 'least_busy' | 'round_robin_all' | 'least_busy_all'

"Assignment on handoff" for a bot escalation (field value null = keep the conversation unassigned).

By tag (escalation_tag_id REQUIRED, RoutingService.route_to_tag): notify_only tags the conversation and alerts the tag holders; round_robin / least_busy also auto-assign an UNASSIGNED conversation to an eligible tag holder. All members (NO tag — a stored tag is cleared, RoutingService.route_to_all): round_robin_all / least_busy_all. Never reassigns. Values are a frozen cross-agent contract.

escalation_fallback_minutesinteger nullable
max_email_repliesinteger nullable
is_email_reply_modeboolean nullable
coexist_bot_idstring nullable
coexist_modestring nullable
base_languagestring nullable
translation_cacheobject nullable
greeting_buttons_enabledboolean nullable
greeting_human_button_captionstring nullable

Caption for the 'Talk to Human' button. Omit to keep current value; NULL = localized default.

greeting_continue_button_captionstring nullable

Caption for the 'Ask the bot' button. Omit to keep current value; NULL = localized default.

greeting_continue_ack_messagestring nullable

Acknowledgement message sent after tapping 'Ask the bot'. Omit to keep current value; NULL = localized default.

source_footer_enabledboolean nullable
source_footer_mode'urls_only' | 'urls_and_kb' nullable

Which sources to list: 'urls_only' or 'urls_and_kb'. Omit to keep current value.

source_link_paramsobject nullable

Per-channel query params appended to source links, keyed by channel_type with an optional 'default' key. Shape: {channel_type: {param_name: template_string}}. Omit to keep current value.

kb_live_refresh_mode'off' | 'always_live' | 'cached_ttl' | 'live_once' nullable

KB live-refresh mode: 'off' | 'always_live' | 'cached_ttl' | 'live_once'. Omit to keep current value.

kb_live_refresh_ttl_secondsinteger nullable

Cache TTL in seconds, only meaningful when kb_live_refresh_mode == 'cached_ttl'. Omit to keep current value.

Response

Successful Response

idstring required
tenant_idstring required
namestring required
bot_type'assistant' | 'support' | 'router' | 'sales' | 'lead_qualification' | 'faq' | 'appointment' | 'keyword' | 'email_support' | 'agent' required

Type of automation bot.

'assistant' is the preferred value for new bots (Phase 2 consolidation). All legacy values remain valid for backwards compatibility.

is_activeboolean required
priorityinteger
personality_promptstring nullable
greeting_messagestring nullable
escalation_keywordsstring[] nullable
display_namestring nullable
avatar_urlstring nullable
ai_disclosure_messagestring nullable
ai_disclosure_include_escalationboolean
is_kb_only_modeboolean required
response_languagestring nullable
confidence_thresholdnumber required
is_detailed_responseboolean
use_full_conversation_contextboolean
vision_enabledboolean
web_search_modestring nullable
web_search_allowed_domainsstring[] nullable
web_search_required_keywordsstring[] nullable
web_search_max_per_conversationinteger nullable
deep_answers_enabledboolean
auto_translate_messagesboolean
language_detection_strategystring nullable
escalation_enabledboolean
offers_escalationboolean required
max_failed_attemptsinteger required
handoff_messagestring nullable
no_answer_messagestring nullable
escalation_offer_messagestring nullable
immediate_handoff_thresholdnumber nullable
required_fieldsobject[] nullable
routing_configobject nullable
is_field_collection_modeboolean
calendly_event_type_uristring nullable
offline_escalation_behavior'leave_message' | 'escalate_anyway' | 'continue_bot'

What to do when escalation triggers but no agents are online (live chat)

offline_messagestring nullable
outside_hours_messagestring nullable
is_escalation_schedule_enabledboolean
escalation_timezonestring
escalation_scheduleobject[] nullable
escalation_tag_idstring nullable
escalation_routing_strategystring nullable
escalation_fallback_minutesinteger nullable
max_email_repliesinteger
is_email_reply_modeboolean
coexist_bot_idstring nullable
coexist_modestring nullable
base_languagestring nullable
translation_cacheobject nullable
greeting_buttons_enabledboolean
greeting_human_button_captionstring nullable
greeting_continue_button_captionstring nullable
greeting_continue_ack_messagestring nullable
source_footer_enabledboolean
source_footer_modestring nullable
source_link_paramsobject nullable
kb_live_refresh_modestring nullable
kb_live_refresh_ttl_secondsinteger nullable
total_conversationsinteger
total_escalationsinteger
created_atstring date-time required
updated_atstring date-time nullable
activation_rules_countinteger
keyword_triggers_countinteger nullable

Changes

No recorded changes to this operation across all 3 revisions of this API.