Using Flatfile query language
Learn how to filter data in Sheets with FFQL.
The DevXP engineering team hosts office hours every Thursday at 11 a.m. Pacific Time where we answer your questions live and help you get up and running with Flatfile. Join us!
The DevXP engineering team hosts office hours every Thursday at 11 a.m. Pacific Time where we answer your questions live and help you get up and running with Flatfile. Join us!
FFQL (Flatfile Query Language) is Flatfile’s custom query language used for filtering data in . It’s logical, composable, and human-readable.
Overview
Search by value
Here’s an example request for searching for rows where the First Name column is “Bender” and the Last Name column is “Rodriguez”.
Search for null
Here’s an example request for searching for rows where the First Name column is null.
Syntax
The basic syntax of FFQL is:
Field Name
field name
is optional and excluding a field name will search across all fields. For example: eq "Planet Express"
will search across all fields for that value.
field name
can be the field key or the field label.
Labels or values with spaces should be wrapped in quotes. For example: name eq "Bender Rodriguez"
, or "First Name" eq Bender
.
Operators
FFQL operators are:
eq
- Equals (exact match)ne
- Not Equallt
- Less Thangt
- Greater Thanlte
- Less Than or Equal Togte
- Greater Than or Equal Tolike
- (Case Sensitive) Likeilike
- (Case Insensitive) Likecontains
- Contains (for columns of typestring-list
andenum-list
)
Both like
and ilike
support the following wildcards:
%
- Matches any number of characters_
- Matches a single character
So, for instance, like "Bender%"
would match “Bender Rodriguez” and “Bender Bending Rodriguez”.
Logical Operators
FFQL supports two logical operators:
and
- Returns rows meeting both conditionsor
- Returns rows meeting either conditions (inclusive)
The is
Operator
You can query for message statuses by using the is
operator. For example: is error
returns all the rows in an error
state. is valid
returns all the rows in a valid
state. first_name is error
returns the rows where First Name is in an error
state.
Constructing Queries
Complex queries are possible using a combination of operators:
This query would return all the rows that:
- Have a Gmail email address,
- Have a Subscription Status of “On-Hold” or “Pending”,
- And have more than 5 login attempts.
Usage
Via search bar
From the search bar in a Workbook, prepend filter: to your FFQL query.
Via API
FFQL queries can be passed to any endpoint that supports the q
parameter.
Here’s an example cURL request using the sheets/<sheetId>/records
endpoint:
Make sure to encode percent characters if you use them.