Context
Some widgets only make sense in a particular context — for example, a contact-details widget needs a contactId in the URL to have anything to show. Context rules let a widget declare which URL query (search) params it depends on, and the platform uses them to decide when the widget is offered in the Composer's Micro App Library. These params can be required or optional depending on the rule type.
Configuring context
Context is configured in widget-config.json, in the contextRules object under widgetDetails:
{
"widgetDetails": {
"contextRules": {
"type": "dynamic",
"keys": ["contactId", "branchId"]
}
}
}
type selects the matching behavior; keys lists the query params (or patterns) the widget cares about.
Rule types
dynamic
The widget appears if any of the listed params are present — or if none of them are.
{
"contextRules": {
"type": "dynamic",
"keys": ["contactId", "branchId"]
}
}
Appears in the Composer menu when the URL is /dashboard?contactId=…, /dashboard?branchId=…, or a plain /dashboard with none of them.
strict
The widget appears only if all listed params are present.
{
"contextRules": {
"type": "strict",
"keys": ["contactId"]
}
}
Appears only when the URL contains /dashboard?contactId=….
none
The default. The widget doesn't depend on search params and is always available.
{
"contextRules": {
"type": "none"
}
}
Regular expressions
For broader matching, a key can be a regular expression instead of an exact param name:
{
"contextRules": {
"type": "strict",
"keys": ["/^phone/i"]
}
}
Matches /dashboard?phoneNumber=…, /dashboard?phoneNum=…, /dashboard?phoneUser=…, and any other param starting with "phone" (case-insensitive).