Microsoft released a fix for the XLS issue described below, this fix is included in their November 14, 2017 Monthly rollup.
For your convenience, this is the link to the fix for Windows 10
And this is for Windows 7 and other OS
We’ve been made aware of an issue connecting to .xls files with the File Format: Microsoft Excel 97-2003 (*.xls). The behavior manifests in two ways.
As an error pop-up box:
'InvalidArgument=Value of '0' is not valid for 'itemIndex'. Parameter name: itemIndex'
Within the Results - Messages pane of the Designer or on the Annotation associated with the impacted tool:
‘Error: Input Data (2): Error opening connect string: Microsoft JET Database Engine: Unexpected error from external database driver (1).\3275 = -535434136’
The error box appears when an Input Data tool is configured to open an .xls file for the first time ever (if there are cached tables, then the error box will not appear). The Annotation and Results pane error message occurs when an .xls file is dragged directly onto an Alteryx designer canvas or when a workflow containing an Input or Output tool that connects to an .xls file using the above format is run (within the designer, a server, or on a schedule), respectively.
The error and experience are discussed in this Alteryx Community post, though you can also read about the issue on this external forum and here, documenting this is a widespread experience across many platforms. Towards the bottom of the external forum post, you can see a comment from a Support Engineer on the Microsoft SQL BI team stating that Microsoft recommends not using the Microsoft JET engine drivers as the current solution to the issue. We detail below how to follow that directive within Alteryx.
The root cause of the error comes from Microsoft’s October Security Update (links below).
If you have already had the update installed, must remain using the update, or choose to proceed with the update, you will experience this behavior. In those situations, here are a couple options available to you.
For new or existing workflows:
Within Excel, manually save the .xls file as a .xlsx file and within Alteryx update tools pointing to the old file to point to the new file or Browse to the new file within an Input Data tool
For existing workflows:
Within Alteryx, manually change the File format to ‘Microsoft Excel Legacy (*.xlsx)’ within the affected Input Data or Output Data tool (described below)
For new workflows/new Input Data tools you will not be able to manually Browse out to the .xls file and read it in as you will receive the pop-up error message desribed above. Your options are:
Drag and drop the desired .xls file from the Windows explorer box onto the Designer canvas and then manually change the File format to 'Microsoft Excel Legacy (*.xlsx)'
Drag an Input Data tool onto the canvas and paste the full path of the desired .xls file into the Connect to a Database box within the Configuration pane and then manually change the File format to 'Microsoft Excel Legacy (*.xlsx)'
Option 2 and 3 Step-by-Step
Determine if you have the “Microsoft Excel Legacy (*.xlsx)” option available within your Input Data tool. You can determine this by loading any file into an Input Data tool, and then clicking the “File Format” drop-down. If you have this option, you can skip to Step 7.
Determine the “bitness” of your Office Installation. The file you download will depend on whether you are running a 32-bit or 64-bit version of Office. https://support.office.com/en-us/article/About-Office-What-version-of-Office-am-I-using-932788B8-A3CE-44BF-BB09-E334518B8B19?ui=en-US&rs=en-US&ad=US In this screenshot, I’m using a 32-bit copy of office.
Browse to the Microsoft Access Database Engine 2010 Redistributable page and click “Download” https://www.microsoft.com/en-us/download/details.aspx?id=13255
Select the download that matches your Office “bitness” from before, then click “Next”. The file will begin to download. Save the file to a location that you can run it from.
Run the previous installer you downloaded. You can simply click “Next” or “Install” through the installation utility, as options do not need to be changed. Once you receive the dialog that the setup has completed successfully, you can click “OK” and continue to the next step.
If Alteryx Designer was open prior to the installation, you should close the program fully, saving your work, and then re-open Alteryx Designer. Otherwise, if Alteryx Designer was not already open, you can open it now.
Within Alteryx Designer: Open the workflow with the issue in Alteryx Designer. b. Click on your Input Data or Output Data tool that is experiencing the issue. (Refer to Option 3 above if you are receiving the pop-up error box while connecting to an .xls file for the first time) c. Click the “File Format” drop-down and choose “Microsoft Excel Legacy (*.xlsx)” d. Data should now display in the preview window and the error should no longer appear if you click off the tool or run the workflow.
We understand this is likely to be a frustrating experience for our users and we are investigating what can be done from the Alteryx side to produce a fix for the issue. We are also following the Microsoft posts to understand what their response will be and if they will take any action toward resolution. Please contact Customer Support to report your experience with this issue, as that will allow us to contact any impacted users directly if and when there is a fix made available.
Updates associated with the error:
Windows 7, Windows Server 2008 R2 - https://support.microsoft.com/en-us/help/4041681/windows-7-update-kb4041681
Windows Server 2012 - https://support.microsoft.com/en-us/help/4041690/windows-server-2012-update-kb4041690
Windows 8.1, Windows Server 2012 R2 - https://support.microsoft.com/en-us/help/4041693/windows-81-update-kb4041693
Windows 10 Original - https://support.microsoft.com/en-us/help/4042895
Windows 10 1511 - https://support.microsoft.com/en-us/help/4041689
Windows 10 1607, Windows Server 2016 - https://support.microsoft.com/en-us/help/4041691
Have you ever built an Alteryx App only to realize that some part of the process must remain in Excel? Instead of abandoning your Alteryx App all together, you may be able to use the Alteryx API and call your app from Excel. We’ve put together all the necessary VBA code so that it should be quick and easy for you to call an Alteryx App from Excel and get the results back. The following example is using an App that we’ve published to the public Alteryx gallery. If you want to create your own app on the Alteryx public gallery, you may need to reach out to Alteryx Support to set you up with an API enabled private studio. Alternatively, you can also change the URL setting to use your private gallery where the private gallery admin would manage private studios and enabling API. The Alteryx app for our sample, API Tester.yxzp, has been included in case you want to upload it to your private gallery and test out the Excel to Alteryx API using your Alteryx server instead of the Public Gallery that I'm connecting to.
SAMPLE EXCEL FILE - Input
We are going to be working with the attached “Reverse String.xlsm” to demonstrate the API. Suppose you wanted to reverse a string in excel (“Hello World” should be converted to “dlroW olleH”). You can’t quite get it in Excel, but you could quickly use the ReverseString function in Alteryx. Now the only trick is getting your data from Excel to Alteryx and back to Excel. We’ll have the user enter the string on cell E5 and then hit the Run Alteryx Button. Cell E6 will then be the results we get back from Alteryx
HOW TO SETUP THE VBA
When working with the Alteryx API, you need to setup some settings/configurations in your excel file before you can deploy it. If you open up the VBA editor (Alt + F11), there is Sub called Doer where we will have to enter a few key settings that apply to your Alteryx App. This is a one time setup for each different application that you setup.
strKey – this is your unique Alteryx Key. It is unique to all the apps in your private studio. It can be found here for the Alteryx public gallery
strSecret – this is your unique Alteryx Secret. It is unique to all the apps in your private studio. It can be found here for the Alteryx public gallery
strAppID – this is your app’s unique ID. When you look at your app in a browser, the appID is the unique ID at the end of the URL. For our sample, our AppID “589b70eceffc2a0bb0a2d530” can be found at the end of the App’s URL
AlteryxURL – this is the base URL where the app resides. For the public gallery, it is : https://gallery.alteryx.com. You would switch this your URL if you were going to use your private gallery. A private gallery would be of the format resembling: https://server.domain.com/gallery.
Data – Any data that needs to be passed from Excel to Alteryx can be saved as string variables in the VBA. For our simple app, we’re only passing one item, the string that we want reversed. In order to pass more complex data, we’ve found it easier to save the data to a .csv and then have the Alteryx App read the .csv as part of the app.
strQuery – This is the entire set of information that is being sent from Excel to the API for processing. It’s in JSON format. For each item, you need a name and value. The name corresponds to the interface tool’s name in your Alteryx App. The value corresponds to the value that want to set. From our Alteryx App, you can see that we’ve given our textbox tool the name “input_string”. For the value, we’ll be passing whatever string the user enters into excel.
To see all the questions for a given app, the API documentation is immensely helpful. After you enter your key and secret, you would go to the second GET, type in the appID, and then try it out to get a list of the name value pairs that we must send from Excel to Alteryx. Note that you only send the name and value fields from the response body.
Save – This variable is a Yes or No answer for whether or not you want to save the data coming back from Alteryx. In this case we would say Yes. For more complex apps, we may have our Alteryx workflow save the data to a network folder that our excel VBA would go grab once Alteryx is done. That post run coding would be added under the Part_Deux sub in the VBA editor. There we would have Save=”No”
Output_Name – this is the column name of the output data that we want to retrieve from Alteryx. In our sample, the column Name is “Output_String”. This only applies if Save=”Yes”
SaveLocation – this is the cell range where the output should be written. This process currently only supports writing one cell of data back to excel. Anything more complicated should be handled through custom VBA in the Part_Deux sub. This only applies if Save=”Yes”
NOTES ABOUT WHAT IS GOING ON BEHIND THE SCENES
While I won’t go through everything that is going on in the background, here are some key points:
Ensure that you have references to Microsoft XML, 6.0 if any errors pop up.
The VBA takes all the settings and adds the time and a random string before posting a request to the Alteryx Server to run the job in the RunAlteryx sub. It has to combine all these items, URL encode certain parts, create a base64 hash, and send this to the Alteryx server in just the right order.
It then makes a Get request to check the status. If the status is complete, then the VBA moves on to get the results; otherwise, the VBA creates another request to check the status in 1 second. Note that Excel will be operational during this time since it’s not during any work. This loop will continue until the status is either completed or error. Note that it will update the status on the bottom left of your screen to indicate that Excel is waiting on Alteryx to run the job.
Once the Alteryx app returns a completed status, the VBA will then make another get request for the output that you’ve requested (only if save=”Yes”). If Save=”Yes”, the VBA then saves the output to the specified cell.
If you want to write any of your own code that should execute when the code is done, place it in the part_Deux sub. For example, perhaps you have a private server setup where the Server will write an output file to a network folder that excel can read in from. The code in part_Deux might look something like the below:
Dim ActBook As Workbook
Dim FromAlteryx As String
FromAlteryx = "\\server\" + Environ$("username") + "_out.csv"
Set ActBook = ThisWorkbook
On Error GoTo 0
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
Workbooks(Environ$("username") + "_out.csv").Close
SAMPLE EXCEL FILE - Output
Assuming we have everything setup correctly, our app should return the reverse of the string that is input:
Calgary is a list count data retrieval engine designed to perform analyses on large scale databases containing millions of records. One use case for a Calgary database in an App or Macro is to offer users certain predetermined criteria (e.g. geography) to select and then return the corresponding data to them. A back-end process can combine multiple data sources, format and pre-filter as needed, and load them into a Calgary database that can be queried quickly by the app or macro . This way, the bulk of the processing happens outside of the app or macro allowing data to be returned more quickly.
Using an IAM Role to Grant Permissions to Alteryx Designer or Server, Running on Amazon EC2 Instances
Create an IAM role in AWS with required access to AWS services
Attach this role to the EC2 instance (Alteryx AMI) at launch time or while the instance is running
Install the AWS CLI on the EC2 instance if necessary
Open a command prompt
Run the aws cli command to test access via the IAM role
Open Alteryx Designer
Go to Developer Tools
Drag the tool Run Command to the canvas
Configure the tool to run the aws cli command
Run the workflow
Amazon offers many different services that can be accessed from the AWS Command Line Interface (aka the AWS CLI). Alteryx workflows can take advantage of these services using the AWS CLI from the Run Command tool.
Some of the common uses of the Amazon CLI within Alteryx include:
Using S3 with IAM roles
Uploading/Downloading file types not currently supported by the S3 Upload / Download tools
Interacting with Athena
As an example of using the AWS CLI, let’s build a process that can take a local file and copy to S3, using an AWS IAM profile. Here are the steps involved:
Review the documentation for the service. In this example, we're using the "S3" service, but Amazon has many different AWS services.
Install the AWS CLI on any machines that will need to execute the AWS functions
From Windows Command Line, create a working command
(Optional step to make calling the CLI easier in the future) – Add reference to the AWS CLI executable to Window Environment variables via My Computer > Right Click > Properties > Advanced System Settings > Environment Variables > System Variables > Select “Path” > Edit > (Add the path to the directory of your installed “aws.exe” file, separated by a semicolon. Do not delete/modify any pre-existing values in the Path variable.) > OK > OK
Per the AWS documentation, create a local profile using your IAM role. The local profile references your credentials so that you don't have to pass the credentials in every command.
Test the following command in your Windows command prompt, making sure to use a valid local file to copy, and a valid destination location on your S3, and a valid profile name:
s3 cp "C:\temp\mylocalfile.csv" "s3://mylocation/mydestinationfilename.csv" --profile MyIAMUser
Once you've validated your command in the command prompt, transfer it to an Alteryx workflow
In a new workflow, pull in a “Run Command” tool from the “Developer” category
Configure the Run Command tool using the working command:
Test the above
As an optional step, we can wrap this functionality into a macro to make it easy to update, and to support batch uploads
Add a Control Parameter for “Local File Path” and configure its action to update the specific string value “C:\temp\myfile.csv”
Add a Control Parameter for “Destination File Path” and configure its action to update the specific string value “s3://mybucket/myfiletest1.csv”
Add a Text Box and configure its action to update the command value “aws” in case the user hasn’t placed the CLI exe in their PATH variables
The example above is attached in the 11.3 workflow, SaveToS3_usage.yxzp.
This article entails a list of what the tool can do at this point and what it can’t at this point. Also, short instructions on how to setup the tool. We will continue to add new features and update this article each time with what can do now!
The Transpose tool pivots data for all selected fields. The column headers are listed in the name field and the corresponding data items are listed in the value field. You can also select key fields which will remain unchanged through the transformation. The transpose tool is often used in conjunction with the Cross Tab tool, which essentially works in the opposite direction.
When working with SPSS, values can have both a Text label and a numeric representation of the categories (equivalent of string factors in R). Columns can also have an encoded name ex. Q_1 and a longer descriptive name that maps Q_1 to the original question that was asked (closest thing in R is the data frame attribute on the column).
Alteryx reads .sav files and loads either the numeric representation or the textual representation of values based on the user’s selection. It also reads the variable labels into the Alteryx Field Description. When writing .sav output, Alteryx will write either the text or the numeric values (depending on what was used in the workflow) as well as the SPSS variable labels which were displayed in the description field. However sometimes to maintain the integrity of the whole SPSS file, clients will want the value labels, value levels, and variable labels to appear in the output file. For these cases, using the Alteryx tools and a few lines of R code (while leveraging the thousands of R packages on CRAN) wrapped in a macro gives us the needed functionality. Attached is a macro which will write the data, variable & value labels back into SPSS.
In this section, we will explain the R code logic that is specific to this macro. You can get an introduction to writing custom R code in Alteryx here.
Before we can do anything, we will need to pass the data to the tools inside the macro (more details on macros here). The raw numeric data should be connected to the D input of the macro. In addition, and because the data frames created in R don’t contain the Field Description data, we need to pass Field Description values to the M input (M for Metadata) of the macro. We’re using the Field Info Tool to extract the description into the rows and send it to the macro. With that done we can now look inside the macro.
Inside the Macro
Inside the macro, we are using the R Tool to contain the main functionality. We connect it to the Interface tools (Macro Inputs, File Browse, Action Tool) to get the data, metadata, and output file path from the user. Finally, we’re using the API tool to pass a message back to the user in the Alteryx Execution Messages.
The R Tool contains the code to properly format the input data and write it out to the .sav file. The majority of the work is already done for us in the ‘sjmisc' package from CRAN (R users know that most of the time they can find a package that does what they want). This package, among other features, implements reading and writing .sav files with both variable and value labels. We will first check if the package is not already installed and we’ll attempt to install it.
This workflow installs the additional sjmisc package. To avoid package version and dependency issues, it is possible to use Microsoft R Client as the base R. More details here.
If you would like to install the package separately you can use the R install packages App from the Alteryx Gallery.
filePath <- "c:\\temp\\outputRAlteryx.sav"
inputData <- read.Alteryx("#1", mode="data.frame")
ColumnLabels <- as.vector(read.Alteryx("#2", mode="data.frame")$Description)
Within the R code we also define a static ‘filepath ‘ pointing to where the output data should be written. The Action Tool that we previously mentioned will update this filepath to the one chosen by the user while at the same time correctly escaping the backslashes to work in R.
inputData <- read.Alteryx("#1", mode="data.frame")
ColumnLabels <- as.vector(read.Alteryx("#2", mode="data.frame")$Description)
We then read the data that we pass to the macro from input ‘#1’ into an R data frame. In this case we are depending on R’s default behavior of transforming text to factors to get the Value encodings for all columns ex Male(1), Female(2). In addition, we read the metadata from input ‘#2’ into R. The sjmisc function, set_label, that applies the variable names to the data frame expects the variable names to be passed as an object of type vector. To make it work, we have to convert the Description column of the data frame we’re reading in into a vector with the as.vector() base R function. For more details about ‘sjmisc’, you can find the documentation here.
labeledData <- sjmisc::set_label(inputData,ColumnLabels)
Finally we label inputData with the labels we just created and we store the result in the labeledData dataframe and then write it to the user’s filepath using the sjmisc’s write_spss function.
MessageOut <- paste("file written to: ",filePath)
names(MessageOut) <- "Output File Path"
We also pass the filepath as a message to the R Tool output to be displayed to the user.
Edit: It was brought to our attention that the macro has an issue writing out text columns that are longer than 120 characters. Unfortunately this is a defect in the underlying R package. As a workaround for now, the macro was modified to trim all text fields to 120 characters. Please keep this in mind when writing out data.
Mandatory Note: This macro and sample code were developed by the authors as a proof of concept to show what's possible. This is not a production-ready macro and is not supported by Alteryx. Do ask questions on this thread - BUT use at your own risk!
WriteSPSSWithLabels_sjlabelled.yxzp has been updated from using the R package sjmisc because the set_label command has been deprecated from sjmisc and is now in sjlabelled.
Jordan Barker & Fadi Bassil
Have you ever wanted to restrict the fields that flow through your workflow based on their data type? What about only allowing fields that begin with the same word or are in a specific position? The Dynamic Select tool is just what you’re looking for!
The Multi-Row Formula Tool functions much like the normal Formula Tool but adds the ability to reference multiple rows of data within one expression . Say, for example, someone was on the ground floor of a house and had a Formula Tool. They would only be able to talk to the people also on the ground floor. If they had a Multi-Row Formula Tool, though, they would also be able to talk to the people upstairs, in the attic, and in the basement as well.
This tool provides a number of different univariate time series plots that are useful in both better understanding the time series data and determining how to proceed in developing a forecasting model.
The ConsumerView Matching macro enables users to match their customer file to the Experian ConsumerView data. Starting with customer information such as name and address you can leverage the ConsumerView macro in Alteryx to append a variety of information about your customers such as household segmentation, home purchase price, presence of children in a home, estimated education and income levels, length of residence, and many more!
A must-have for any app or macro, the Error Message Tool displays a prompt to the user based on input from Interface Tools . Using any expression that evaluates to true, along with any number of user inputs from question anchor connected Interface Tools, the Error Message Tool can layer even the most involved applications with failsafes that ease a user’s experience through more robust interactions.
The ‘How to Guide' to Google Sheets
In Alteryx 10.5 we have introduced two new connectors for Google Sheets, allowing you to download and upload data to and from Google sheets.
These connectors are only available in Alteryx Designer/Server 10.5.
These connectors are not installed directly with the designer. You can download them the Alteryx Analytics Gallery
These connectors are querying the Google Sheets API, which is different from the Google Drive API.
- If you have Excel, .csv, .txt or.ods file types in your Google Drive, you will have to convert them to a Google Sheets file before pulling them in.
- Google Sheets files that can be read by the connector will have this icon:
- All Google Sheets contained in Folders within your Google Drive will be visible in the connector.
Step 1: Sign up/in to Google Sheets
To use these connectors you will need a Gmail account linked to your Google Sheets Account. Follow this link and click ‘Go to Google Sheets’.
This will then take you to the Google Account login. Enter your details here or sign up for an Google Account if you do not have one.
Congrats you’re now in Google Sheets
Within Google Sheets you will be able to see any excel documents you have uploaded previously or if this a new account you will not see any documents other than ‘Start a new spreadsheet’.
If you do have spreadsheets exist you will see them posted below the 'Start a new spreadsheet' section.
Let’s move to Alteryx
We now have Google Sheets configured and have the correct credentials to connect.
Depending upon if you want to bring files into Alteryx from Google Sheets or write data to Google Sheets, this will dictate the type of connector you will use.
If you are bringing data in from Google Sheets you will want to use the Google Sheets Input Connector, alternatively if you are writing out will want to use the Google Sheets Output Connector.
Bringing in data from Google Sheets
When you bring in the Google Sheets Input connector you will see two sign in options, one for ‘User Login’ and another for ‘Developer Login’.
The Developer login will require you to set up Google API Credentials. This option requires obtaining a Client ID, Client Secret, and Refresh Token. You SHOULD use this option if you are looking to schedule this tool as it does not require re-entering credentials to run a workflow.
The ‘User Login’ is appropriate for all other scenarios but you will need to re-enter your credentials every 60 minutes or when you close and re-open a workflow.
Once you hit ‘User Login’ it will generate a pop-out window with the same screen as the Google Accounts Login. Enter your username and password here and hit accept.
This will now take you back to the Google Sheets Input connector configuration window in the designer.
You will now see the spreadsheets which exist on Google Sheets.
You can now select one of the sheets and it will highlight in blue and populate where it says ‘no value selected’ above.
Once this sheet is selected the next button will become active and you can press it.
If there is a sheet associated with the spreadsheet it will then prompt you for that on the next window.
There is the tick box for ‘First row contains field names’. When this box is checked, Alteryx sets the first row of input as field header information. If you leave this option unchecked, Alteryx assigns field names based on their order (e.g., 0, 1, 2).
Once you select the sheet it will then become active and you can press ‘Done’.
This will take you to the final overview window.
This overview window will give you a chance to ‘change spreadsheet’ if you would like. If you are happy with your selection you can run the workflow and it will give you the data from that Spreadsheet.
Writing out to Google Sheets
Similar to the input tool the Google Sheets Output connector will ask you for your Google Account in a pop out window.
Once you have logged in it will give you five different options:
Depending upon your dataset and current spreasheets in Google Sheets this will disctate what option you choose.
With all other options other than ‘Create New sheets’ it will populate with spreadsheets and sheets which already exist in your Google Sheets account. If you choose ‘Create New Spreadsheet’ this will prompt you for a new Spreadsheet and Sheet name (see below).
Similar to before once you have created a new spreadsheet or updated an existing spreadsheet it will give you a confirmation window.
If you are happy with the configuration window you can now run the workflow and it will be written to your Google Sheets Account.
Congrats you have successfully configured the Google Sheets Input & Output connectors!!!
Tips & Tricks
If you are scheduling a workflow with a Google Sheets connector we recommend using the ‘Developer Login’. This will use your hard coded Google API credentials and therefore will not expire every 60 minutes.
If you wish to Change Credentials please use the hyperlink in both connectors and it will return you back to the Google Account Login page.
"Time out error with the ‘Developer Login"
The Developer Login authentication method uses the Google Spreadsheets API and may time out when trying to download large files. If you encounter this issue:
Break one large sheet into two or more smaller sheets.
Use a Google Sheets Input tool for each sheet and combine the results with the Union tool.
"The email and password you entered don’t match"
Please re-check you have the right credentials. This is a Google error not an Alteryx Error.
If you have version 1 of the Google Sheets input connector, when you read in data it will change your data types in the Google Sheets Spreadsheet to 'Plain Text'.
This has been fixed in the latest version of the Google Sheets Connectors. Please re-download the connectors.
'Cannot find Macro' - When scheduling the Google Sheets Tools.
So the reason is because the yxi package gets installed into a different location on the server and the user needs to manually save this is a new folder.
The Server documentation refers to this on page 57. In short here is the summary of what the user has to do below:
When a tool that is packaged as a .yxi file is installed, the tool is added to the tool palette in Designer and the .yxi file and supporting macros are installed in the AppData\Roaming folder in the user’s account. For example: C:\Users\\AppData\Roaming\Alteryx\Tools\.
A .yxi file must be manually installed before a workflow that includes that tool can be run.
In order for a tool package to be available to Gallery and Scheduler processes on a machine, a Gallery administrator must copy the contents of the .yxi file to the C:\ProgramData\Alteryx\Tools directory on the server.
In a multi-node environment, the .yxi file must be added to every worker machine in your server deployment.
To install a Tool Package on the server:
Double-click the .yxi file and select OK on the Tool Installer window.
Locate the user Tools directory: C:\Users\\AppData\Roaming\Alteryx\Tools.
Copy the folder of the tool to be installed on the server.
Paste the folder in the following directory: C:\ProgramData\Alteryx\Tools.
Alteryx loads tools in the Designer from these locations in the following order:
Alteryx install folders
If you have any issues please reach out to Alteryx Support