Free Trial

Alteryx Designer Desktop Ideas

Share your Designer Desktop product ideas - we're listening!
Submitting an Idea?

Be sure to review our Idea Submission Guidelines for more information!

Submission Guidelines

Featured Ideas

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:

  • Write your text and provide context / documentation to your workflow
  • Style its shape
  • Style its font, colour, and background colour
  • Align the text
  • Put an image to your workflow

image.png

 

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?

  1. The ability to add active data records from the workflow to its text
  2. Its wider range of styles which allows for more functionality such as with its Special Tags functions
  3. Its ability to hyperlink
  4. Text mode options!

image.png

 

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:

image.png

 

The benefits of doing so:

  • Greater flexibility to the user
  • Styles are endgame
  • Users can use the comment box as a checksum or even a total count / checker to ensure everything is working as intended
  • Makes the comment tool more powerful as a dynamic workflow documentation tool

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.

 

SaadNaser_0-1684052340300.png

 

 

 

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 :

AlteryxByteboolonly 2 values. 0 and 1 to be done
AlteryxInt16boolonly 2 values. 0 and 1 to be done
AlteryxInt16Bytemin=>0, max <=255to be done
AlteryxInt32boolonly 2 values. 0 and 1 to be done
AlteryxInt32Bytemin>=0, max <=255to be done
AlteryxInt32Int16min>=-32,768, max <=32,767to be done
AlteryxInt64boolonly 2 values. 0 and 1 to be done
AlteryxInt64Bytemin>=0, max <=255to be done
AlteryxInt64Int16min>=-32,768, max <=32,767to be done
AlteryxInt64Int32min>=-–2,147,483,648, max <=2,147,483,647to be done
AlteryxFixed Decimalboolonly 2 values. 0 and 1 to be done
AlteryxFixed DecimalByteNo decimal part, min>=0, max <=255to be done
AlteryxFixed DecimalInt16No decimal part, min>=-32,768, max <=32,767to be done
AlteryxFixed DecimalInt32No decimal part, min>=-–2,147,483,648, max <=2,147,483,647to be done
AlteryxFixed DecimalInt36No decimal part, min>=-––9,223,372,036,854,775,808, max <=9,223,372,036,854,775,807to be done
AlteryxFloatboolonly 2 values. 0 and 1 or 0,-1to be done
AlteryxFloatByteNo decimal part, min>=0, max <=255to be done
AlteryxFloatInt16No decimal part, min>=-32,768, max <=32,767to be done
AlteryxFloatInt32No decimal part, min>=-–2,147,483,648, max <=2,147,483,647to be done
AlteryxFloatInt36No decimal part, min>=-––9,223,372,036,854,775,808, max <=9,223,372,036,854,775,807to be done
AlteryxFloatFixed Decimalto be doneto be done
AlteryxDoubleboolonly 2 values. 0 and 1 or 0,-1to be done
AlteryxDoubleByteNo decimal part, min>=0, max <=255to be done
AlteryxDoubleInt16No decimal part, min>=-32,768, max <=32,767to be done
AlteryxDoubleInt32No decimal part, min>=-–2,147,483,648, max <=2,147,483,647to be done
AlteryxDoubleInt36No decimal part, min>=-––9,223,372,036,854,775,808, max <=9,223,372,036,854,775,807to be done
AlteryxDoubleFixed Decimalto be doneto be done
AlteryxDoubleFloatwhen no need for doube precisionto be done
AlteryxDateTimeDateno hours, minutes, secondsto be done
AlteryxStringboolonly 2 values. 0 and 1 or 0,-1 or True/False or TRUE/FALSE or equivalent in some languages such as VRAI/FAUX, Vrai/Fauxto be done
AlteryxStringByteNo decimal part, min>=0, max <=255to be done
AlteryxStringInt16No decimal part, min>=-32,768, max <=32,767to be done
AlteryxStringInt32No decimal part, min>=-–2,147,483,648, max <=2,147,483,647to be done
AlteryxStringInt36No decimal part, min>=-––9,223,372,036,854,775,808, max <=9,223,372,036,854,775,807to be done
AlteryxStringFixed Decimalto be doneto be done
AlteryxStringFloatwhen no need for doube precisionto be done
AlteryxStringDoublewhen need for double precisionto be done
AlteryxStringDatetest on several date formatsto be done
AlteryxStringTimetest on several time formatsto be done
AlteryxStringDateTimetest on several datetime formatsto be done
AlteryxWStringboolonly 2 values. 0 and 1 or 0,-1 or True/False or TRUE/FALSE or equivalent in some languages such as VRAI/FAUX, Vrai/Fauxto be done
AlteryxWStringByteNo decimal part, min>=0, max <=255to be done
AlteryxWStringInt16No decimal part, min>=-32,768, max <=32,767to be done
AlteryxWStringInt32No decimal part, min>=-–2,147,483,648, max <=2,147,483,647to be done
AlteryxWStringInt36No decimal part, min>=-––9,223,372,036,854,775,808, max <=9,223,372,036,854,775,807to be done
AlteryxWStringFixed Decimalto be doneto be done
AlteryxWStringFloatwhen no need for doube precisionto be done
AlteryxWStringDoublewhen need for double precisionto be done
AlteryxWStringStringLatin-1 character onlyto be done
AlteryxWStringDatetest on several date formatsto be done
AlteryxWStringTimetest on several time formatsto be done
AlteryxWStringDateTimetest on several datetime formatsto be done
AlteryxV_Stringboolonly 2 values. 0 and 1 or 0,-1 or True/False or TRUE/FALSE or equivalent in some languages such as VRAI/FAUX, Vrai/Fauxto be done
AlteryxV_StringByteNo decimal part, min>=0, max <=255to be done
AlteryxV_StringInt16No decimal part, min>=-32,768, max <=32,767to be done
AlteryxV_StringInt32No decimal part, min>=-–2,147,483,648, max <=2,147,483,647to be done
AlteryxV_StringInt36No decimal part, min>=-––9,223,372,036,854,775,808, max <=9,223,372,036,854,775,807to be done
AlteryxV_StringFixed Decimalto be doneto be done
AlteryxV_StringFloatwhen no need for doube precisionto be done
AlteryxV_StringDoublewhen need for double precisionto be done
AlteryxV_StringStringSame lengthto be done
AlteryxV_StringDatetest on several date formatsto be done
AlteryxV_StringTimetest on several time formatsto be done
AlteryxV_StringDateTimetest on several datetime formatsto be done
AlteryxV_WStringboolonly 2 values. 0 and 1 or 0,-1 or True/False or TRUE/FALSE or equivalent in some languages such as VRAI/FAUX, Vrai/Fauxto be done
AlteryxV_WStringByteNo decimal part, min>=0, max <=255to be done
AlteryxV_WStringInt16No decimal part, min>=-32,768, max <=32,767to be done
AlteryxV_WStringInt32No decimal part, min>=-–2,147,483,648, max <=2,147,483,647to be done
AlteryxV_WStringInt36No decimal part, min>=-––9,223,372,036,854,775,808, max <=9,223,372,036,854,775,807to be done
AlteryxV_WStringFixed Decimalto be doneto be done
AlteryxV_WStringFloatwhen no need for doube precisionto be done
AlteryxV_WStringDoublewhen need for double precisionto be done
AlteryxV_WStringStringSame length,latin- character onlyto be done
AlteryxV_WStringWStringSame lengthto be done
AlteryxV_WStringV_Stringlatin- character onlyto be done
AlteryxV_WStringDatetest on several date formatsto be done
AlteryxV_WStringTimetest on several time formatsto be done
AlteryxV_WStringDateTimetest on several datetime formatsto be done

 

The output would be something like that

FieldInput typePropositionConversion
totofloatintformula (with example)/native tool/datetime conversion tool…



Best regards,

Simon



Sounds simple :

 

image.png


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:

 

  • Cross Join (Warning!!!)
  • Inner Join (boring)
  • Left Outer Join (saves time configuring Union)
  • Right Outer Join (saves time ...)
  • Full Outer Join (saves time ...)

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:

COALESCE(NULL, NULL, NULL, 'W3Schools.com', NULL, 'Example.com')
returns 'W3Schools.com'

It exits in SQL, Qlik Sense, etc...

Best regards,

Simon

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:

 

Screenshot 2024-11-11 135159.png

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:

Kenda_0-1685475507231.png

 

 

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:

Kenda_1-1685475605251.png

 

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..

image.png

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:

  • Design Patterns
    • Repetitive patterns to be reusable.
    • Select after and Input tool
    • Drop Nulls
    • Get not matching records from join
  • Conditional execution
    • Tell Alteryx to execute some logic if something happens.
    • Record count
    • Errors
    • Any other condition
  • Order of execution
    • Need to tell Alteryx what to run first, what to run next, and so on…
    • Run this first
    • Execute this portion after previous finished
    • Wait until “X” finishes to execute “Y”
  • Orchestration
    • Putting all together

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:

OnCanvas.png

 

 

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:

 

ToolcontainerConfig_Comment.png

 

 
  1. Refers to the actual interface of the Tool Container.
  2. Provides the ability to disable a Container (and all tools within) once it runs.
    • Idea based on actual behavior: When we enable or disable a Tool Container from an interface Tool.
  3. Input and output data to the container’s logic, will allow to pickup and/or save files from a particular container, to be used in later containers or persist data as a partial result from the entire workflow’s logic (for example updating a dimensions table)
    • Based on actual behavior: Input & Output Data, Cache, Run Command Tools, and some macros like Prepare Attachment.
  4. Order of Execution: Can be Absolute or Relative. In case of Absolute run, we take the containers in order, executing their contents. If Relative, we have the options to configure which container should run before and after, block until previous container finishes or wait until this container finishes prior to execute next container in list.
    • Based on actual behavior: Block until done, Cache, Find Replace, some interface Designer capabilities (for chained apps for example), macros’ basic behaviors.
  5. Conditional Execution: In order to be able to conditionally execute other containers, conditions must be evaluated. In this case, the idea is to evaluate conditions within the data, interface tools or Error/Warnings occurrence.
    • Based on actual behavior: Filter tool, some Interface Tools, test Tool, Cache, Select.
  6. Notes: Documentation text that will appear automatically inside the container, with options to place it on top or below the tools, or hide it.

 

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:

Alteryx Choreographer.png

 

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

ANew York
ANew York
ANew Jersey
BFlorida
BFlorida
BFlorida

 

The above, if we concatenate by State would look like:

ANew York, New York, New Jersey
BFlorida, Florida, Florida

 

What I propose is a new option called Concatenate Unique so I would get:

ANew York, New Jersey
BFlorida

 

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!

image.png

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:

TheOC_0-1638886556192.png

 

to this:

TheOC_1-1638886598494.png

 

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:

TheOC_4-1638886826166.png

 

Drag to the first formula:

 

TheOC_5-1638886837420.png

 

 

Release:

 

TheOC_6-1638886865299.png

 

Formula has been appended to the formula tool:

TheOC_7-1638886879753.png

 

 

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. 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. 

swap.png

 

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.

move.png