Be sure to review our Idea Submission Guidelines for more information!
Submission GuidelinesHello,
After used the new "Image Recognition Tool" a few days, I think you could improve it :
> by adding the dimensional constraints in front of each of the pre-trained models,
> by adding a true tool to divide the training data correctly (in order to have an equivalent number of images for each of the labels)
> at least, allow the tool to use black & white images (I wanted to test it on the MNIST, but the tool tells me that it necessarily needs RGB images) ?
Question : do you in the future allow the user to choose between CPU or GPU usage ?
In any case, thank you again for this new tool, it is certainly perfectible, but very simple to use, and I sincerely think that it will allow a greater number of people to understand the many use cases made possible thanks to image recognition.
Thank you again
Kévin VANCAPPEL (France ;-))
Thank you again.
Kévin VANCAPPEL
We all know and love the Comment tool. It's a staple of every workflow to give users an idea of the workflow in finer details. It's a powerful tool - it helps adds context to tools and containers, and it also serves as an image placeholder for us to style our workflows as aesthetically pleasing as possible.
Now, the gensis of this idea is inspired by this post and subsequent research question here.
The Comment Tool today allows you to:
But it would provide way more functionality if it had the capabilities of another awesome Alteryx tool that is not so frequently mentioned... the Report Text Tool!
What's missing in the Comment tool that the Report Text tool has?
Now, whilst I understand that the Report Text tool is just that, a tool that needs to be connected to the data to work, so too does the Comment tool (to a lesser extent).
It would be awesome to have the ability to connect the data to the Comment tool as it was a Control Container-like connector. It can also be just like the Report Text tool with an optional input, thereby making it like a normal Comment tool.
To visualize my point:
The benefits of doing so:
I think it'll be a killer feature enhancement to the comment tool. Hoping to hear comments on this!
Kindly like, share, and subscribe I mean comment your support. Thanks all! 😁
-caltang
Documenting your Alteryx workflow is important because it allows others to understand and modify it as needed. To document your workflow effectively, you should provide detailed information about your inputs, outputs, tools used, and any assumptions or limitations.
When it comes to documentation, annotations are often more practical than the comments tool. However, the comments tool in Alteryx offers a useful feature that allows you to customize the background, font, and border colors. These customizable colors can be beneficial when reviewing workflows, as they help draw attention to specific details or notes.
In the screenshot below, you can observe that the highlighted comment attracts more attention compared to the annotation on the left side, even though they contain the same comment.
It would be great if the color customization features available in the comments tool could also be added to the annotations of any tool.
Hello,
Unless you're lucky, your input dataset can have fields with the wrong types. That can lead to several issues such as :
-performance (a string is waaaaaaaay slower than let's say a boolean)
-compliance with master data management
-functional understanding (e.g : if i have a field called "modified" typed as string, I don't know if it contains the modification date, an information about the modification, etc... while if it's is typed as date, I already know it's a date)
-ability to do some type-specific operations (you can't multiply a string or extract a week from a string)
right now, the existing tools have been focused on strings but I think we can do better.
Here a proposition :
entry : a dataframe
configuration :
-selection of fields
or
-selection of field types
-ability to do it on a sample (optional)
Algo :
Alteryx | Byte | bool | only 2 values. 0 and 1 | to be done |
Alteryx | Int16 | bool | only 2 values. 0 and 1 | to be done |
Alteryx | Int16 | Byte | min=>0, max <=255 | to be done |
Alteryx | Int32 | bool | only 2 values. 0 and 1 | to be done |
Alteryx | Int32 | Byte | min>=0, max <=255 | to be done |
Alteryx | Int32 | Int16 | min>=-32,768, max <=32,767 | to be done |
Alteryx | Int64 | bool | only 2 values. 0 and 1 | to be done |
Alteryx | Int64 | Byte | min>=0, max <=255 | to be done |
Alteryx | Int64 | Int16 | min>=-32,768, max <=32,767 | to be done |
Alteryx | Int64 | Int32 | min>=-–2,147,483,648, max <=2,147,483,647 | to be done |
Alteryx | Fixed Decimal | bool | only 2 values. 0 and 1 | to be done |
Alteryx | Fixed Decimal | Byte | No decimal part, min>=0, max <=255 | to be done |
Alteryx | Fixed Decimal | Int16 | No decimal part, min>=-32,768, max <=32,767 | to be done |
Alteryx | Fixed Decimal | Int32 | No decimal part, min>=-–2,147,483,648, max <=2,147,483,647 | to be done |
Alteryx | Fixed Decimal | Int36 | No decimal part, min>=-––9,223,372,036,854,775,808, max <=9,223,372,036,854,775,807 | to be done |
Alteryx | Float | bool | only 2 values. 0 and 1 or 0,-1 | to be done |
Alteryx | Float | Byte | No decimal part, min>=0, max <=255 | to be done |
Alteryx | Float | Int16 | No decimal part, min>=-32,768, max <=32,767 | to be done |
Alteryx | Float | Int32 | No decimal part, min>=-–2,147,483,648, max <=2,147,483,647 | to be done |
Alteryx | Float | Int36 | No decimal part, min>=-––9,223,372,036,854,775,808, max <=9,223,372,036,854,775,807 | to be done |
Alteryx | Float | Fixed Decimal | to be done | to be done |
Alteryx | Double | bool | only 2 values. 0 and 1 or 0,-1 | to be done |
Alteryx | Double | Byte | No decimal part, min>=0, max <=255 | to be done |
Alteryx | Double | Int16 | No decimal part, min>=-32,768, max <=32,767 | to be done |
Alteryx | Double | Int32 | No decimal part, min>=-–2,147,483,648, max <=2,147,483,647 | to be done |
Alteryx | Double | Int36 | No decimal part, min>=-––9,223,372,036,854,775,808, max <=9,223,372,036,854,775,807 | to be done |
Alteryx | Double | Fixed Decimal | to be done | to be done |
Alteryx | Double | Float | when no need for doube precision | to be done |
Alteryx | DateTime | Date | no hours, minutes, seconds | to be done |
Alteryx | String | bool | only 2 values. 0 and 1 or 0,-1 or True/False or TRUE/FALSE or equivalent in some languages such as VRAI/FAUX, Vrai/Faux | to be done |
Alteryx | String | Byte | No decimal part, min>=0, max <=255 | to be done |
Alteryx | String | Int16 | No decimal part, min>=-32,768, max <=32,767 | to be done |
Alteryx | String | Int32 | No decimal part, min>=-–2,147,483,648, max <=2,147,483,647 | to be done |
Alteryx | String | Int36 | No decimal part, min>=-––9,223,372,036,854,775,808, max <=9,223,372,036,854,775,807 | to be done |
Alteryx | String | Fixed Decimal | to be done | to be done |
Alteryx | String | Float | when no need for doube precision | to be done |
Alteryx | String | Double | when need for double precision | to be done |
Alteryx | String | Date | test on several date formats | to be done |
Alteryx | String | Time | test on several time formats | to be done |
Alteryx | String | DateTime | test on several datetime formats | to be done |
Alteryx | WString | bool | only 2 values. 0 and 1 or 0,-1 or True/False or TRUE/FALSE or equivalent in some languages such as VRAI/FAUX, Vrai/Faux | to be done |
Alteryx | WString | Byte | No decimal part, min>=0, max <=255 | to be done |
Alteryx | WString | Int16 | No decimal part, min>=-32,768, max <=32,767 | to be done |
Alteryx | WString | Int32 | No decimal part, min>=-–2,147,483,648, max <=2,147,483,647 | to be done |
Alteryx | WString | Int36 | No decimal part, min>=-––9,223,372,036,854,775,808, max <=9,223,372,036,854,775,807 | to be done |
Alteryx | WString | Fixed Decimal | to be done | to be done |
Alteryx | WString | Float | when no need for doube precision | to be done |
Alteryx | WString | Double | when need for double precision | to be done |
Alteryx | WString | String | Latin-1 character only | to be done |
Alteryx | WString | Date | test on several date formats | to be done |
Alteryx | WString | Time | test on several time formats | to be done |
Alteryx | WString | DateTime | test on several datetime formats | to be done |
Alteryx | V_String | bool | only 2 values. 0 and 1 or 0,-1 or True/False or TRUE/FALSE or equivalent in some languages such as VRAI/FAUX, Vrai/Faux | to be done |
Alteryx | V_String | Byte | No decimal part, min>=0, max <=255 | to be done |
Alteryx | V_String | Int16 | No decimal part, min>=-32,768, max <=32,767 | to be done |
Alteryx | V_String | Int32 | No decimal part, min>=-–2,147,483,648, max <=2,147,483,647 | to be done |
Alteryx | V_String | Int36 | No decimal part, min>=-––9,223,372,036,854,775,808, max <=9,223,372,036,854,775,807 | to be done |
Alteryx | V_String | Fixed Decimal | to be done | to be done |
Alteryx | V_String | Float | when no need for doube precision | to be done |
Alteryx | V_String | Double | when need for double precision | to be done |
Alteryx | V_String | String | Same length | to be done |
Alteryx | V_String | Date | test on several date formats | to be done |
Alteryx | V_String | Time | test on several time formats | to be done |
Alteryx | V_String | DateTime | test on several datetime formats | to be done |
Alteryx | V_WString | bool | only 2 values. 0 and 1 or 0,-1 or True/False or TRUE/FALSE or equivalent in some languages such as VRAI/FAUX, Vrai/Faux | to be done |
Alteryx | V_WString | Byte | No decimal part, min>=0, max <=255 | to be done |
Alteryx | V_WString | Int16 | No decimal part, min>=-32,768, max <=32,767 | to be done |
Alteryx | V_WString | Int32 | No decimal part, min>=-–2,147,483,648, max <=2,147,483,647 | to be done |
Alteryx | V_WString | Int36 | No decimal part, min>=-––9,223,372,036,854,775,808, max <=9,223,372,036,854,775,807 | to be done |
Alteryx | V_WString | Fixed Decimal | to be done | to be done |
Alteryx | V_WString | Float | when no need for doube precision | to be done |
Alteryx | V_WString | Double | when need for double precision | to be done |
Alteryx | V_WString | String | Same length,latin- character only | to be done |
Alteryx | V_WString | WString | Same length | to be done |
Alteryx | V_WString | V_String | latin- character only | to be done |
Alteryx | V_WString | Date | test on several date formats | to be done |
Alteryx | V_WString | Time | test on several time formats | to be done |
Alteryx | V_WString | DateTime | test on several datetime formats | to be done |
The output would be something like that
Field | Input type | Proposition | Conversion |
toto | float | int | formula (with example)/native tool/datetime conversion tool… |
Best regards,
Simon
Sounds simple :
Best regards,
Simon
The JOIN tool could use some love. Let's consider merging the JOIN and UNION functions into a single tool. Instead of strictly L, J, and R outputs, we could have an option to allow for all standard SQL joins:
Being able to JOIN on case-insensitive values is a big bonus (resisted urge to BOLD and change font size).
Being able to JOIN on date-range is often requested.
Being able to JOIN on numeric-range is often requested.
If we are combining tools, getting UNIQUE on L or R (or both) inputs would also save time. Most JOIN errors are because the incoming (R) data contains duplicates by KEY.
cheers,
Mark
Hi @NicoleJ
A very useful and common function
https://www.w3schools.com/sql/func_sqlserver_coalesce.asp
Return the first non-null value in a list:
Hi,
I appreciate this could be a repeat of this topic but I'm not able to find it easily if it is.
I want to locate a column in my results window with a simple search functionality. I'd like to search for a column and then it'll present back to me potential columns that I could then select to move me to in the results window. It's painful with a lot of columns to keep scrolling to find the one you're after:
All the best,
BS
I’ve been using the Regex tool more and more now. I have a use case which can parse text if the text inside matches a certain pattern. Sometimes it returns no results and that is by design.
Having the warnings pop up so many times is not helpful when it is a genuine miss and a fine one at that.
Just like the Union tool having the ability to ignore warnings, like Dynamic Rename as well, can we have the ignore function for all parse tools?
That’s the idea in a nutshell.
There is no tool that exists that outputs all records that are duplicates (those sharing the selected values with at least one other record) and also outputs the records that are not duplicates (those not sharing the selected values with at least one other record).
The Unique Tool is not sufficient. It only provides the first record of a unique duplicate group along with any non-duplicates and then provides a secondary output that only contains the additional records of a duplicate group. Sometimes you only care about the duplicates and want to quickly see what differs between the unique groups.
For example, if there are 4 records with the City of Austin and I am looking for duplicates on City I want to see all 4 records with Austin in the output so I can quickly compare additional fields to see what might differ, or if they are all indeed truly duplicates.
I am aware that an Auto-Documenter tool is available in the Gallery, but that has not been maintained since 2020.
It would be great if Alteryx could have that as an added feature to the Designer as an option for end-users to utilize.
The breakdown of it can be done via XML parsing as such:
<Nodes>: Configuration of tools
<Connections>: The tools used
<Properties>: Workflow properties
Right now, the current workaround is for users to export their XML, and the internal Alteryx development team has to build another workflow that reads the XML accordingly + parses it to fit what is needed.
It would be better for Alteryx to build something more robust, and perhaps even include some elements of AiDIN which they are promoting now.
Sometimes I want to set up a filter to compare the values in two fields in my data set. The basic filter option would be much more powerful and configuration would be quicker if this option allowed this.
For example, currently I must use a custom filter to check if Field1 and Field2 are equal:
I would love to have the option to either use a static value in the basic filter (as you can now) or select a field name from a dropdown:
Hello,
I think I have neer wrotten an easier idea : the tooltip for the run workflow button should indicate the keyboard shortcut (ctrl+R). So simple, so intuitive..
Best regards,
Simon
We have discussed on several occasions and in different forums, about the importance of having or providing Alteryx with order of execution control, conditional executions, design patterns and even orchestration.
I presented this idea some time ago, but someone asked me if it was posted, and since it was not, I’m putting it here so you can give some feedback on it.
The basic concept behind this idea is to allow us (users) to have:
This approach involves some functionalities that are already within the product (like exploiting Filtering logic, loading & saving, caching, blocking among others), exposed within a Tool Container with enhanced attributes, like this example:
The approach is to extend Tool Container’s attributes.
This proposition uses actual functionalities we already have in Designer.
So, basically, the Tool Container gets ‘superpowers’, with the addition of some capabilities like: Accepting input data, saving the contents within the container (to create a design pattern, or very commonly used sequence of tools chained together), output data, run the contents of the tools included in the container, etc.), plus a configuration screen like:
This should end a brief introduction to the idea, but taking it a little further, it will allow even to have something like an Orchestration layout, where the users can drag and drop containers or patterns and orchestrate them in a solution, like we can do with the Visual Layout Tool or the Interactive Chart tool:
I'm looking forward to hear what you think.
Best
Currently there is a function in Alteryx called FindString() that finds the first occurrence of your target in a string. However, sometimes we want to find the nth occurrence of our target in a string.
FindString("Hello World", "o") returns 4 as the 0-indexed count of characters until the first "o" in the string. But what if we want to find the location of the second "o" in the text? This gets messy with nested find statements and unworkable beyond looking for the second or third instance of something.
I would like a function added such that
FindNth("Hello World", "o", 2) Would return 7 as the 0-indexed count of characters until the second instance of "o" in my string.
Hello --
Many times, I want to summarize data by grouping it, but to really reduce the number of rows, some data needs to be concatenated.
The problem is that some data that is group is repeated and concatenating the data will double, triple, or give a large field of concatenated data.
As an example:
Name State
A | New York |
A | New York |
A | New Jersey |
B | Florida |
B | Florida |
B | Florida |
The above, if we concatenate by State would look like:
A | New York, New York, New Jersey |
B | Florida, Florida, Florida |
What I propose is a new option called Concatenate Unique so I would get:
A | New York, New Jersey |
B | Florida |
This would prevent us from having to use a Regex formula to make the column unique.
Thanks,
Seth
I want a feature to enable join by custom conditions. Currently, in Join tool, allowed condition is only equality of specific fields and specific position, however, in SQL, we can join data by much more flexible conditions like;
SELECT TableA.id FROM TableA INNER JOIN TableB ON TableA.id=TableB.id and TableA.value > TableB.value
Of course, my idea can be easily realized by using combination of Appendix Field + Filter tool, but I meant to say is that Appendix-Fields is quite expensive operation in calculation cost, and it would generate many unnecessary records, which is annoying us in case of handling a huge dataset.
I suppose this kind of flexible conditions can be specified by using expression editor, thereby configuration window of this feature would look like the below image; Adding one more radio button option, and expression editor similar to one used in Filter tool.
Any positive/negative feedback on my idea would be appreciated. Thank you for your attention!
I would like to propose three feature enhancements for the Cross Tab tool under the Transform tool category.
1. Bringing Concat Unique functionality, which is an idea that is currently in Coming Soon status.
2. Adding Start and End in addition to Separator, similar to the Concatenate Properties found in the Summarize tool.
3. Changing the Default Size from 2048 to 1073741823 (max V_WString size). It is common for especially new users to ignore the truncation errors and potentially miss important data that may need to be processed downstream.
Hello all,
As of today, you must set which database (e.g. : Snowflake, Vertica...) you connect to in your in db connection alias. This is fine but I think we should be able to also define the version, the release of the database. There are a lot of new features in database that Alteryx could use, improving User Experience, performance and security. (e.g. : in Hive 3.0, there is a catalog that could be used in Visual Query Builder instead of querying slowly each schema)
I think of a menu with the following choices :
-default (legacy) and precision of the Alteryx default version for the db
-autodetect (with a query launched every time you run the workflow when it's possible). if upper than last supported version, warning message and run with the last supported version settings.
-manual setting a release (to avoid to launch the version query every time). The choices would be every supported alteryx version.
Best regards,
Simon
Hello!
I am just making a quick suggestion, specifically for the Formula tool within Alteryx.
Often when I am working on a larger workflow - I will end up optimising the workflow towards the end. I typically end up removing unnecessary tools, fields, and rethinking my logic.
Much of this optimisation, is also merging formula tools where possible. For instance, if I have 3 formulas - its much cleaner (and I would suspect faster) to have these all within one tool. For instance, a scaled down example:
to this:
This requires a lot of copy and paste - especially if the formulas/column names are long - this can be two copy and pastes, and waiting for tools to load between them, per formula (i do appreciate, this sounds an incredibly small problem to have, but on what I would consider a large workflow, a tool loading can actually take a couple of seconds - and this could burn some time. Additionally, there's always potential problems when it comes to copy/pasting or retyping with errors).
My proposed solution to this, is the ability to drag a formula onto another - very similar to dragging a tool onto a connection. This integration would look like:
Drag to the first formula:
Release:
Formula has been appended to the formula tool:
I think this will help people visually optimise their workflows!
Cheers,
TheOC
I sometimes have to swap (change the order of) two tools in a flow. It is a bothersome task, especially when there are many connections around them. I would like to suggest two new features for such a situation. It would help if either could be realized.
Swap tools
Select two tools, right-click, and select "Swap" option.
Move and connect around
Drag a tool holding down Alt key (or something) to move it from the stream and connect around. After that, we can drag and drop the tool to the right place.
User | Likes Count |
---|---|
3 | |
3 | |
2 | |
2 | |
2 |