query_database
Execute custom queries on Fibery databases using the low-level API to retrieve, filter, and sort entity data with flexible field selection and parameterized conditions.
Instructions
Run any Fibery API command. This gives tremendous flexibility, but requires a bit of experience with the low-level Fibery API. In case query succeeded, return value contains a list of records with fields you specified in select. If request failed, will return detailed error message. Examples (note, that these databases are non-existent, use databases only from user's schema!): Query: What newly created Features do we have for the past 2 months? Tool use: { "q_from": "Dev/Feature", "q_select": { "Name": ["Dev/Name"], "Public Id": ["fibery/public-id"], "Creation Date": ["fibery/creation-date"] }, "q_where": [">", ["fibery/creation-date"], "$twoMonthsAgo"], "q_order_by": {"fibery/creation-date": "q/desc"}, "q_limit": 100, "q_offset": 0, "q_params": { $twoMonthsAgo: "2025-01-16T00:00:00.000Z" } }
Query: What Admin Tasks for the past week are Approval or Done? Tool use: { "q_from": "Administrative/Admin Task", "q_select": { "Name": ["Administrative/Name"], "Public Id": ["fibery/public-id"], "Creation Date": ["fibery/creation-date"], "State": ["workflow/state", "enum/name"] }, "q_where": [ "q/and", # satisfy time AND states condition [">", ["fibery/creation-date"], "$oneWeekAgo"], [ "q/or", # nested or, since entity can be in either of these states ["=", ["workflow/state", "enum/name"], "$state1"], ["=", ["workflow/state", "enum/name"], "$state2"] ] ], "q_order_by": {"fibery/creation-date": "q/desc"}, "q_limit": 100, "q_offset": 0, "q_params": { # notice that parameters used in "where" are always passed in params! $oneWeekAgo: "2025-03-07T00:00:00.000Z", $state1: "Approval", $state2: "Done" } }
Query: What Admin Tasks for the past week are Approval or Done? Tool use: { "q_from": "Administrative/Admin Task", "q_select": { "State": ["workflow/state", "enum/name"], "Public Id": ["fibery/public-id"], "Creation Date": ["fibery/creation-date"], "Modification Date": ["fibery/modification-date"], "Deadline": ["Administrative/Deadline"], "Group": ["Administrative/Group", "Administrative/name"], "Name": ["Administrative/Name"], "Priority": ["Administrative/Priority_Administrative/Admin Task", "enum/name"] }, "q_where": ["!=", ["workflow/state", "workflow/Final"], "$stateType"], # Administrative/Admin Task is not "Finished" yet "q_order_by": {"fibery/creation-date": "q/desc"}, "q_limit": 100, "q_offset": 0, "q_params: { "$stateType": true } }
Query: Summarize acc contacts with public id 1. Tool use: { "q_from": "Accounting/Acc Contacts", "q_select": { "Name": ["Accounting/Name"], "Public Id": ["fibery/public-id"], "Creation Date": ["fibery/creation-date"], "Description": ["Accounting/Description"] }, "q_where": ["=", ["fibery/public-id"], "$publicId"], "q_limit": 1, "q_params": { $publicId: "1", } }
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| q_from | Yes | Specifies the entity type in "Space/Type" format (e.g., "Product Management/feature", "Product Management/Insight") | |
| q_select | Yes | Defines what fields to retrieve. Can include: - Primitive fields using format {"AliasName": "FieldName"} (i.e. {"Name": "Product Management/Name"}) - Related entity fields using format {"AliasName": ["Related entity", "related entity field"]} (i.e. {"Secret": ["Product Management/Description", "Collaboration~Documents/secret"]}). Careful, does not work with 1-* connection! To work with 1-* relationships, you can use sub-querying: {"AliasName": {"q/from": "Related type", "q/select": {"AliasName 2": "fibery/id"}, "q/limit": 50}} AliasName can be of any arbitrary value. | |
| q_where | No | Filter conditions in format [operator, [field_path], value] or ["q/and"|"q/or", ...conditions]. Common usages: - Simple comparison: ["=", ["field", "path"], "$param"]. You cannot pass value of $param directly in where clause. Use params object instead. Pay really close attention to it as it is not common practice, but that's how it works in our case! - Logical combinations: ["q/and", ["<", ["field1"], "$param1"], ["=", ["field2"], "$param2"]] - Available operators: =, !=, <, <=, >, >=, q/contains, q/not-contains, q/in, q/not-in | |
| q_order_by | No | List of sorting criteria in format {"field1": "q/asc", "field2": "q/desc"} | |
| q_limit | No | Number of results per page (defaults to 50). Maximum allowed value is 1000 | |
| q_offset | No | Number of results to skip. Mainly used in combination with limit and orderBy for pagination. | |
| q_params | No | Dictionary of parameter values referenced in where using "$param" syntax. For example, {$fromDate: "2025-01-01"} |