Skip to main content
PATCH
/
api
/
v1
/
agents
/
{uuid}
/
routing-rules
/
{ruleUuid}
Partially update ONE routing rule
curl --request PATCH \
  --url https://{subdomain}.mihu.ai/api/v1/agents/{uuid}/routing-rules/{ruleUuid} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "is_active": false,
  "priority": 5
}
'
{
  "data": {
    "agent_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "name": "<string>",
    "description": "<string>",
    "company_name": "<string>",
    "role": "<string>",
    "objective": "<string>",
    "tone": "<string>",
    "behavior_guidelines": "<string>",
    "company_service": "<string>",
    "topic": "<string>",
    "length_detail": "<string>",
    "interest_of_product": "<string>",
    "negative_response": "<string>",
    "status": "pending",
    "custom_prompt": "<string>",
    "language": "<string>",
    "speed": "<string>",
    "timezone": "<string>",
    "appointment_scheduling_enabled": true,
    "appointment_scheduling_randomly": true,
    "custom_llm_url": "<string>",
    "recommendations": "<string>",
    "settings": {
      "voice": {},
      "text": {},
      "memorize": {},
      "evaluation": {}
    },
    "guidelines": [
      {
        "uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "content": "Always confirm vehicle VIN or license plate before creating a service appointment.",
        "order": 0
      }
    ],
    "notes": [
      {
        "uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "content": "Service appointments take 60-90 minutes for standard maintenance, 2-4 hours for warranty work. Same-day pickup is available before 4 PM.",
        "order": 0
      }
    ],
    "procedures": [
      {
        "uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "name": "Book service appointment",
        "description": "Used when the customer wants to schedule a service appointment for their vehicle.",
        "steps": [
          {
            "order": 1,
            "description": "Ask the customer for their vehicle license plate or VIN.",
            "intent_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
          }
        ]
      }
    ],
    "training": [
      {
        "uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "content": "What does Volvo's standard warranty cover?",
        "intent": "warranty_inquiry",
        "response": "Volvo's standard warranty covers 4 years or 100,000 km, whichever comes first, including parts and labor at any authorized service center. Would you like the details for your specific model?"
      }
    ],
    "intents": [
      {
        "intent_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "key": "<string>",
        "name": "<string>",
        "description": "<string>",
        "recommendation_actions": "<string>",
        "confidence_threshold": 123,
        "is_system": true,
        "intent_llm_handle_by_response": true,
        "webhook": {
          "url": "<string>",
          "auth_token": "<string>"
        },
        "parameters": [
          {
            "key": "email",
            "default": "<string>",
            "type": "string",
            "required": true
          }
        ],
        "created_at": "2023-11-07T05:31:56Z",
        "updated_at": "2023-11-07T05:31:56Z"
      }
    ],
    "webhooks": [
      {
        "webhook_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "url": "<string>",
        "events": [
          "conversation_status"
        ],
        "is_active": true,
        "has_secret": true,
        "created_at": "2023-11-07T05:31:56Z",
        "updated_at": "2023-11-07T05:31:56Z"
      }
    ],
    "appointments": {},
    "routing_rules": [
      {
        "uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "detection_mode": "intent",
        "trigger_keyword": "sales",
        "department_name": "Sales Department",
        "phrases": [
          "I want to talk to sales"
        ],
        "ai_prompt": "Detect when the customer wants to speak with the sales team — they may ask about pricing, new products, quotes, or directly mention sales.",
        "voice_response": "Sure, I'll transfer you to our sales team now. One moment please.",
        "voice_on_error": "I'm sorry, I couldn't reach sales right now. Please call back later or leave a message.",
        "voice_on_success": "You've been successfully connected. Have a great day.",
        "destination_type": "extension",
        "destination": "101",
        "destination_agent_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "transfer_type": "transfer_call",
        "transfer_config": {},
        "priority": 1,
        "is_active": true
      }
    ],
    "guard_rules": [
      {
        "uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "name": "Legal complaint escalation",
        "when_condition": "Customer mentions a legal complaint, lawyer, lawsuit, or threatens to take legal action.",
        "example_phrases": [
          "I'm calling my lawyer about this"
        ],
        "then_action": "forward",
        "selected_channels": [
          "phone"
        ],
        "say_before_forwarding": "I understand this is important — let me connect you with someone who can help.",
        "say_before_end": "I'm sorry I couldn't help further. Please contact our team directly. Goodbye.",
        "destination_type": "extension",
        "destination": "<string>",
        "destination_agent_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "is_active": true,
        "is_default": false
      }
    ],
    "phone_numbers": [
      {
        "phone_number_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "number": "<string>",
        "status": "active",
        "country_code": "<string>",
        "type": "<string>",
        "capabilities": {
          "call": true,
          "sms": true,
          "whatsapp": true,
          "whatsapp_call": true
        }
      }
    ],
    "channels": [
      {}
    ],
    "created_at": "2023-11-07T05:31:56Z",
    "updated_at": "2023-11-07T05:31:56Z"
  }
}

Documentation Index

Fetch the complete documentation index at: https://developers.mindhunters.ai/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

Use a Bearer token to access these API endpoints. Example: "Bearer {your-token}"

Path Parameters

uuid
string<uuid>
required
ruleUuid
string<uuid>
required

Body

application/json

Routing rules tell the runtime agent when and how to transfer a call to another extension, phone number, or agent (the IVR equivalent). The runtime AI relies on ai_prompt and phrases to decide whether a customer utterance should trigger this rule — assignments without those fields will never fire.

detection_mode
enum<string>

How the AI matches customer utterances to this rule. exact = literal keyword (fast but narrow), intent = AI semantic understanding (broader, recommended), both = combine for max accuracy.

Available options:
exact,
intent,
both
Example:

"intent"

trigger_keyword
string | null

Literal keyword that triggers exact/both matching. Required when detection_mode is exact or both.

Example:

"sales"

department_name
string | null

Human-readable label for this rule. Helps you and the AI identify what the rule is for.

Example:

"Sales Department"

phrases
string[]

Example customer utterances that should trigger this rule. The runtime AI uses these as training signal when detection_mode includes intent matching. Provide 3-5 varied phrasings.

ai_prompt
string | null

Required for intent-based matching. Natural-language instructions the runtime AI uses to decide whether a customer utterance matches this rule. Without this field set, intent and both detection modes have no guidance to act on, so the rule will never trigger. Always provide concrete instructions describing what customer intent should fire this rule.

Example:

"Detect when the customer wants to speak with the sales team — they may ask about pricing, new products, quotes, or directly mention sales."

voice_response
string

Message the runtime agent speaks to the customer immediately before initiating the transfer. Required.

Example:

"Sure, I'll transfer you to our sales team now. One moment please."

voice_on_error
string | null

Spoken when the transfer fails (busy, no answer, error). Recommended.

Example:

"I'm sorry, I couldn't reach sales right now. Please call back later or leave a message."

voice_on_success
string | null

Spoken when the transfer completes successfully (typically only used for warm/ping-and-transfer modes).

Example:

"You've been successfully connected. Have a great day."

destination_type
enum<string> | null

Where the call is sent. extension = SIP extension or URI (e.g. '101' or 'sip:101@domain.com'), phone = external phone number in E.164, agent = another mihu agent (set destination_agent_uuid).

Available options:
extension,
phone,
agent
Example:

"extension"

destination
string | null

The actual destination value. Format depends on destination_type: extension number, SIP URI, or E.164 phone. Ignored when destination_type=agent.

Example:

"101"

destination_agent_uuid
string<uuid> | null

UUID of the target agent. Required when destination_type=agent.

transfer_type
enum<string>

Telephony transfer mechanism. transfer_call = default transfer (recommended for most cases). forward_call = simple forwarding. warm_transfer_call = the agent stays on the line and announces the caller before connecting. blind_transfer_call = hang up the moment the destination rings. ping_and_transfer_call = the agent briefly announces the caller, then transfers.

Available options:
transfer_call,
forward_call,
warm_transfer_call,
blind_transfer_call,
ping_and_transfer_call
Example:

"transfer_call"

transfer_config
object

Optional telephony-provider-specific configuration. Free-form key/value map; consult provider docs for accepted keys.

priority
integer

Match priority. Lower numbers run first when multiple rules could match the same utterance.

Example:

1

is_active
boolean
Example:

true

Response

Routing rule updated

data
object