Update an Apple Messages for Business routing rule
PATCH
/v1/amb/routing-rules/{routing_rule_id}
const result = await bird.amb.routingRules.update(
"arr_01krdgeqcxet5s7t44vh8rt9mg",
{ queue: "sales", precedence: 0, is_default: false },
);
console.log(result);result = client.amb.routing_rules.update('arr_01krdgeqcxet5s7t44vh8rt9mg', queue='sales', precedence=0, is_default=False)
print(result)result, err := client.Amb.RoutingRules.Update(ctx, "arr_01krdgeqcxet5s7t44vh8rt9mg", bird.AmbRoutingRulesUpdateParams{Queue: bird.Ptr("sales"), Precedence: bird.Ptr(0), IsDefault: bird.Ptr(false)})
if err != nil {
log.Fatal(err)
}
fmt.Println(result)$bird->amb->routingRules->update('arr_01krdgeqcxet5s7t44vh8rt9mg', (new Model\AMBRoutingRuleUpdate())->setQueue('sales')->setPrecedence(0)->setIsDefault(false));bird amb routing-rules update <routing-rule-id> --precedence 20curl -X PATCH "https://us1.platform.bird.com/v1/amb/routing-rules/{routing_rule_id}" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"precedence": 20
}'Response200
{
"created_at": "2026-05-20T09:14:52Z",
"updated_at": "2026-05-25T16:42:01Z",
"id": "arr_01krdgeqcxet5s7t44vh8rt9mg",
"business_id": "abz_01krdgeqcxet5s7t44vh8rt9mg",
"match_kind": "intent",
"match_intent_id": "order_status",
"match_group_id": "support",
"queue": "billing",
"precedence": 10,
"is_default": false
}
Changes a routing rule's queue, precedence, or default status. What it matches is fixed once created; to change that, delete this rule and create another. Setting is_default to true while the business already has a different default rule returns a 409.
Parameters
routing_rule_id
string
Request Payload
queue
string
Change the queue this rule files a matching conversation into. What the rule matches is fixed once created; to change that, delete this rule and create another.
precedence
integer
Change this rule's evaluation order among the business's other rules.
is_default
boolean
Set to true to make this the rule that catches a conversation matching nothing else, or to false to stop it from being the default. Setting it true while the business already has a different default rule returns a 409.
Response Payload
created_at
string
required
updated_at
string
required
id
string
required
Unique identifier for the routing rule.
business_id
string
required
The Apple Messages for Business brand this rule belongs to.
match_kind
string
required
What a routing rule matches against the entry point that started the conversation.
- intent matches on the entry point's intent alone: match_intent_id is set and match_group_id is null.
- group matches on the entry point's group alone: match_group_id is set and match_intent_id is null.
- both matches only when the entry point carries the given intent and the given group together, so match_intent_id and match_group_id are both set. There are two match fields rather than one because both needs to carry an intent and a group at once.
Possible values: intent, group, both
match_intent_id
nullable string
The entry point intent this rule matches, as sent in Apple's intentID. Set when match_kind is intent or both, null when it is group.
match_group_id
nullable string
The entry point group this rule matches, as sent in Apple's groupID. Set when match_kind is group or both, null when it is intent.
queue
string
required
The queue a matching conversation is filed into. A queue is a label your console filters by rather than a resource you create ahead of time, so any value routes.
precedence
integer
required
Evaluation order among this business's rules. The highest-precedence rule a conversation matches wins; rules tied on precedence are evaluated by their id.
is_default
boolean
required
Whether this rule catches a conversation that matches nothing else. A business has at most one. A conversation created or reopened while none exists routes to an empty queue, which the console lists as unrouted.
Related resources
Continue with the documentation, guides and examples for this topic. Resources are in English.
Understand the conceptShould I use a Bird SDK or call the API directly?Follow the learning pathBuild your first integrationImplementation guideSend your first email
Get an implementation brief