In this article
You can edit an existing Text Analytics Dataflow, update the filter, rename, shift from manual or continuous, or change the questions for analysis.
To do this, follow these steps:
Go to the Automations tab in the sidebar.
Click the name of the Text Analytics Dataflow you want to edit to open the overview page.
Click the Edit button to the top-right.
The settings page opens. Here you can change the filter, processing type, or the name of the dataflow. To edit questions for analysis, click the EDIT QUESTIONS button.
Figure 1 - Example of the Dataflow Settings page
Adding Filters
To add filters to your dataflow, follow these steps:
In the text analytics overview page, click the Edit button.
Locate the "Filter" field.
Enter a filter. See the below table for examples.
Click the Save button.
Creating Filter Expressions
What are filter expressions?
A Filter Expression is a Boolean Studio expression which allows filtering of the Survey Data records.
Each expression may consist of the following primitives:
• Constants
• Variables
• Operators
• Functions
In a filter expression you can use variables from all levels (response, loops, respondent). For loops you need to use the aggregating-functions. Note that aggregating-functions are only supported for loops.
In general, each variable in a Studio expression should be specified with the full path <survey id>.<loop level>:<variable id>[<field code>], but the Public Surveys API allows using simplified variable path without survey id. You can also omit loop level if variable is located on the response level.
Please also consider that each survey has two predefined levels and may also contain several loop levels:
• respondent - respondent data level
• response(default) - the root level of the response data
Expression examples
| Expressions | Description |
|
response:status = 'complete' :status = 'complete' |
Only completed responses The 2-nd expression is valid because variable status is located on the default level response
|
|
response:interview_start > 2020-07-21T15:09:40 response:date_variable = 2020-07-21 OR response:date_variable = 2020-07-22 |
Responses created after the given date Responses with a date matching one of two values |
| respondent:noOfMailSent >= 2 | Responses of those respondents who were invited at least twice |
| VAVG(SCORE(:osatGrid)) > 5 |
Responses with Average of scores in grid greater than 5 Here osatGrid is a rating grid on the response level |
| SCORE(:osatGrid.support) > 5 |
Responses with scored grid field greater than 5 Here osatGrid.support is a field in the rating grid osatGrid |
| SOME(l1:numInLoop > 10, true, response:) |
Responses with at least one iteration where numeric variable is greater than 10 Here numInLoop is a numeric variable on loop level l1. The 2-nd parameter is internal aggregating function filter which allows filtering loop records to be aggregated. Value true means that all loop records are aggregated. The 3-rd parameter is the level which the aggregation is performed to.
|
| EVERY(l1:numInLoop > 10, true, response:) | Only responses where for each loop iteration numeric variable is greater than 10 |
| SUM(l1:numInLoop, true, response:) > 100 | Responses with sum of a numeric variable for all loop iterations is greater than 10 |
| BETWEEN(response:responseid, 1, 4) | responseid between the given values |
|
LEN(response:email) = 10 OR CONTAINS(LOWER(response:email), '@gmail.com') |
|
|
ISNULL(response:email, '') = '' OR TOINT(response:zipcode) = 23322 |
|
| IIF(response:q1 = 'a', response:text1 : response:text2) = 'some text' | |
|
IN(response:cars, 'bmw', 'ford', 'vw') AND IN(response:grid_question.field1, 'code1', 'code3', 'code5') |
Field is one of the given values |
| ALL(response:MultiQuestion) | All options selected |
| ANY(response:MultiQuestion) | Any option selected |
| VSELECTED(response:MultiQuestion) = 3 | Exactly three options selected |
| VSUM(response:NumericListQuestion) = 456 | |
| MONTH(GETDATE()) = 12 AND DAY(GETDATE()) = 24 | |
| WEEK(response:BoardingDate) = 23 AND DAY(GETDATE()) = 24 | |
| DIFFMONTH(GETDATE(), response:MyDate) = 2 | |
| ADDDAY(GETDATE()) > response:MyDate | |
| NOT(response:status='complete') |
Re-processing the Dataflow
If you want to process your text analytics dataflow again, you have a few choices:
Process now - processes new and changed records since the last run. for example new survey responses
New and changed records - same as above
All records - processes all records
Selected records - see below for more information
Selected records
If you pick "Selected records", a menu will open allowing you to select which records to process using filters already added to your dataflow or new filters defined in the "Filter" text box.
Filters already added to your dataflow will appear beneath the Filter header. To include these filters, tick the "Include current filter condition" check-box.
If you want to define a new filter, enter it into the "Filter" field:
Click the Process Now button when you're done.
Deleting a Dataflow
You can delete an existing Dataflow on the overview page by clicking the Delete button at the top-right. A confirmation box opens where you must confirm the deletion by typing in a string.
Note: This will not delete the custom data tables containing the analysis results. If they are also to be deleted then they must manually removed individually. Click here for further details.