Using Tables in Workflows
Tables can be dynamically updated and managed through workflow actions. These actions allow you to add, update, or manipulate table data as part of an automated workflow.
All Table-related actions can be found under the “Tables” collection in the action panel of the workflow editor
Managing Table Records with Workflow Actions
Blink provides powerful workflow actions that allow you to automate the management of table records. These actions enable you to add, update, retrieve, and delete records dynamically within your workflows.
Add a Record
Add new records to a table by entering field names and values or by providing data in JSON
format.JSON
input supports bulk creation, allowing multiple records to be added simultaneously in a single action.
Add a record to a table by entering the table field name and the table field value.
Parameter | Description |
---|---|
Table | The name of the table. |
Record | Data of record, enter the field name and field value. |
Add a record to a table by entering the table field name and the table field value.
Parameter | Description |
---|---|
Table | The name of the table. |
Record | Data of record, enter the field name and field value. |
Records can be added by inputting values in JSON format. Bulk creation is also supported, allowing the input of a list of JSON objects.
Parameter | Description |
---|---|
Table | The name of the table. |
Record | Data of record, a JSON format containing Key : Value pairs. Can also be a list of JSON objects. |
Create or Update Record
Ensure data consistency by either updating an existing record or creating a new one if no match is found. You can define specific conditions to determine whether a record should be updated or newly inserted. Supports both direct value input and JSON formatting for structured updates.
Create or Update an entire Record in a table by selecting the entire record option.
Note: Please note that if you leave any fields empty in the Create or Update Record action, the existing values in the table will remain unchanged.
Parameter | Description |
---|---|
Table | The name of the table. |
Create or Update Condition | Set the condition for deciding weather to create or update the selected record. |
Record Data Format | Entire Record |
Record | The value of the record you want to create or update |
Use Case Example: Ensuring Accurate Privileged User Access Tracking
Use Case Example: Ensuring Accurate Privileged User Access Tracking
Scenario: You need to track users with privileged access in a security system. If a user is added to the list of privileged users, you want to update their access record; if the user is already on the list, their record should be updated instead of adding a duplicate.
Solution: Use the Create or Update Records action to ensure that any changes to a privileged user’s access rights are properly reflected in the table without creating duplicate record.
In the ‘Create or Update Records’ action, a condition to check for users who already have access listed in the table.
- If the user is not found (i.e., their record does not exist), create a new record with their user ID, access level, and timestamp.
- If the user’s record already exists, update the record with the new access level or other relevant information.
Use Case Example: Tracking Failed Login Attempts for Users
Use Case Example: Tracking Failed Login Attempts for Users
Scenario: You are building a system to monitor user login attempts. If a user fails to log in multiple times within a short period, you want to flag their account as potentially compromised, but you don’t want to duplicate records for each failed attempt.
Solution: Use the Create or Update Records action to update the record for failed login attempts instead of creating a new record for every failure.
Set a condition in the Create or Update Records action to check if the user already has a record of failed login attempts.
- If a failed login attempt is detected and the user has a record, update the record by incrementing the failed attempt counter and updating the timestamp.
- If no record exists for the user’s failed attempt, create a new record with the user’s details and an initial failed attempt count.
Create or Update an entire Record in a table by selecting the entire record option.
Note: Please note that if you leave any fields empty in the Create or Update Record action, the existing values in the table will remain unchanged.
Parameter | Description |
---|---|
Table | The name of the table. |
Create or Update Condition | Set the condition for deciding weather to create or update the selected record. |
Record Data Format | Entire Record |
Record | The value of the record you want to create or update |
Use Case Example: Ensuring Accurate Privileged User Access Tracking
Use Case Example: Ensuring Accurate Privileged User Access Tracking
Scenario: You need to track users with privileged access in a security system. If a user is added to the list of privileged users, you want to update their access record; if the user is already on the list, their record should be updated instead of adding a duplicate.
Solution: Use the Create or Update Records action to ensure that any changes to a privileged user’s access rights are properly reflected in the table without creating duplicate record.
In the ‘Create or Update Records’ action, a condition to check for users who already have access listed in the table.
- If the user is not found (i.e., their record does not exist), create a new record with their user ID, access level, and timestamp.
- If the user’s record already exists, update the record with the new access level or other relevant information.
Use Case Example: Tracking Failed Login Attempts for Users
Use Case Example: Tracking Failed Login Attempts for Users
Scenario: You are building a system to monitor user login attempts. If a user fails to log in multiple times within a short period, you want to flag their account as potentially compromised, but you don’t want to duplicate records for each failed attempt.
Solution: Use the Create or Update Records action to update the record for failed login attempts instead of creating a new record for every failure.
Set a condition in the Create or Update Records action to check if the user already has a record of failed login attempts.
- If a failed login attempt is detected and the user has a record, update the record by incrementing the failed attempt counter and updating the timestamp.
- If no record exists for the user’s failed attempt, create a new record with the user’s details and an initial failed attempt count.
Create or Update a Record in a table by entering values in JSON format.
Note: Please note that if you leave any fields empty in the Create or Update Record action, the existing values in the table will remain unchanged.
Parameter | Description |
---|---|
Table | The name of the table. |
Create or Update Condition | Set the condition for deciding weather to create or update the selected record. |
Record Data Format | JSON |
Record | The value of the record you want to create or update in JSON format |
Use Case Example (JSON Format): Tracking Failed Login Attempts for Users
Use Case Example (JSON Format): Tracking Failed Login Attempts for Users
Scenario: A security system monitors unauthorized attempts to access sensitive files. When a user repeatedly tries to access a restricted file, the system should update the record for that file access attempt with the latest timestamp and IP address, rather than creating multiple entries.
Solution: Use the Create or Update Records action to track unauthorized file access attempts. The action checks if a record exists for a specific combination of user and file; if it does, it updates the record with the latest timestamp and IP address. If no matching record is found, a new record is created.
- If a record exists where the
Name
and theFileID
value matches the requested file, the system will update the record with the latest timestamp and IP address. - If no match is found, it will create a new record for that combination.
Create or update specific records in a table by selecting a particular field to determine which records should be modified.
Parameter | Description |
---|---|
Table | The name of the table. |
Create or Update Condition | Set the condition for deciding weather to create or update the selected field’s record. |
Record Data Format | By Field |
Record By Field | Decide which records in the fields will be updated. If a new record is created, all fields not selected will set their default value. |
Use Case Example: Monitor and Timestamp Failed Logins
Use Case Example: Monitor and Timestamp Failed Logins
Scenario: A company’s security team is monitoring user login activity to detect suspicious behavior. When a user experiences a failed login attempt, the system should capture and update the timestamp of that failure. This helps in identifying patterns of unauthorized access without cluttering the database with redundant entries.
Solution: Use the Create or Update Record action to ensure that only the latest failed login attempt is recorded for each user.
-
If a match is found: The system updates the existing record’s timestamp field to reflect the time the most recent failed login attempt.
-
If no match is found: The system creates a new record for that failed login event.
”Add Records” Action vs. “Create or Update Records” Action
When adding data to a table, choosing the right action ensures accuracy and prevents duplication. Use “Add Records” when you need to insert new data without verifying existing entries. If you want to update existing records or avoid duplicates, “Create or Update Records” is the better choice, as it checks for a match before adding new data. The table below outlines the key differences between these actions.
Action | Behavior | Key Difference |
---|---|---|
Add Record | When you need to insert new data without checking for existing records | Adds records without checking for duplicates |
Create or Update Record | When you want to prevent duplicates or update existing records based on specific conditions | Checks for a matching record before adding; updates if found, adds if not |
You can manually set certain field types (Text
, Numbers
, Users
, Time
) as unique in the table. This ensures that each entry in a specific column is distinct, preventing duplicate values. For more details, visit this guide.
Get a Record
Fetch table data based on specified criteria using conditions, RQL queries, or SQL queries. Choose how the data is structured in the output (Table, JSON, or CSV) and refine results by applying filters, sorting, limits, and pagination options.
Tip: When to Use Each Query Method
Tip: When to Use Each Query Method
Each query method is designed for different use cases, depending on the complexity of your query and the level of filtering or customization required. Here are our recommendations on when to use each query method.
By Condition
Best For: Simple Queries with Basic Filtering
- Use this method when you need to retrieve records based on straightforward conditions, such as checking if a user has a specific access level or finding all records created after a certain date.
- Conditions are easy to configure without needing complex query syntax.
Use Case Example:
- Retrieve all users with
AccessLevel = "Administrator"
to audit privileged accounts.
RQL Format
Best For: Flexible Queries with Advanced Filtering
- Use RQL when you need more precise filtering with operators like
$gte
,$lte
,$contains_any
, or$like
. - Ideal for dynamic queries where conditions may change based on user input or external events.
Use Case Example:
- Fetch all users who have accessed the system in the past 24 hours:
- Retrieve all users with an AccessLevel of “Administrator” or “Manager”:
SQL Query
Best For: Complex Queries, Joins, and Aggregations
- Use SQL when you need to perform multi-table joins, grouping, aggregation, or subqueries.
- Ideal for reporting and analytics, such as tracking security incidents over time.
Use Case Example:
- Detect Privilege Escalation Attempts by finding users who had an access level change in the last 7 days:
- Cross-reference users with recent failed login attempts:
Get a Record from a table by using a condition
. All records that match the condition will be returned.
Parameter | Description |
---|---|
Query Method | By Condition- The query method to get records |
Table | The table you want to get records from. |
Fields | Table Fields. |
Condition | Condition that compares two table field values. |
Output Format | The format of the output the records are returned- Table, JSON or CSV . |
Limit (optional) | Limit the amount of records returned by the query. |
Offset (optional) | Choose the offset from the data to start querying the table from. |
Order By (optional) | Choose what field to order the results by. |
Sort (optional) | Sort the records by ascending or descending order. |
Include Query Metadata In Output (optional) | Check the box to include Query Metadata in the Output. |
All Pages (optional) | Check the box to return all data in the table(this setting invalidates the Limit and Offset fields.) |
Use Case Example: Get Table Records According to a Specified Condition.
Use Case Example: Get Table Records According to a Specified Condition.
The action retrieves specific records from the “User Data” table using the “By Condition” method, selecting fields like Created At, Updated At, and more, while filtering for users with an Access Level of “Contributor.”
Get a Record from a table by using a condition
. All records that match the condition will be returned.
Parameter | Description |
---|---|
Query Method | By Condition- The query method to get records |
Table | The table you want to get records from. |
Fields | Table Fields. |
Condition | Condition that compares two table field values. |
Output Format | The format of the output the records are returned- Table, JSON or CSV . |
Limit (optional) | Limit the amount of records returned by the query. |
Offset (optional) | Choose the offset from the data to start querying the table from. |
Order By (optional) | Choose what field to order the results by. |
Sort (optional) | Sort the records by ascending or descending order. |
Include Query Metadata In Output (optional) | Check the box to include Query Metadata in the Output. |
All Pages (optional) | Check the box to return all data in the table(this setting invalidates the Limit and Offset fields.) |
Use Case Example: Get Table Records According to a Specified Condition.
Use Case Example: Get Table Records According to a Specified Condition.
The action retrieves specific records from the “User Data” table using the “By Condition” method, selecting fields like Created At, Updated At, and more, while filtering for users with an Access Level of “Contributor.”
Get Record(s)
by querying a table for records using the RQL
query method.
Parameter | Description |
---|---|
Query Method | RQL Format- The query method to get records |
Table | The table you want to get records from. |
RQL Query | The RQL query to run against the table. |
Condition | Condition that compares two table field values. |
Output Format | The format of the output the records are returned- Table, JSON or CSV . |
Limit (optional) | Limit the amount of records returned by the query. |
Offset (optional) | Choose the offset from the data to start querying the table from. |
Include Query Metadata In Output (optional) | Check the box to include Query Metadata in the Output. |
All Pages (optional) | Check the box to return all data in the table(this setting invalidates the Limit and Offset fields.) |
-
Get a Record by using RQL format lets you query a table for record(s) using the
Select
,Filter
orSort
actions on the tables’ collection.- Select - Specify which fields to return by specifying fields name using the Select option.
- Filter - specify which records to return using the Filter option - only records that is the
Is Admin
value is false. - Sort - Define the sorting criteria by designating the relevant field and order. For ascending order, use
+
before the field name; for descending order, use-
instead. For Example:"sort": [+"updated_at"]
RQL Format Example
RQL Format Example
Get Record(s)
by querying a table for records using the SQL
query method.
Parameter | Description |
---|---|
Query Method | SQL Format The query method to get records |
Table | The table you want to get records from. |
SQL Query | The SQL query to run against the table. |
Condition | Condition that compares two table field values. |
Output Format | The format of the output the records are returned- Table, JSON or CSV . |
Limit (optional) | Limit the amount of records returned by the query. |
Offset (optional) | Choose the offset from the data to start querying the table from. |
Include Query Metadata In Output (optional) | Check the box to include Query Metadata in the Output. |
All Pages (optional) | Check the box to return all data in the table(this setting invalidates the Limit and Offset fields.) |
SQL Format Example:
Delete a Record
Remove specific records from a table by referencing their unique ID
or by setting a condition to delete multiple records that meet certain criteria. This ensures precise control over data removal while preventing accidental deletions.
Deletes a record from a table by the Record ID
.
Parameter | Description |
---|---|
Table Name | The name of the table. |
Record ID | The record unique identifier. Can be obtained via the Select action. |
Deletes a record from a table by the Record ID
.
Parameter | Description |
---|---|
Table Name | The name of the table. |
Record ID | The record unique identifier. Can be obtained via the Select action. |
Deletes a record or multiple record from a table only when a certain condition
is met.
Parameter | Description |
---|---|
Table Name | The name of the table. |
Condition (Optional) | Condition that compares two table field values. |
Managing Tables with Workflow Actions
Blink provides powerful workflow actions that allow you to automate the management of tables. These actions enable you to create, clear, retrieve, copy and delete tables dynamically within your workflows.
Create a Table
Create a table based on a schema.
Parameter | Description |
---|---|
Table Name | The name of the table. |
Table Schema | The schema of the table in JSON format.For more information, see the Copy table schema. |
Skip if Exists | Skips table creation if a table with the same name already exists. |
Copy Table Schema
For each table that is created, there is a table schema.
Learn how to Copy a Table's Schema
Learn how to Copy a Table's Schema
Click the 3 dots menu of the table > Copy table scheme.
Click Here to View the Whole Table Schema
Click Here to View the Whole Table Schema
Example of a Table Schema:
Does Table Exist
Check if a table with a given display name exists.
When using the Create Table action, and the chosen name of a table already exists, the Create Table action will fail.
In order to prevent this scenario, you are recommended to use the Does Table Exist
Action before the Create Table step.
Parameter | Description |
---|---|
Table Name | The name of the table. |
Search By | Search by name , display name or both. Default is display name . |
Use Case Example: Creating a Table Only If Table Name Doesn’t Already Exist
Use Case Example: Creating a Table Only If Table Name Doesn’t Already Exist
Before creating a new table, it is important to check whether a table with the same name already exists to avoid failures.
- If the table name already exists, the workflow will fail.
- If the table name does not exist, a new table will be created successfully.
Clear a Table
Clear all table records.
Parameter | Description |
---|---|
Table Name | The name of the table. |
Delete a Table
Deletes the entire table.
Parameter | Description |
---|---|
Table Name | The name of the table. |
Event-Based Triggers for Table Events
New Table Record
The New Table Record option is an Event-Based Trigger event that executes the workflow every time a new record is added to the selected table.
Table Record Updated
The Table Record Updated option is an Event-Based Trigger event that executes the workflow every time a record in the selected table is updated.