curl --request PATCH \
--url https://{subdomain}.mihu.ai/api/v1/workspace/queue/{uuid}/routings/{routing} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "All conditional routing examples",
"rules": [
{
"channel_assignment": "a236d8e6-4e4a-419f-9920-7a24b5b01431",
"if": {
"trigger": "wait",
"seconds": 30
},
"then": {
"ai_agent": "cef3069b-9cbb-4c8d-a593-4bde4c8d0a3f"
}
},
{
"channel_assignment": "a236d8e6-4e4a-419f-9920-7a24b5b01431",
"if": {
"trigger": "unanswered"
},
"then": {
"ai_agent": "eda19d37-23aa-4778-b43a-e7ca274e5fdb"
}
},
{
"channel_assignment": "a236d8e6-4e4a-419f-9920-7a24b5b01431",
"if": {
"trigger": "busy"
},
"then": {
"ai_agent": "6f293cb9-26c6-423e-80e8-f90d39b0cd3b"
}
},
{
"channel_assignment": "a236d8e6-4e4a-419f-9920-7a24b5b01431",
"if": {
"trigger": "offhours"
},
"then": {
"ai_agent": "8b50ed5a-09c1-49db-a5e0-c022c11c3f07"
}
},
{
"channel_assignment": "a236d8e6-4e4a-419f-9920-7a24b5b01431",
"if": {
"trigger": "keyword",
"keyword": "refund"
},
"then": {
"ai_agent": "cef3069b-9cbb-4c8d-a593-4bde4c8d0a3f"
}
},
{
"channel_assignment": "a236d8e6-4e4a-419f-9920-7a24b5b01431",
"if": {
"trigger": "contact",
"field": "email",
"operator": "contains",
"value": "@enterprise.com"
},
"then": {
"ai_agent": "eda19d37-23aa-4778-b43a-e7ca274e5fdb"
}
}
]
}
'import requests
url = "https://{subdomain}.mihu.ai/api/v1/workspace/queue/{uuid}/routings/{routing}"
payload = {
"name": "All conditional routing examples",
"rules": [
{
"channel_assignment": "a236d8e6-4e4a-419f-9920-7a24b5b01431",
"if": {
"trigger": "wait",
"seconds": 30
},
"then": { "ai_agent": "cef3069b-9cbb-4c8d-a593-4bde4c8d0a3f" }
},
{
"channel_assignment": "a236d8e6-4e4a-419f-9920-7a24b5b01431",
"if": { "trigger": "unanswered" },
"then": { "ai_agent": "eda19d37-23aa-4778-b43a-e7ca274e5fdb" }
},
{
"channel_assignment": "a236d8e6-4e4a-419f-9920-7a24b5b01431",
"if": { "trigger": "busy" },
"then": { "ai_agent": "6f293cb9-26c6-423e-80e8-f90d39b0cd3b" }
},
{
"channel_assignment": "a236d8e6-4e4a-419f-9920-7a24b5b01431",
"if": { "trigger": "offhours" },
"then": { "ai_agent": "8b50ed5a-09c1-49db-a5e0-c022c11c3f07" }
},
{
"channel_assignment": "a236d8e6-4e4a-419f-9920-7a24b5b01431",
"if": {
"trigger": "keyword",
"keyword": "refund"
},
"then": { "ai_agent": "cef3069b-9cbb-4c8d-a593-4bde4c8d0a3f" }
},
{
"channel_assignment": "a236d8e6-4e4a-419f-9920-7a24b5b01431",
"if": {
"trigger": "contact",
"field": "email",
"operator": "contains",
"value": "@enterprise.com"
},
"then": { "ai_agent": "eda19d37-23aa-4778-b43a-e7ca274e5fdb" }
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'All conditional routing examples',
rules: [
{
channel_assignment: 'a236d8e6-4e4a-419f-9920-7a24b5b01431',
if: {trigger: 'wait', seconds: 30},
then: {ai_agent: 'cef3069b-9cbb-4c8d-a593-4bde4c8d0a3f'}
},
{
channel_assignment: 'a236d8e6-4e4a-419f-9920-7a24b5b01431',
if: {trigger: 'unanswered'},
then: {ai_agent: 'eda19d37-23aa-4778-b43a-e7ca274e5fdb'}
},
{
channel_assignment: 'a236d8e6-4e4a-419f-9920-7a24b5b01431',
if: {trigger: 'busy'},
then: {ai_agent: '6f293cb9-26c6-423e-80e8-f90d39b0cd3b'}
},
{
channel_assignment: 'a236d8e6-4e4a-419f-9920-7a24b5b01431',
if: {trigger: 'offhours'},
then: {ai_agent: '8b50ed5a-09c1-49db-a5e0-c022c11c3f07'}
},
{
channel_assignment: 'a236d8e6-4e4a-419f-9920-7a24b5b01431',
if: {trigger: 'keyword', keyword: 'refund'},
then: {ai_agent: 'cef3069b-9cbb-4c8d-a593-4bde4c8d0a3f'}
},
{
channel_assignment: 'a236d8e6-4e4a-419f-9920-7a24b5b01431',
if: {
trigger: 'contact',
field: 'email',
operator: 'contains',
value: '@enterprise.com'
},
then: {ai_agent: 'eda19d37-23aa-4778-b43a-e7ca274e5fdb'}
}
]
})
};
fetch('https://{subdomain}.mihu.ai/api/v1/workspace/queue/{uuid}/routings/{routing}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{subdomain}.mihu.ai/api/v1/workspace/queue/{uuid}/routings/{routing}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'All conditional routing examples',
'rules' => [
[
'channel_assignment' => 'a236d8e6-4e4a-419f-9920-7a24b5b01431',
'if' => [
'trigger' => 'wait',
'seconds' => 30
],
'then' => [
'ai_agent' => 'cef3069b-9cbb-4c8d-a593-4bde4c8d0a3f'
]
],
[
'channel_assignment' => 'a236d8e6-4e4a-419f-9920-7a24b5b01431',
'if' => [
'trigger' => 'unanswered'
],
'then' => [
'ai_agent' => 'eda19d37-23aa-4778-b43a-e7ca274e5fdb'
]
],
[
'channel_assignment' => 'a236d8e6-4e4a-419f-9920-7a24b5b01431',
'if' => [
'trigger' => 'busy'
],
'then' => [
'ai_agent' => '6f293cb9-26c6-423e-80e8-f90d39b0cd3b'
]
],
[
'channel_assignment' => 'a236d8e6-4e4a-419f-9920-7a24b5b01431',
'if' => [
'trigger' => 'offhours'
],
'then' => [
'ai_agent' => '8b50ed5a-09c1-49db-a5e0-c022c11c3f07'
]
],
[
'channel_assignment' => 'a236d8e6-4e4a-419f-9920-7a24b5b01431',
'if' => [
'trigger' => 'keyword',
'keyword' => 'refund'
],
'then' => [
'ai_agent' => 'cef3069b-9cbb-4c8d-a593-4bde4c8d0a3f'
]
],
[
'channel_assignment' => 'a236d8e6-4e4a-419f-9920-7a24b5b01431',
'if' => [
'trigger' => 'contact',
'field' => 'email',
'operator' => 'contains',
'value' => '@enterprise.com'
],
'then' => [
'ai_agent' => 'eda19d37-23aa-4778-b43a-e7ca274e5fdb'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{subdomain}.mihu.ai/api/v1/workspace/queue/{uuid}/routings/{routing}"
payload := strings.NewReader("{\n \"name\": \"All conditional routing examples\",\n \"rules\": [\n {\n \"channel_assignment\": \"a236d8e6-4e4a-419f-9920-7a24b5b01431\",\n \"if\": {\n \"trigger\": \"wait\",\n \"seconds\": 30\n },\n \"then\": {\n \"ai_agent\": \"cef3069b-9cbb-4c8d-a593-4bde4c8d0a3f\"\n }\n },\n {\n \"channel_assignment\": \"a236d8e6-4e4a-419f-9920-7a24b5b01431\",\n \"if\": {\n \"trigger\": \"unanswered\"\n },\n \"then\": {\n \"ai_agent\": \"eda19d37-23aa-4778-b43a-e7ca274e5fdb\"\n }\n },\n {\n \"channel_assignment\": \"a236d8e6-4e4a-419f-9920-7a24b5b01431\",\n \"if\": {\n \"trigger\": \"busy\"\n },\n \"then\": {\n \"ai_agent\": \"6f293cb9-26c6-423e-80e8-f90d39b0cd3b\"\n }\n },\n {\n \"channel_assignment\": \"a236d8e6-4e4a-419f-9920-7a24b5b01431\",\n \"if\": {\n \"trigger\": \"offhours\"\n },\n \"then\": {\n \"ai_agent\": \"8b50ed5a-09c1-49db-a5e0-c022c11c3f07\"\n }\n },\n {\n \"channel_assignment\": \"a236d8e6-4e4a-419f-9920-7a24b5b01431\",\n \"if\": {\n \"trigger\": \"keyword\",\n \"keyword\": \"refund\"\n },\n \"then\": {\n \"ai_agent\": \"cef3069b-9cbb-4c8d-a593-4bde4c8d0a3f\"\n }\n },\n {\n \"channel_assignment\": \"a236d8e6-4e4a-419f-9920-7a24b5b01431\",\n \"if\": {\n \"trigger\": \"contact\",\n \"field\": \"email\",\n \"operator\": \"contains\",\n \"value\": \"@enterprise.com\"\n },\n \"then\": {\n \"ai_agent\": \"eda19d37-23aa-4778-b43a-e7ca274e5fdb\"\n }\n }\n ]\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://{subdomain}.mihu.ai/api/v1/workspace/queue/{uuid}/routings/{routing}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"All conditional routing examples\",\n \"rules\": [\n {\n \"channel_assignment\": \"a236d8e6-4e4a-419f-9920-7a24b5b01431\",\n \"if\": {\n \"trigger\": \"wait\",\n \"seconds\": 30\n },\n \"then\": {\n \"ai_agent\": \"cef3069b-9cbb-4c8d-a593-4bde4c8d0a3f\"\n }\n },\n {\n \"channel_assignment\": \"a236d8e6-4e4a-419f-9920-7a24b5b01431\",\n \"if\": {\n \"trigger\": \"unanswered\"\n },\n \"then\": {\n \"ai_agent\": \"eda19d37-23aa-4778-b43a-e7ca274e5fdb\"\n }\n },\n {\n \"channel_assignment\": \"a236d8e6-4e4a-419f-9920-7a24b5b01431\",\n \"if\": {\n \"trigger\": \"busy\"\n },\n \"then\": {\n \"ai_agent\": \"6f293cb9-26c6-423e-80e8-f90d39b0cd3b\"\n }\n },\n {\n \"channel_assignment\": \"a236d8e6-4e4a-419f-9920-7a24b5b01431\",\n \"if\": {\n \"trigger\": \"offhours\"\n },\n \"then\": {\n \"ai_agent\": \"8b50ed5a-09c1-49db-a5e0-c022c11c3f07\"\n }\n },\n {\n \"channel_assignment\": \"a236d8e6-4e4a-419f-9920-7a24b5b01431\",\n \"if\": {\n \"trigger\": \"keyword\",\n \"keyword\": \"refund\"\n },\n \"then\": {\n \"ai_agent\": \"cef3069b-9cbb-4c8d-a593-4bde4c8d0a3f\"\n }\n },\n {\n \"channel_assignment\": \"a236d8e6-4e4a-419f-9920-7a24b5b01431\",\n \"if\": {\n \"trigger\": \"contact\",\n \"field\": \"email\",\n \"operator\": \"contains\",\n \"value\": \"@enterprise.com\"\n },\n \"then\": {\n \"ai_agent\": \"eda19d37-23aa-4778-b43a-e7ca274e5fdb\"\n }\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{subdomain}.mihu.ai/api/v1/workspace/queue/{uuid}/routings/{routing}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"All conditional routing examples\",\n \"rules\": [\n {\n \"channel_assignment\": \"a236d8e6-4e4a-419f-9920-7a24b5b01431\",\n \"if\": {\n \"trigger\": \"wait\",\n \"seconds\": 30\n },\n \"then\": {\n \"ai_agent\": \"cef3069b-9cbb-4c8d-a593-4bde4c8d0a3f\"\n }\n },\n {\n \"channel_assignment\": \"a236d8e6-4e4a-419f-9920-7a24b5b01431\",\n \"if\": {\n \"trigger\": \"unanswered\"\n },\n \"then\": {\n \"ai_agent\": \"eda19d37-23aa-4778-b43a-e7ca274e5fdb\"\n }\n },\n {\n \"channel_assignment\": \"a236d8e6-4e4a-419f-9920-7a24b5b01431\",\n \"if\": {\n \"trigger\": \"busy\"\n },\n \"then\": {\n \"ai_agent\": \"6f293cb9-26c6-423e-80e8-f90d39b0cd3b\"\n }\n },\n {\n \"channel_assignment\": \"a236d8e6-4e4a-419f-9920-7a24b5b01431\",\n \"if\": {\n \"trigger\": \"offhours\"\n },\n \"then\": {\n \"ai_agent\": \"8b50ed5a-09c1-49db-a5e0-c022c11c3f07\"\n }\n },\n {\n \"channel_assignment\": \"a236d8e6-4e4a-419f-9920-7a24b5b01431\",\n \"if\": {\n \"trigger\": \"keyword\",\n \"keyword\": \"refund\"\n },\n \"then\": {\n \"ai_agent\": \"cef3069b-9cbb-4c8d-a593-4bde4c8d0a3f\"\n }\n },\n {\n \"channel_assignment\": \"a236d8e6-4e4a-419f-9920-7a24b5b01431\",\n \"if\": {\n \"trigger\": \"contact\",\n \"field\": \"email\",\n \"operator\": \"contains\",\n \"value\": \"@enterprise.com\"\n },\n \"then\": {\n \"ai_agent\": \"eda19d37-23aa-4778-b43a-e7ca274e5fdb\"\n }\n }\n ]\n}"
response = http.request(request)
puts response.read_bodyUpdate a queue routing
Send name only for a name change, or include rules to replace the ordered rule list.
curl --request PATCH \
--url https://{subdomain}.mihu.ai/api/v1/workspace/queue/{uuid}/routings/{routing} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "All conditional routing examples",
"rules": [
{
"channel_assignment": "a236d8e6-4e4a-419f-9920-7a24b5b01431",
"if": {
"trigger": "wait",
"seconds": 30
},
"then": {
"ai_agent": "cef3069b-9cbb-4c8d-a593-4bde4c8d0a3f"
}
},
{
"channel_assignment": "a236d8e6-4e4a-419f-9920-7a24b5b01431",
"if": {
"trigger": "unanswered"
},
"then": {
"ai_agent": "eda19d37-23aa-4778-b43a-e7ca274e5fdb"
}
},
{
"channel_assignment": "a236d8e6-4e4a-419f-9920-7a24b5b01431",
"if": {
"trigger": "busy"
},
"then": {
"ai_agent": "6f293cb9-26c6-423e-80e8-f90d39b0cd3b"
}
},
{
"channel_assignment": "a236d8e6-4e4a-419f-9920-7a24b5b01431",
"if": {
"trigger": "offhours"
},
"then": {
"ai_agent": "8b50ed5a-09c1-49db-a5e0-c022c11c3f07"
}
},
{
"channel_assignment": "a236d8e6-4e4a-419f-9920-7a24b5b01431",
"if": {
"trigger": "keyword",
"keyword": "refund"
},
"then": {
"ai_agent": "cef3069b-9cbb-4c8d-a593-4bde4c8d0a3f"
}
},
{
"channel_assignment": "a236d8e6-4e4a-419f-9920-7a24b5b01431",
"if": {
"trigger": "contact",
"field": "email",
"operator": "contains",
"value": "@enterprise.com"
},
"then": {
"ai_agent": "eda19d37-23aa-4778-b43a-e7ca274e5fdb"
}
}
]
}
'import requests
url = "https://{subdomain}.mihu.ai/api/v1/workspace/queue/{uuid}/routings/{routing}"
payload = {
"name": "All conditional routing examples",
"rules": [
{
"channel_assignment": "a236d8e6-4e4a-419f-9920-7a24b5b01431",
"if": {
"trigger": "wait",
"seconds": 30
},
"then": { "ai_agent": "cef3069b-9cbb-4c8d-a593-4bde4c8d0a3f" }
},
{
"channel_assignment": "a236d8e6-4e4a-419f-9920-7a24b5b01431",
"if": { "trigger": "unanswered" },
"then": { "ai_agent": "eda19d37-23aa-4778-b43a-e7ca274e5fdb" }
},
{
"channel_assignment": "a236d8e6-4e4a-419f-9920-7a24b5b01431",
"if": { "trigger": "busy" },
"then": { "ai_agent": "6f293cb9-26c6-423e-80e8-f90d39b0cd3b" }
},
{
"channel_assignment": "a236d8e6-4e4a-419f-9920-7a24b5b01431",
"if": { "trigger": "offhours" },
"then": { "ai_agent": "8b50ed5a-09c1-49db-a5e0-c022c11c3f07" }
},
{
"channel_assignment": "a236d8e6-4e4a-419f-9920-7a24b5b01431",
"if": {
"trigger": "keyword",
"keyword": "refund"
},
"then": { "ai_agent": "cef3069b-9cbb-4c8d-a593-4bde4c8d0a3f" }
},
{
"channel_assignment": "a236d8e6-4e4a-419f-9920-7a24b5b01431",
"if": {
"trigger": "contact",
"field": "email",
"operator": "contains",
"value": "@enterprise.com"
},
"then": { "ai_agent": "eda19d37-23aa-4778-b43a-e7ca274e5fdb" }
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'All conditional routing examples',
rules: [
{
channel_assignment: 'a236d8e6-4e4a-419f-9920-7a24b5b01431',
if: {trigger: 'wait', seconds: 30},
then: {ai_agent: 'cef3069b-9cbb-4c8d-a593-4bde4c8d0a3f'}
},
{
channel_assignment: 'a236d8e6-4e4a-419f-9920-7a24b5b01431',
if: {trigger: 'unanswered'},
then: {ai_agent: 'eda19d37-23aa-4778-b43a-e7ca274e5fdb'}
},
{
channel_assignment: 'a236d8e6-4e4a-419f-9920-7a24b5b01431',
if: {trigger: 'busy'},
then: {ai_agent: '6f293cb9-26c6-423e-80e8-f90d39b0cd3b'}
},
{
channel_assignment: 'a236d8e6-4e4a-419f-9920-7a24b5b01431',
if: {trigger: 'offhours'},
then: {ai_agent: '8b50ed5a-09c1-49db-a5e0-c022c11c3f07'}
},
{
channel_assignment: 'a236d8e6-4e4a-419f-9920-7a24b5b01431',
if: {trigger: 'keyword', keyword: 'refund'},
then: {ai_agent: 'cef3069b-9cbb-4c8d-a593-4bde4c8d0a3f'}
},
{
channel_assignment: 'a236d8e6-4e4a-419f-9920-7a24b5b01431',
if: {
trigger: 'contact',
field: 'email',
operator: 'contains',
value: '@enterprise.com'
},
then: {ai_agent: 'eda19d37-23aa-4778-b43a-e7ca274e5fdb'}
}
]
})
};
fetch('https://{subdomain}.mihu.ai/api/v1/workspace/queue/{uuid}/routings/{routing}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{subdomain}.mihu.ai/api/v1/workspace/queue/{uuid}/routings/{routing}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'All conditional routing examples',
'rules' => [
[
'channel_assignment' => 'a236d8e6-4e4a-419f-9920-7a24b5b01431',
'if' => [
'trigger' => 'wait',
'seconds' => 30
],
'then' => [
'ai_agent' => 'cef3069b-9cbb-4c8d-a593-4bde4c8d0a3f'
]
],
[
'channel_assignment' => 'a236d8e6-4e4a-419f-9920-7a24b5b01431',
'if' => [
'trigger' => 'unanswered'
],
'then' => [
'ai_agent' => 'eda19d37-23aa-4778-b43a-e7ca274e5fdb'
]
],
[
'channel_assignment' => 'a236d8e6-4e4a-419f-9920-7a24b5b01431',
'if' => [
'trigger' => 'busy'
],
'then' => [
'ai_agent' => '6f293cb9-26c6-423e-80e8-f90d39b0cd3b'
]
],
[
'channel_assignment' => 'a236d8e6-4e4a-419f-9920-7a24b5b01431',
'if' => [
'trigger' => 'offhours'
],
'then' => [
'ai_agent' => '8b50ed5a-09c1-49db-a5e0-c022c11c3f07'
]
],
[
'channel_assignment' => 'a236d8e6-4e4a-419f-9920-7a24b5b01431',
'if' => [
'trigger' => 'keyword',
'keyword' => 'refund'
],
'then' => [
'ai_agent' => 'cef3069b-9cbb-4c8d-a593-4bde4c8d0a3f'
]
],
[
'channel_assignment' => 'a236d8e6-4e4a-419f-9920-7a24b5b01431',
'if' => [
'trigger' => 'contact',
'field' => 'email',
'operator' => 'contains',
'value' => '@enterprise.com'
],
'then' => [
'ai_agent' => 'eda19d37-23aa-4778-b43a-e7ca274e5fdb'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{subdomain}.mihu.ai/api/v1/workspace/queue/{uuid}/routings/{routing}"
payload := strings.NewReader("{\n \"name\": \"All conditional routing examples\",\n \"rules\": [\n {\n \"channel_assignment\": \"a236d8e6-4e4a-419f-9920-7a24b5b01431\",\n \"if\": {\n \"trigger\": \"wait\",\n \"seconds\": 30\n },\n \"then\": {\n \"ai_agent\": \"cef3069b-9cbb-4c8d-a593-4bde4c8d0a3f\"\n }\n },\n {\n \"channel_assignment\": \"a236d8e6-4e4a-419f-9920-7a24b5b01431\",\n \"if\": {\n \"trigger\": \"unanswered\"\n },\n \"then\": {\n \"ai_agent\": \"eda19d37-23aa-4778-b43a-e7ca274e5fdb\"\n }\n },\n {\n \"channel_assignment\": \"a236d8e6-4e4a-419f-9920-7a24b5b01431\",\n \"if\": {\n \"trigger\": \"busy\"\n },\n \"then\": {\n \"ai_agent\": \"6f293cb9-26c6-423e-80e8-f90d39b0cd3b\"\n }\n },\n {\n \"channel_assignment\": \"a236d8e6-4e4a-419f-9920-7a24b5b01431\",\n \"if\": {\n \"trigger\": \"offhours\"\n },\n \"then\": {\n \"ai_agent\": \"8b50ed5a-09c1-49db-a5e0-c022c11c3f07\"\n }\n },\n {\n \"channel_assignment\": \"a236d8e6-4e4a-419f-9920-7a24b5b01431\",\n \"if\": {\n \"trigger\": \"keyword\",\n \"keyword\": \"refund\"\n },\n \"then\": {\n \"ai_agent\": \"cef3069b-9cbb-4c8d-a593-4bde4c8d0a3f\"\n }\n },\n {\n \"channel_assignment\": \"a236d8e6-4e4a-419f-9920-7a24b5b01431\",\n \"if\": {\n \"trigger\": \"contact\",\n \"field\": \"email\",\n \"operator\": \"contains\",\n \"value\": \"@enterprise.com\"\n },\n \"then\": {\n \"ai_agent\": \"eda19d37-23aa-4778-b43a-e7ca274e5fdb\"\n }\n }\n ]\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://{subdomain}.mihu.ai/api/v1/workspace/queue/{uuid}/routings/{routing}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"All conditional routing examples\",\n \"rules\": [\n {\n \"channel_assignment\": \"a236d8e6-4e4a-419f-9920-7a24b5b01431\",\n \"if\": {\n \"trigger\": \"wait\",\n \"seconds\": 30\n },\n \"then\": {\n \"ai_agent\": \"cef3069b-9cbb-4c8d-a593-4bde4c8d0a3f\"\n }\n },\n {\n \"channel_assignment\": \"a236d8e6-4e4a-419f-9920-7a24b5b01431\",\n \"if\": {\n \"trigger\": \"unanswered\"\n },\n \"then\": {\n \"ai_agent\": \"eda19d37-23aa-4778-b43a-e7ca274e5fdb\"\n }\n },\n {\n \"channel_assignment\": \"a236d8e6-4e4a-419f-9920-7a24b5b01431\",\n \"if\": {\n \"trigger\": \"busy\"\n },\n \"then\": {\n \"ai_agent\": \"6f293cb9-26c6-423e-80e8-f90d39b0cd3b\"\n }\n },\n {\n \"channel_assignment\": \"a236d8e6-4e4a-419f-9920-7a24b5b01431\",\n \"if\": {\n \"trigger\": \"offhours\"\n },\n \"then\": {\n \"ai_agent\": \"8b50ed5a-09c1-49db-a5e0-c022c11c3f07\"\n }\n },\n {\n \"channel_assignment\": \"a236d8e6-4e4a-419f-9920-7a24b5b01431\",\n \"if\": {\n \"trigger\": \"keyword\",\n \"keyword\": \"refund\"\n },\n \"then\": {\n \"ai_agent\": \"cef3069b-9cbb-4c8d-a593-4bde4c8d0a3f\"\n }\n },\n {\n \"channel_assignment\": \"a236d8e6-4e4a-419f-9920-7a24b5b01431\",\n \"if\": {\n \"trigger\": \"contact\",\n \"field\": \"email\",\n \"operator\": \"contains\",\n \"value\": \"@enterprise.com\"\n },\n \"then\": {\n \"ai_agent\": \"eda19d37-23aa-4778-b43a-e7ca274e5fdb\"\n }\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{subdomain}.mihu.ai/api/v1/workspace/queue/{uuid}/routings/{routing}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"All conditional routing examples\",\n \"rules\": [\n {\n \"channel_assignment\": \"a236d8e6-4e4a-419f-9920-7a24b5b01431\",\n \"if\": {\n \"trigger\": \"wait\",\n \"seconds\": 30\n },\n \"then\": {\n \"ai_agent\": \"cef3069b-9cbb-4c8d-a593-4bde4c8d0a3f\"\n }\n },\n {\n \"channel_assignment\": \"a236d8e6-4e4a-419f-9920-7a24b5b01431\",\n \"if\": {\n \"trigger\": \"unanswered\"\n },\n \"then\": {\n \"ai_agent\": \"eda19d37-23aa-4778-b43a-e7ca274e5fdb\"\n }\n },\n {\n \"channel_assignment\": \"a236d8e6-4e4a-419f-9920-7a24b5b01431\",\n \"if\": {\n \"trigger\": \"busy\"\n },\n \"then\": {\n \"ai_agent\": \"6f293cb9-26c6-423e-80e8-f90d39b0cd3b\"\n }\n },\n {\n \"channel_assignment\": \"a236d8e6-4e4a-419f-9920-7a24b5b01431\",\n \"if\": {\n \"trigger\": \"offhours\"\n },\n \"then\": {\n \"ai_agent\": \"8b50ed5a-09c1-49db-a5e0-c022c11c3f07\"\n }\n },\n {\n \"channel_assignment\": \"a236d8e6-4e4a-419f-9920-7a24b5b01431\",\n \"if\": {\n \"trigger\": \"keyword\",\n \"keyword\": \"refund\"\n },\n \"then\": {\n \"ai_agent\": \"cef3069b-9cbb-4c8d-a593-4bde4c8d0a3f\"\n }\n },\n {\n \"channel_assignment\": \"a236d8e6-4e4a-419f-9920-7a24b5b01431\",\n \"if\": {\n \"trigger\": \"contact\",\n \"field\": \"email\",\n \"operator\": \"contains\",\n \"value\": \"@enterprise.com\"\n },\n \"then\": {\n \"ai_agent\": \"eda19d37-23aa-4778-b43a-e7ca274e5fdb\"\n }\n }\n ]\n}"
response = http.request(request)
puts response.read_bodyAuthorizations
Use a Bearer token to access these API endpoints. Example: "Bearer {your-token}"
Body
Send name only to rename, or include rules to replace the complete ordered rule list.
Queue-wide ordered IF -> THEN routing rules. Rules are evaluated top-down; the first matching rule transfers the conversation to the selected AI agent. Each rule must point to one of this queue's channel assignment uuids. wait requires seconds; keyword requires keyword; contact requires field/operator/value. unanswered, busy, and offhours need no extra client-supplied fields. The only supported THEN action is transfer_to_ai_agent, represented in requests by then.ai_agent.
"Long wait to AI"
q-support, q-sales, q-returns, q-technical Queue-level default SLA
Show child attributes
Show child attributes
Human agents of the queue
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Response
Routing updated