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

QuikPick.png

I often go betwen the favorites group and other groups of tools I'm using but might not be considered favorites.  It would be nice if there was a way for a user to put the their most commonly used tools in a ribbon bar on the top near the run button?  The user could quickly grab and drag that tool to the canvas.  IT wouldn't replace the favorites but be an addition to favorites.  What do people think?  Useful or redundant?  Interested to hear what people say.

 

Thanks!

 

 

 

It would be great if you can add a function "eval". This would be similar to R or access where you would pass a string to the eval function and it would then evaluate the string. My made up use case would be something like this: I have 1 Million rows of data with 20 fields. The first 10 are value1, value2...value10, and the second 10 are value1_right, value2_right....value10_right. I would like to replace valuex with valuex_right if valuex is null. With a multifield formula tool selected I could write something like this with value1-10 selected: eval("IIF(ISnull([_CurrentField_]),["+[_CurrentFieldName_]+"_right],[_CurrentField_])"). Thanks!

How about turning this;

SELECT * 
FROM Employee
ORDER BY First_name ASC

into this automatically

Picture1.png

and a more complex one

SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers
ON Orders.CustomerID=Customers.CustomerID; 

into this

Picture2.png

basically it's a parser;

 

1) First check if it's a MS SQL, PL/SQL or T/SQL

2) Then figure out join relationships

3) Convert each subset SQL into function nodes

4) Convert function nodes to Alteryx yxmd (xml)

 

Creates the following for the first workflow

<?xml version="1.0"?>
<AlteryxDocument yxmdVer="10.5">
  <Nodes>
    <Node ToolID="1">
      <GuiSettings Plugin="AlteryxBasePluginsGui.AlteryxSelect.AlteryxSelect">
        <Position x="174" y="90" />
      </GuiSettings>
      <Properties>
        <Configuration>
          <OrderChanged value="False" />
          <SelectFields>
            <SelectField field="*Unknown" selected="True" />
          </SelectFields>
        </Configuration>
        <Annotation DisplayMode="0">
          <Name />
          <DefaultAnnotationText />
          <Left value="False" />
        </Annotation>
      </Properties>
      <EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxSelect" />
    </Node>
    <Node ToolID="2">
      <GuiSettings Plugin="AlteryxBasePluginsGui.Sort.Sort">
        <Position x="246" y="90" />
      </GuiSettings>
      <Properties>
        <Configuration>
          <SortInfo locale="0">
            <Field field="FIRST_NAME" order="Ascending" />
          </SortInfo>
        </Configuration>
        <Annotation DisplayMode="0">
          <Name />
          <DefaultAnnotationText>FIRST_NAME - Ascending</DefaultAnnotationText>
          <Left value="False" />
        </Annotation>
      </Properties>
      <EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxSort" />
    </Node>
    <Node ToolID="4">
      <GuiSettings Plugin="AlteryxBasePluginsGui.TextInput.TextInput">
        <Position x="90" y="90" />
      </GuiSettings>
      <Properties>
        <Configuration>
          <NumRows value="0" />
          <Fields>
            <Field name="FIRST_NAME" />
          </Fields>
          <Data />
        </Configuration>
        <Annotation DisplayMode="0">
          <Name />
          <DefaultAnnotationText />
          <Left value="False" />
        </Annotation>
      </Properties>
      <EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxTextInput" />
    </Node>
    <Node ToolID="13">
      <GuiSettings Plugin="AlteryxBasePluginsGui.BrowseV2.BrowseV2">
        <Position x="330" y="90" />
      </GuiSettings>
      <Properties>
        <Configuration>
          <Layout>
            <View1>
              <Hints>
                <Table />
              </Hints>
            </View1>
          </Layout>
        </Configuration>
        <Annotation DisplayMode="0">
          <Name />
          <DefaultAnnotationText />
          <Left value="False" />
        </Annotation>
      </Properties>
      <EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxBrowseV2" />
    </Node>
  </Nodes>
  <Connections>
    <Connection>
      <Origin ToolID="1" Connection="Output" />
      <Destination ToolID="2" Connection="Input" />
    </Connection>
    <Connection>
      <Origin ToolID="2" Connection="Output" />
      <Destination ToolID="13" Connection="Input" />
    </Connection>
    <Connection>
      <Origin ToolID="4" Connection="Output" />
      <Destination ToolID="1" Connection="Input" />
    </Connection>
  </Connections>
  <Properties>
    <Memory default="True" />
    <GlobalRecordLimit value="0" />
    <TempFiles default="True" />
    <Annotation on="True" includeToolName="False" />
    <ConvErrorLimit value="10" />
    <ConvErrorLimit_Stop value="False" />
    <CancelOnError value="False" />
    <DisableBrowse value="False" />
    <EnablePerformanceProfiling value="False" />
    <DisableAllOutput value="False" />
    <ShowAllMacroMessages value="False" />
    <ShowConnectionStatusIsOn value="True" />
    <ShowConnectionStatusOnlyWhenRunning value="True" />
    <ZoomLevel value="0" />
    <LayoutType>Horizontal</LayoutType>
    <MetaInfo>
      <NameIsFileName value="True" />
      <Name>New Workflow1</Name>
      <Description />
      <RootToolName />
      <ToolVersion />
      <ToolInDb value="False" />
      <CategoryName />
      <SearchTags />
      <Author />
      <Company />
      <Copyright />
      <DescriptionLink actual="" displayed="" />
    </MetaInfo>
    <Events>
      <Enabled value="True" />
    </Events>
  </Properties>
</AlteryxDocument>

and for the second example with joins...

<?xml version="1.0"?>
<AlteryxDocument yxmdVer="10.5">
  <Nodes>
    <Node ToolID="1">
      <GuiSettings Plugin="AlteryxBasePluginsGui.AlteryxSelect.AlteryxSelect">
        <Position x="126" y="54" />
      </GuiSettings>
      <Properties>
        <Configuration>
          <OrderChanged value="False" />
          <SelectFields>
            <SelectField field="*Unknown" selected="True" />
          </SelectFields>
        </Configuration>
        <Annotation DisplayMode="0">
          <Name />
          <DefaultAnnotationText />
          <Left value="False" />
        </Annotation>
      </Properties>
      <EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxSelect" />
    </Node>
    <Node ToolID="2">
      <GuiSettings Plugin="AlteryxBasePluginsGui.TextInput.TextInput">
        <Position x="54" y="54" />
      </GuiSettings>
      <Properties>
        <Configuration>
          <NumRows value="0" />
          <Fields>
            <Field name="CustomerID" />
            <Field name="OrderID" />
            <Field name="CustomerName" />
            <Field name="OrderDate" />
          </Fields>
          <Data />
        </Configuration>
        <Annotation DisplayMode="0">
          <Name />
          <DefaultAnnotationText />
          <Left value="False" />
        </Annotation>
      </Properties>
      <EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxTextInput" />
    </Node>
    <Node ToolID="3">
      <GuiSettings Plugin="AlteryxBasePluginsGui.AlteryxSelect.AlteryxSelect">
        <Position x="126" y="198" />
      </GuiSettings>
      <Properties>
        <Configuration>
          <OrderChanged value="False" />
          <SelectFields>
            <SelectField field="*Unknown" selected="True" />
          </SelectFields>
        </Configuration>
        <Annotation DisplayMode="0">
          <Name />
          <DefaultAnnotationText />
          <Left value="False" />
        </Annotation>
      </Properties>
      <EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxSelect" />
    </Node>
    <Node ToolID="4">
      <GuiSettings Plugin="AlteryxBasePluginsGui.TextInput.TextInput">
        <Position x="54" y="198" />
      </GuiSettings>
      <Properties>
        <Configuration>
          <NumRows value="0" />
          <Fields>
            <Field name="CustomerID" />
          </Fields>
          <Data />
        </Configuration>
        <Annotation DisplayMode="0">
          <Name />
          <DefaultAnnotationText />
          <Left value="False" />
        </Annotation>
      </Properties>
      <EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxTextInput" />
    </Node>
    <Node ToolID="5">
      <GuiSettings Plugin="AlteryxBasePluginsGui.Join.Join">
        <Position x="222" y="126" />
      </GuiSettings>
      <Properties>
        <Configuration joinByRecordPos="False">
          <JoinInfo connection="Left">
            <Field field="CustomerID" />
          </JoinInfo>
          <JoinInfo connection="Right">
            <Field field="CustomerID" />
          </JoinInfo>
          <SelectConfiguration>
            <Configuration outputConnection="Join">
              <OrderChanged value="False" />
              <SelectFields>
                <SelectField field="Right_CustomerID" selected="True" rename="Right_CustomerID" />
                <SelectField field="*Unknown" selected="True" />
              </SelectFields>
            </Configuration>
          </SelectConfiguration>
        </Configuration>
        <Annotation DisplayMode="0">
          <Name />
          <DefaultAnnotationText />
          <Left value="False" />
        </Annotation>
      </Properties>
      <EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxJoin" />
    </Node>
    <Node ToolID="6">
      <GuiSettings Plugin="AlteryxBasePluginsGui.BrowseV2.BrowseV2">
        <Position x="294" y="126" />
      </GuiSettings>
      <Properties>
        <Configuration>
          <Layout>
            <View1>
              <Hints>
                <Table />
              </Hints>
            </View1>
          </Layout>
        </Configuration>
        <Annotation DisplayMode="0">
          <Name />
          <DefaultAnnotationText />
          <Left value="False" />
        </Annotation>
      </Properties>
      <EngineSettings EngineDll="AlteryxBasePluginsEngine.dll" EngineDllEntryPoint="AlteryxBrowseV2" />
    </Node>
  </Nodes>
  <Connections>
    <Connection>
      <Origin ToolID="1" Connection="Output" />
      <Destination ToolID="5" Connection="Left" />
    </Connection>
    <Connection>
      <Origin ToolID="3" Connection="Output" />
      <Destination ToolID="5" Connection="Right" />
    </Connection>
    <Connection>
      <Origin ToolID="2" Connection="Output" />
      <Destination ToolID="1" Connection="Input" />
    </Connection>
    <Connection>
      <Origin ToolID="4" Connection="Output" />
      <Destination ToolID="3" Connection="Input" />
    </Connection>
    <Connection>
      <Origin ToolID="5" Connection="Join" />
      <Destination ToolID="6" Connection="Input" />
    </Connection>
  </Connections>
  <Properties>
    <Memory default="True" />
    <GlobalRecordLimit value="0" />
    <TempFiles default="True" />
    <Annotation on="True" includeToolName="False" />
    <ConvErrorLimit value="10" />
    <ConvErrorLimit_Stop value="False" />
    <CancelOnError value="False" />
    <DisableBrowse value="False" />
    <EnablePerformanceProfiling value="False" />
    <DisableAllOutput value="False" />
    <ShowAllMacroMessages value="False" />
    <ShowConnectionStatusIsOn value="True" />
    <ShowConnectionStatusOnlyWhenRunning value="True" />
    <ZoomLevel value="0" />
    <LayoutType>Horizontal</LayoutType>
    <MetaInfo>
      <NameIsFileName value="True" />
      <Name>New Workflow1</Name>
      <Description />
      <RootToolName />
      <ToolVersion />
      <ToolInDb value="False" />
      <CategoryName />
      <SearchTags />
      <Author />
      <Company />
      <Copyright />
      <DescriptionLink actual="" displayed="" />
    </MetaInfo>
    <Events>
      <Enabled value="True" />
    </Events>
  </Properties>
</AlteryxDocument>

Hi,

 

The current way to label or annotate a tool is that we need to double click the tool to bring up configuration window, then click on the annotation icon, then click on the annotation textbox.

 

My suggestion is when a tool is selected, simply press the Enter/Return key, then start typing the annotation right there (inline editing). Save a couple of clicks.

 

Thanks.

It would be nice to improve upon the 'Block Until Done' tool.

 

Additional Features I could see for this tool:

1: Allow Any tool (even output) to be linked as an incoming connection to a 'Block Until Done' tool.  

2: Allow Multiple Tools to be linked to a 'Block Until Done' tool. (similar to the 'Union' tool)

 

The functionality I see for this is to enable Alteryx set the Order of Operation for workflows and Allowing people to automate processes in the same way that people used to do them. I understand there's a work around using Crew Macros (Runner/Conditional Runner) that can essentially accomplish this;  howerver (and I may be wrong).  But it feels like a work around, instead of the tool working the way one would expect; and I'm loosing the ability to track/log/troubleshoot my workflow as it progresses (or if it has an issue)

 

Happy to hear if something like that exists.  Just looking for ways to ensure order of operation is followed for a particular workflow I am managing. 

Thanks,

Randy

I have been using Alteryx for not a very long time, but allready feel frustated by the difficulties when it comes to access the data result shown in the Browse Tool (from Linear Regression, Principal Component Analysis, etc.).

Lots of the output shown here is really important data that you really want to be able to access for further analysis in Alteryx or in another tool.

 

This data should be easy to access, following the Alteryx self-service philosophy.

 

Extractable Output.png

 

 

When running a workflow and outputting files to get a better look at the data if you have forgotten to close one of the output files of the same name, you get the "Error Creating File". 

I understand why this happens and that I forgot to do something.  The issue I have is that it doesnt tell me that those files have been left open until after the workflow is almost complete which in some cases is 5-10 minutes and then I have to close the output files and re run and wait again.  Could a future version check those files at the begining of the process and then let me know, or could there be a message that says "filename" was open and could not be created we have renamed it to "filenameA".  Checking at the begining would be prefered. 

 

Thanks

0 Likes

When you get an error message in an R tool it's almost impossible for a newbie to figure out what has just happened...

 

For eg. the normal R package randomForest sets 32 as a max number of classes for a given class variable

Thus when you happen to run randomForest on anything with > 32 classes you get an error, imposssible to figure out without searching on the net or better surfing on the community.

 

How about a basic rules checker providing message on the configs sayin;

 

"X" and "Y" variables are categoric and have more than 32 classes,

you have to fix thembefore running an RF tool in order to succeed"

 

It would be great if we users could have the ability, ideally in a simple interface (maybe workflow option) to create .yxi macro installers. This would allow us to create and really simple, quick and straightforward way on installing macros in Alteryx rather than having to copy into certain directories or add through the user settings.

 

I know we can edit the XML on @AdamR_AYX CREW Macro installers etc. but this would make it really simple for single macros.

 

I'm assume this might already be on the road map, but will be useful to discuss.

 

YXI Files Intro Blog: https://community.alteryx.com/t5/Engine-Works-Blog/YXI-Files-in-Alteryx-10-5/ba-p/20773

 

Discussed briefly on Twitter by @Joe_Lipski@chris_love @jdunkerley79 @danielbrun2 but probably better to bring the discussion here: https://twitter.com/Joe_Lipski/status/811907135516852224

Can you look at improving the table tool? something to look at:

  1.  background/alternate color off or none so we don't have any fill color in Excel
  2. Table header alignment option vertical AND horizontal - different from row alignment.
  3. make it dynamic for rules - so if _currentfieldname contains 'percent' then back ground color =yellow, if contains 'Rank' then green etc. Split between header & data. I know it could be accomplished with a macro and xml but that's a tedious process and having it in the tool just makes sense.

 

Thanks!

simon

 

I utilize the Workflow Events quite a bit, but the standard options fall short in a few critical cases.

 

For example: I use the events to send me an email after the workflow runs with errors.

Usually that is all I need.  But, I have run into a few situations where the workflow didn't run at all - thus, no email was sent.

 

One such instance was on our server.  While still initializing (before it even hit tool #1) the job hung.  It sat like that for over a day before I noticed that there were no jobs running through a particular worker at all and saw this one sitting there. 

A second such instance was recently when I changed Persistence Options and accidentally deleted the source for a scheduled job.  The workflow marked itself complete in the scheduler and gave an error message of "Corrupt: Internal Error in PersistenceContainer......"

I realize that these are unexpected events and application errors (which I've worked with support on); but it would add great value to have that fallback mechanism to let us know the error happened.

 

Understandably, it would probably take a lot of work to engineer a schedule monitor that would catch this - but I think it would be worthwhile.

One option to do this: have an Event to email or run a command if a workflow hasn't started within a certain grace period after its scheduled time.

 

 

Ideas:

  1. In the workspace (i.e. the white space) the perimeter is not fixed so when working with tool containers near a border and you place a tool inside the container the container expands outside the workspace, which makes the container useless since you can't select it
  2. The ability to disable multiple tool containers at once

 

 RTC.PNG

We have a large SAS Programming team that keeps most of thier data sets in a Unix environment. A more robust ODBC connection to this data would greatly enhance our use of Alteryx. The current SAS odbc Driver tends to lock Alteryx up. Creating edits to the connection also tends to lock ateryx up to an unrecoveable point.

I have reviewed a number of batch macros that work well for mirroring the "NetworkingDays" excel calculation but it would be great to add an interval type for "weekdays" to the DateTimeDiff formula ie

 

 DateTimeDiff ( [Date01],[Date02], "WorkDays")  where any Saturday or Sunday between the dates would be discounted.

Hi!

 

For a improved presentation of the GUI elements (Inteface Tools), may be to use for an Analytic App.

 

It would be great if it were possible to position the Interface Tools also side by side, instead of one above the other.

 

combineCanvasTools.JPG

 

Best regards

Mathias

Hi

 

While the download tool, does a great job, there are instances where it fails to connect to a server. In these cases, there is no download header info that we can use to determine if the connection has failed or not. 

 

Currently the tool ouputs a failure message to the results window when such a failure occurs. 

 

Having the 'failed to connect to server' message coming into the workflow in real time would allow for iterative macro to re-try. 

 

Thanks

 

Gavin

 

It would be nice to have a function similar to IsEmpty() that would also return true if the string only contained spaces. Of course the simple work around is to Trim() inside IsEmpty(). Just trying to save a few keystrokes and remove a failure mode if you forgot to Trim()...

 

ken

(Not sure i have posted this in the correct spot)

Hi,

 

I get a lot of adhoc requests where the insturctions are in the actual email. As I'm going through the ask, creating the new workflow, the requester will mention "column C" or "column XY", but I'm viewing the data in Alteryx where that doesn't show. So I have to open the Excel file, find the column, get the name, go back to Alteryx to locate the column I need, run the module but get an error/no results because I forgot to close the Excel file (because the module is using the same file I just opened to validate which column I'm using).

 

It would be really cool to have an Option in the Input tool to add the Excel column lettering and numbering to show (Ex, Column A, B, C, D going left to right, Row 1, 2, 3, going top to bottom). This would just be visually showing it, not adding it to the data (because then you would lose the actual column names). If this can be done, it would be equally as useful in the Browse tool view. Have a great day!

As of Version 10.6, Alteryx supports connecting to ESRI File GeoDatabases from the input tool but it doesnt support writing to a geodatabase.  This is something we would really like to see implemented in a future version of Alteryx.  Those of us working with ESRI products and/or any of the ESRI online mapping systems can do our processing in Alteryx and store large files as YXDBs, but ultimately need our outputs for display in ArcOnline to be in shapefile or geodatabase feature class format. Shapefile have a size limit of 2 GBs and limitation on field name sizes. Many of the files we are working with are much larger than this and require geodatabases for storage which are not limited by size (GDB size is unlimited, 1 TB max per feature class) and have larger field name widths (160 chars).  Right now, we have to write to one (or many) shapefile(s) from Alteryx, then import them into a GDB using ArcMap or ArcPy.  This can be an arduous process when working with large amounts of data or multiple files.

 

The latest ESRI API allows both read and write access to GDBs -- is there a way we can add this to the list of valid output formats in Alteryx?

 

This idea is an extension of an older idea:

https://community.alteryx.com/t5/Alteryx-Product-Ideas/ESRI-File-Geodatabase/idi-p/1424

Right now, logging of workflows is either on or off and when on is directed to a single location.

 

Current logging settingCurrent logging setting

 

I think it would be useful to have control over logging in the Runtime settings for a workflow.

 

Either as an enable/disable checkbox that uses the logging directory (above)

Disable Logging with check boxDisable Logging with check box

 

Or as a more fully featured option where logging output folders could be specified:

Disable Logging Full FeaturedDisable Logging Full Featured

Top Liked Authors