Filtering lets you ask for only the rows that match a condition.
The Universal API uses one query parameter for filters: where. You write the filter as an RSQL expression, and MindCloud translates it into the filtering shape supported by the selected app action.
| Control | What it does |
|---|---|
where | Filters list results before they are returned. |
where is a query parameter on the Universal API request. It is not an action argument, and it does not go inside the JSON body.
Filtering only applies when the selected action explicitly supports it. If an action page does not show a Filters section, that action does not accept where.
For a GET action, add where next to the other query parameters:
curl --request GET \
--url "https://embedded.mindcloud.co/v1/universal/slack/latest/actions/list-users" \
--header "Authorization: Bearer $MINDCLOUD_API_KEY" \
--get \
--data-urlencode "connectionId=$CONNECTION_ID" \
--data-urlencode "where=name=like=*dan*"For a POST, PUT, or PATCH action, connectionId still goes in the body, but where stays in the URL:
curl --request POST \
--url "https://embedded.mindcloud.co/v1/universal/slack/latest/actions/search-users?where=name=like=*dan*" \
--header "Authorization: Bearer $MINDCLOUD_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"connectionId": "$CONNECTION_ID",
"query": "engineering"
}'Use the operator that matches the comparison you want to make.
| Operator | Meaning | Example |
|---|---|---|
== | Equals | status==active |
!= | Does not equal | status!=archived |
> | Greater than | createdAt>2026-01-01 |
>= | Greater than or equal to | createdAt>=2026-01-01 |
< | Less than | createdAt<2026-02-01 |
<= | Less than or equal to | createdAt<=2026-02-01 |
=like= | Contains text | name=like=*dan* |
=like= accepts * as a wildcard in the public filter expression. MindCloud normalizes the value before sending it to the action layer.
Use ; for AND:
status==active;name=like=*dan*
This means: return rows where status is active and name contains dan.
Use , for OR when the action supports advanced filtering:
status==active,status==pending
This means: return rows where status is either active or pending.
You can group conditions with parentheses:
(status==active,status==pending);createdAt>=2026-01-01
This means: return active or pending rows created on or after January 1, 2026.
Filter fields must match the fields supported by the action. Use the action page as the source of truth.
For example, if an action supports filtering by name and createdAt, this works:
name=like=*sales*;createdAt>=2026-01-01
If the expression uses a field the action does not support, MindCloud does not send that filter expression to the provider. Keep filters tied to the action's documented fields.
Your code sends one where expression. MindCloud parses it, checks that filtering is enabled for the app API and action, and maps the filter into the provider request.
For simple filters, MindCloud can send a flat filter list. For actions with advanced filtering enabled, MindCloud can preserve nested AND and OR groups. Either way, your request shape stays the same.
Choose an app to see the actions that support filtering for that app version.
Open Slack list users